google-maps - 以km为单位的isLocationOnEdge公差计算

标签 google-maps google-maps-api-3

我正在使用Google Map Map API
isLocationOnEdge

var isLocationNear = google.maps.geometry.poly.isLocationOnEdge(latlng, new google.maps.Polyline({
  path: google.maps.geometry.encoding.decodePath(result.routes[0].overview_polyline)
}), .00001);

我不了解公差与公里数有何关系
isLocationOnEdge(point:LatLng, poly:Polygon|Polyline, tolerance?:number)

坐一下,我想检测用户是否在 map 上绘制的多段线的100m以内。如何解决这个问题。

最佳答案

this post中的评论之一:

公差,它基于纬度和经度所需的小数位精度。

例如,如果说(33.00276,-96.6824)在多段线上,如果公差为0.00001,则如果将点更改为(33.00278,-96.6824),则该点将始终在多段线上。

因此,如果要在多义线的大约100m内找到检测位置,则可以将0.001用作公差值。

例如,如果您的位置是(1.001,12),则多段线中的点之一是(1,12),则您的位置与多段线之间的距离约为111.319米。 (1.001,12)和(1,12)之间的公差为0.001,因此isLocationOnEdge()将返回true。

如果您的位置是(1.002,12),则到(1,12)的距离将约为222.638米。它们之间的公差为0.02,因此如果您使用0.001作为isLocaitonOnEdge()的公差值,它将返回false。

您可以从以下JSFiddle中看到示例代码:https://jsfiddle.net/j7cco3b0/1/

关于google-maps - 以km为单位的isLocationOnEdge公差计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783685/

相关文章:

javascript - map 未在我的 jquery 中显示

javascript - 谷歌用多个独特的信息框映射多个标记

jquery - .on click 事件未在包含 Fusion Tables 信息的 Gmaps Infowindow 内触发

javascript - 谷歌 API v3 : disable all effects/animations

android - 如何找到特定路线上两点之间的距离?

Android 谷歌地图 API v2 : get my bearing location

android - 谷歌地图 v2 预期 4030500 发现 0 异常

javascript - 我可以在 Google Maps Styling API 上隐藏非海洋吗

javascript - 使用 Google map 距离矩阵返回距离函数

google-maps - 单击时显示上下文菜单(标记)