我正在创建一个Android应用程序,它显示地图中两个标记点的距离和持续时间。在onCreate()中,我编写了以下代码:
在MapsActivity.java中
private List<LatLng> getDirectionPolylines(List<RouteObject> routes){
List<LatLng> directionList = new ArrayList<LatLng>();
for(RouteObject route : routes){
List<LegsObject> legs = route.getLegs();
for(LegsObject leg : legs){
String routeDistance = leg.getDistance().getText();
String routeDuration = leg.getDuration().getText();
setRouteDistanceAndDuration(routeDistance, routeDuration);
List<StepsObject> steps = leg.getSteps();
for(StepsObject step : steps){
PolylineObject polyline = step.getPolyline();
String points = polyline.getPoints();
List<LatLng> singlePolyline = decodePoly(points);
for (LatLng direction : singlePolyline){
directionList.add(direction);
}
}
}
}
return directionList;
}
我不清楚如何计算距离&amp;持续时间在&#39; getText&#39;在上面的代码中。我无法看到一些像Distancebetween()这样使用LtnLtg作为参考的API。 请建议如何计算距离和持续时间值。
答案 0 :(得分:0)
你应该得到那些标记的LatLng(你可以使用
来做到这一点)marker.getPosition().getLatitude()
和
marker.getPosition().getLongitude()
找出这两个LatLng之间的距离。有几种方法可以做到这一点。你可以用
Location.distanceBetween(
startLatitude,
startLongitude,
endLatitude,
endLongitude,
results);
或
Location loc1 = new Location("");
loc1.setLatitude(lat1);
loc1.setLongitude(lon1);
Location loc2 = new Location("");
loc2.setLatitude(lat2);
loc2.setLongitude(lon2);
float distanceInMeters = loc1.distanceTo(loc2);
答案 1 :(得分:0)
var lat = marker.getPosition().lat();
var lng = marker.getPosition().lng();