如何计算android中两个标记点之间的距离

如何计算android中两个标记点之间的距离,android,google-maps,Android,Google Maps,我正在创建一个android应用程序,显示地图上两个标记点的距离和持续时间。在onCreate()中,我编写了以下代码: 在MapsActivity.java中 private List<LatLng> getDirectionPolylines(List<RouteObject> routes){ List<LatLng> directionList = new ArrayList<LatLng>(); fo

我正在创建一个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;
    }
专用列表getDirectionPolylines(列表管线){
List directionList=新建ArrayList();
用于(路由对象路由:路由){
List legs=route.getLegs();
用于(LegsObject腿:腿){
字符串routedInstance=leg.getDistance().getText();
字符串routeDuration=leg.getDuration().getText();
设置RouteInstance和Duration(RouteInstance,routeDuration);
List steps=leg.getSteps();
用于(步骤对象步骤:步骤){
PolylineObject polyline=step.getPolyline();
字符串点=polyline.getPoints();
列出单多段线=解码多段线(点);
用于(板条方向:单多段线){
方向列表。添加(方向);
}
}
}
}
返回方向列表;
}
我不清楚如何在上面代码中的“getText”中计算距离和持续时间。我看不到一些API,比如Distancebetween(),它使用LtnLtg作为引用。
请建议如何计算距离和持续时间值。

您应该获得这些标记的LatLngs(您可以使用

marker.getPosition().getLatitude() 

找出这两个板条之间的距离。有几种方法。你可以使用

Location.distanceBetween(
    startLatitude,
    startLongitude,
    endLatitude,
    endLongitude,
    results);


但是你有一个LatLng对象的列表,在代码的下面几行…是的,如何使用它来获得这两点?我的问题是如何从标记中获得这些纬度。我知道我可以使用这些API。
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);
var lat = marker.getPosition().lat();
var lng = marker.getPosition().lng();