获取两个位置 android google maps 之间的距离并画线

Posted

技术标签:

【中文标题】获取两个位置 android google maps 之间的距离并画线【英文标题】:Get distance and draw line between two location android google maps 【发布时间】:2018-09-09 11:57:09 【问题描述】:

我有一个应用程序可以打开地图并使用标记放大我的位置 然后如果我 longClick 在任何地方,它会将该位置保存在数据库中 一切正常,但我无法管理的一件事是在两个位置标记之间画一条路径。

这是三个全局变量

 Location myLocation;
 LatLng onmaplongclicklastlatlng;
 private GoogleMap mMap;

mylocationLocationListener 分配,onmaplongclicklastlatlng 在我长按地图上的任何地方时分配。

在两个位置都放置了标记,我已经有了要在上面画线的两个点。

我只需要在这两个位置之间画一条线(我的当前位置会在 myLocation 变量中定期更新)

onmaplongclicklastlatlng 每当我长按地图时都会发生变化。

整个代码都完成了,我有一个button,我想用它来draw 行 因为我可以通过这个button 方法访问两个位置variables,所以其他代码不需要更改。

public void getLine(View view) 

    // need to draw a line here from user gps posiution to the marker location    

我尝试了很多教程,但由于某种原因它们不起作用,非常感谢任何帮助。

哦,最后但并非最不重要的一点

onmaplongclicklastlatlng

是一个 LatLng 和

myLocation

是一个位置

但它们可以互换以适应目的

ex. Location maplocation = new Location(onmaplongclicklastlatlng
.latitude, onmaplongclicklastlatlng.longitude);

Latlng myLatLng = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());

正如我所说,任何帮助都将不胜感激。 如果还需要什么,请告诉我,然后我会编辑问题。

【问题讨论】:

【参考方案1】:

要计算两个位置之间的准确距离,您必须使用Google Map Distance Matrix API。如下构建您的网址。

https://maps.googleapis.com/maps/api/distancematrix/json?" +"origin=" + origin.latitude + "," + origin.longitude+ "&" +"destination=" + dest.latitude + "," + dest.longitude +"&sensor=false&units=metric&mode=driving" + "&" + key=YOUR_API_KEY

要在两个位置之间画线,您必须首先使用Google Map Direction Api,如下所示构建您的网址

https://maps.googleapis.com/maps/api/directions/json?" +"origin=" + origin.latitude + "," + origin.longitude+ "&" +"destination=" + dest.latitude + "," + dest.longitude +"&sensor=false&units=metric&mode=driving" + "&" + key=YOUR_API_KEY

上面的 api 调用返回一个 latlng 列表将列表添加到折线中

 Polyline polyline1 = googleMap.addPolyline(new PolylineOptions()
                .clickable(true)
                .addAll(latlngList));

希望对你有帮助。

【讨论】:

【参考方案2】:

这些怎么样:

https://github.com/zhenyanghua/MeasureTool-GoogleMaps-V3 http://zhenyanghua.github.io/google-maps/measure-tool/

问候

PS:我不是该软件的作者。

【讨论】:

如果你不想使用这个第三方 api 你可以看看他们是怎么做的。

以上是关于获取两个位置 android google maps 之间的距离并画线的主要内容,如果未能解决你的问题,请参考以下文章

Google Map Android API V2 中两个位置之间的旅行时间

android google map当前位置没有得到[重复]

如何在android中显示两个位置之间的路线?

Google Maps Android api v2 和当前位置

Google Map Api for Android

android google maps v2 在服务中