【发布时间】:2018-10-24 19:59:54
【问题描述】:
我正在尝试制作一个应用程序来告诉我坐标是否包含在circle 中。
每次我点击地图上的一个点时,我都会得到坐标。我想知道这个新坐标是否包含在圆圈内
我也想知道如何让一个圆圈占据一个坐标周围 5 米的范围。在我的示例中,半径为:50000,但我不知道如何执行转换以设置以米为单位的值。
这是我的代码:
http://plnkr.co/edit/OI4sjcuS526rFYxPnvDv?p=preview
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat:4.624335 , lng: -74.063644 },
zoom: 5,
});
//circle coordinates
var circle = new google.maps.Circle({
map: map,
radius: 50000,
fillColor: '#FFFFFF',
opacity:0,
center:{lat:4.624335 , lng: -74.063644 }
});
google.maps.event.addListener(map, 'click', function(e) {
//I get new coordinates ( e.latLng)
});
}
谢谢!
更新
他们已使用此解决方案将此问题标记为重复 (http://jsfiddle.net/kaiser/wzcst/embedded/result/)
但这并不能真正解决我的问题,因为正如您在图像中看到的那样,解决方案失败了。
【问题讨论】:
-
@geocodezip 我的问题没有重复,那个答案不能解决我的问题。我需要知道坐标是否包含在圆内,在您给我的示例中,您可以清楚地看到坐标在圆外的情况并标记为包含。
-
请在答案中使用小提琴,而不是在你说它不起作用之前的问题。
-
我可以看到同样的事情发生。看起来距离计算(
computeDistanceBetween)和实际的圆半径相差几米。你试过小圈子吗?我想知道这是否可能是由于地球曲率(?)。圆始终是测地线吗?那么计算距离的方法呢?也就是说,您的问题仍然是重复的,已标记。 -
@MrUpsidown 发生的事情是,由于某种原因,圆圈似乎被包围在一个矩形中。这就是为什么在这一点上,标记似乎在那个矩形内。也许这个问题可以重复,但答案不能满足我的需要。你能帮帮我吗?
-
@geocodezip 这个“解决方案”并不准确。您可以在我的图像中清楚地看到标记未包含在圆圈中,并且表示它已包含在内。这是因为在圆内创建了一种矩形,因此它不在圆内。如果您能帮我解决这个问题,我会非常高兴。
标签: google-maps google-maps-api-3