Joe*_*ery 16 javascript google-maps google-maps-api-3
我在地图周围点缀了标记,并在标记您位置的标记上设置了半径(圆形覆盖)(每次移动时都会更改).有什么方法可以检查其他标记是否进入圆圈内?
UPDATE
我通过循环每个其他标记来解决这个问题,并使用几何库计算标记与另一个标记之间的距离,然后使用简单的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++;
});
}
Run Code Online (Sandbox Code Playgroud)
我想要注意上面的代码使用jQuery,所以如果你不使用jQuery它将无法正常工作.
Mar*_*ark 46
这是一种向类添加contains方法的方法google.maps.Circle.如果它甚至不在边界框中,它首先使用边界框来排除一个点.如果它在边界框中,则它将点与中心的距离与半径进行比较,并且仅当距离小于半径时才返回true.
在下面添加javascript后,您可以在圆形对象上调用contains()方法.
google.maps.Circle.prototype.contains = function(latLng) {
return this.getBounds().contains(latLng) && google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(), latLng) <= this.getRadius();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14097 次 |
| 最近记录: |