我正在为使用Google Maps API的iPad开发HTML5 Web应用程序。这个API对我来说是新的,我已经搜索了许多与之相关的问题的答案。标记,信息窗口,路线,地理位置,街景。关于这一切的最有用的信息可以在官方文档中找到:

https://developers.google.com/maps/documentation/javascript/3.exp/reference?hl=ru

但是,我仍然找不到一个(也许是简单的)问题的解决方案。例如,我创建了一个新的地图实例和一个标记(目的地),开始关注我的位置(GEO位置),并绘制了到达该标记位置的路线。如何检查何时到达目的地?我一直在寻找DirectionsService,DirectionsRenderer等合适的事件,但没有结果。另外,我在此网站上找到了相同的主题,但它是关于Android开发的,而不是JS(Android: How to check that whether i reach/near my Destination?)。

绝望的是,我发明了自己的解决方案,但它似乎无法正常工作(我尚未对其进行全面测试,我将在接下来的几天内完成)。我以为如果将当前位置的经纬度与目的地的经度进行比较-那么我可以赶上到达目的地的时刻:

if (myPosition.lat() == dest.marker.position.lat() && myPosition.lng() == dest.marker.position.lng()) {
     alert('You have arrived!');
}


此代码在navigator.geolocation.watchPosition的成功监视位置回调中执行

你有什么想法?

最佳答案

LatLng是具有高精度的值,您不能期望两个标记的位置都将完全匹配。

添加公差:

//tolerance 50 meters
//requires the geometry-library
if(google.maps.geometry.spherical
   .computeDistanceBetween(myPosition,dest.marker.position)<50){
  alert('You have arrived!');
}

关于javascript - Google Maps API(JS):检查我是否到达目的地,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27178283/

10-09 07:35