gpt4 book ai didi

java - 如何获取从当前位置到下一步的距离、方向、持续时间?

转载 作者:行者123 更新时间:2023-12-01 18:06:59 24 4
gpt4 key购买 nike

我正在使用 Mapbox Android SDK

编译('com.mapbox.mapboxsdk:mapbox-android-sdk:3.0.0@aar')

我之前在here问过类似的问题,但仍然存在一些问题。当我得到 currentRoute 时,我不知道如何实现。我的代码如下:

private Waypoint lastCorrectWayPoint;
private boolean checkOffRoute(Waypoint target) {
boolean isOffRoute = false;
if(currentRoute != null){
if (currentRoute.isOffRoute(target)) {
showMessage("You are off-route, recalculating...");
isOffRoute = true;
lastCorrectWayPoint = null;
//would recalculating route.
} else {
lastCorrectWayPoint = target;
String direction = "Turn right"; //The message what should I prompt to user
double distance = 0.0;//The distance which from target to next step.
int duration = 0;//The time which from target to next step.
String desc = "Turn right to xx street.";
//Implement logic to get them here.
showMessage("direction:" + direction + ", distance:" + distance + ", duration:" + duration + ", desc:" + desc);
}
}

checkOffRoute() 将在 onLocationChanged() 内调用。我认为MapBox SDK应该将这些数据提供给开发人员,而不是开发人员自己实现。或者如果我错过了 SDK 中的一些重要信息?有什么建议吗?

最佳答案

希望您的应用进展顺利。我看到你试图确定下一步的方向、距离和持续时间。我会尽力回答这个问题,同时保持简短。

方向
首先,当您请求路线时,您需要包含几行:

MapboxDirections client = new MapboxDirections.Builder()
.setAccessToken(getString(R.string.accessToken))
.setOrigin(origin)
.setDestination(destination)
.setProfile(DirectionsCriteria.PROFILE_DRIVING)
.setAlternatives(true) // Gives you more then one route if alternative routes available
.setSteps(true) // Gives you the steps for each direction
.setInstructions(true) // Gives human readable instructions
.build();

收到回复后,您可以执行以下操作

response.body().getRoutes().get(0).getSteps().get(0).getDirection()

这将为您提供操作后的大致基本行进方向。通常为以下之一:“N”、“NE”、“E”、“SE”、“S”、“SW”、“W”或“NW”。该特定线路为您提供列表中的第一条路线(通常也是最短和最佳选择的路线)和第一步。要更改这些步骤,您只需将第二个 .get(int) 的整数值更改为您需要的任何步骤。

持续时间和距离
与上面相同,但您使用的是 .getDirection() :

 response.body().getRoutes().get(0).getSteps().get(0).getDuration()

response.body().getRoutes().get(0).getSteps().get(0).getDistance()

分别。我希望这至少有助于在创建应用程序时指导您朝正确的方向发展。

关于java - 如何获取从当前位置到下一步的距离、方向、持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com