gpt4 book ai didi

javascript - 检测标记是否在 Google map 上的圆圈覆盖范围内(Javascript API V3)

转载 作者:可可西里 更新时间:2023-11-01 01:21:04 25 4
gpt4 key购买 nike

我在 map 周围点缀了标记,标记上的半径(圆形覆盖)标记了您的位置(每次移动都会改变)。有什么方法可以检查其他标记是否进入圆圈内?​​

更新

我通过循环遍历每个其他标记来解决这个问题,并使用几何库计算你的标记和另一个标记之间的距离,然后使用一个简单的 if 语句来查看它是否小于 100 米。

function checkAllChests() {
var Current = 0;
$.each(treasureArray, function() {
//var thisLocation = treasureArray[Current].getPosition();

var distanceBetween = Math.ceil(google.maps.geometry.spherical.computeDistanceBetween(treasureArray[Current].getPosition(), marker_me.getPosition()));
if(distanceBetween < 100) {
alert('CAN OPEN THIS CHEST');
}
Current++;
});
}

我想指出,上面的代码使用了 jQuery,所以如果您不使用 jQuery,它将无法运行。

最佳答案

这是一种将 contains 方法添加到 google.maps.Circle 类的方法。它首先使用边界框排除不在边界框中的点。如果在边界框内,则将点到中心的距离与半径进行比较,只有当距离小于半径时才返回真。

在下面添加 javascript 后,您可以在 circle 对象上调用 contains() 方法。

google.maps.Circle.prototype.contains = function(latLng) {
return this.getBounds().contains(latLng) && google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), latLng) <= this.getRadius();
}

关于javascript - 检测标记是否在 Google map 上的圆圈覆盖范围内(Javascript API V3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766218/

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