获取android中两个位置之间的距离?

问题描述:

我需要获取两个位置之间的距离,但我需要获取图片中蓝线之类的距离.

i need to get distance between two location, but i need to get distance like blue line in the picture.

我尝试下一个:

public double getDistance(LatLng LatLng1, LatLng LatLng2) {
    double distance = 0;
    Location locationA = new Location("A");
    locationA.setLatitude(LatLng1.latitude);
    locationA.setLongitude(LatLng1.longitude);
    Location locationB = new Location("B");
    locationB.setLatitude(LatLng2.latitude);
    locationB.setLongitude(LatLng2.longitude);
    distance = locationA.distanceTo(locationB);

    return distance;
}

但我得到了红线距离.

使用 Google Maps DirectionsAPI.您需要通过 HTTP 请求路线.您可以直接从 Android 或通过您自己的服务器执行此操作.

Use the Google Maps Directions API. You'll need to request the directions over HTTP. You can do this directly from Android, or via your own server.

例如,来自蒙特利尔的路线到多伦多:

GET http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false

你最终会得到一些 JSON.在routes[].legs[].distance中,你会得到一个像这样的对象:

You'll end up with some JSON. In routes[].legs[].distance, you'll get an object like this:

     "legs" : [
        {
           "distance" : {
              "text" : "542 km",
              "value" : 542389
           },

您也可以直接从响应对象中获取折线信息.

You can also get the polyline information directly from the response object.