gpt4 book ai didi

javascript - Google map API V3 - isLocationOnEdge() 不起作用

转载 作者:行者123 更新时间:2023-11-29 22:09:03 24 4
gpt4 key购买 nike

我对 google.maps.geometry.poly.isLocationOnEdge() 方法有疑问。在 fiddle 中,尝试单击水平线,按预期返回 true,但单击垂直线返回 false。为什么?

谢谢!

这里是 fiddle这是代码:

function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(0.5, 0.5),
mapTypeId: google.maps.MapTypeId.TERRAIN
};

var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);

var poly = new google.maps.Polyline({
path: [
new google.maps.LatLng(0, 0),
new google.maps.LatLng(0, 1),
new google.maps.LatLng(1, 1)
],
map: map
});

google.maps.event.addListener(poly, 'click', function(event){
alert(google.maps.geometry.poly.isLocationOnEdge(event.latLng, this), 0.00001);
});
}

google.maps.event.addDomListener(window, 'load', initialize);

最佳答案

我认为你最好使用 containsLocation()

来自docs :

To find whether a given point falls within a polygon, pass the point and the polygon to google.maps.geometry.poly.containsLocation(). The functions returns true if the point is within the polygon or on its edge.

对比

To determine whether a point falls on or near a polyline, or on or near the edge of a polygon, pass the point, the polyline/polygon, and optionally a tolerance value in degrees to google.maps.geometry.poly.isLocationOnEdge().

如果你使用 containsLocation 它会起作用

alert(google.maps.geometry.poly.containsLocation(event.latLng, poly));

fork fiddle http://jsfiddle.net/VL7Rx/

我真的无法解释为什么它不能与 isLocationOnEdge 一起工作。这似乎是仅 100% 垂直多段线的问题,并且对于您的 0,0,0,1 等,Lng 始终为零 (0)(单击垂直)- 好像该线没有有任何“宽度”,“mapwise”。

关于javascript - Google map API V3 - isLocationOnEdge() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com