谷歌地图api在android studio中查找距离,但不显示地图

谷歌地图api在android studio中查找距离,但不显示地图,android,android-studio,google-maps-api-3,Android,Android Studio,Google Maps Api 3,我想在android studio中使用google map api来查找两个地方之间的距离,以便进行一些计算,但我不想显示地图或标记,我该怎么做?您可以参考此来查找两个地方之间的距离 但如果不想显示地图或标记,只需将地图片段的高度和宽度设置为0dp即可 以下是一个例子: <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com

我想在android studio中使用google map api来查找两个地方之间的距离,以便进行一些计算,但我不想显示地图或标记,我该怎么做?

您可以参考此来查找两个地方之间的距离

但如果不想显示地图或标记,只需将地图片段的
高度
宽度
设置为0dp即可

以下是一个例子:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="0dp"
    android:layout_height="0dp"
    tools:context="com.example.ahmedsamra.mansouratourguideapp.MapsActivity" />

如果你想在不显示谷歌地图的情况下计算两地之间的距离,我认为你必须实现谷歌地图,而不是谷歌地图

我向您展示了从文档中选取的一个示例

请求:

https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=Washington,DC&destinations=New+York+City,NY&key=YOUR_API_KEY
JSON响应:

{
   "destination_addresses" : [ "New York, NY, USA" ],
   "origin_addresses" : [ "Washington, DC, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "225 mi",
                  "value" : 361715
               },
               "duration" : {
                  "text" : "3 hours 49 mins",
                  "value" : 13725
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}
或者使用返回两点之间最短距离的方法disntanceTo()

locationA.setLatitude(aLatA);
locationA.setLongitude(aLnA);

locationB.setLatitude(aLatB;
locationB.setLongitude(aLngB);

distanceBetweenLocations = locationA.distanceTo(locationB) 

如果你只想计算地球上两点之间的距离,并且你有纬度和经度的坐标,那么就不需要任何谷歌API的地图或库。这只需要额外的管理费用和维护费用。只需创建如下静态方法:

public static double getDistanceMeters(LatLng pt1, LatLng pt2){
    double distance = 0d;
    try{
        double theta = pt1.longitude - pt2.longitude;
        double dist = Math.sin(Math.toRadians(pt1.latitude)) * Math.sin(Math.toRadians(pt2.latitude))
                + Math.cos(Math.toRadians(pt1.latitude)) * Math.cos(Math.toRadians(pt2.latitude)) * Math.cos(Math.toRadians(theta));

        dist = Math.acos(dist);
        dist = Math.toDegrees(dist);
        distance = dist * 60 * 1853.1596;
    }
    catch (Exception ex){
        System.out.println(ex.getMessage());
    }
    return distance;
} 
同样的算法适用于任何平台。只需将其翻译成适当的程序语言。

可能与