【发布时间】:2015-01-09 11:01:03
【问题描述】:
这是我迄今为止尝试过的......
我有一个这样定义的圆形标记:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-34.397, 150.644),
map: map,
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillOpacity: 0.5,
fillColor: 'yellow',
strokeOpacity: 1.0,
strokeColor: 'red',
strokeWeight: 3.0,
scale: 20
}
});
我还有一个可拖动的标记。当可拖动标记触及圆形标记的任何部分时,我想更改它的填充颜色。我正在努力的是如何检测可拖动标记是否触及圆形标记的任何部分。
google.maps.event.addListener(dragable_marker, 'drag', function(e) {
//somehow need to check if e.latLng touched the circle
}
圆圈标记甚至不需要是标记。它可以是一个普通的 Circle 对象。
var circle = new google.maps.Circle({
center : new google.maps.LatLng(-34.397, 150.644),
radius : 500,
fillOpacity : 0,
strokeOpacity : 0,
map : map
});
然后,我可以像这样轻松完成我的目标。
google.maps.event.addListener( dragable_marker, 'dragend', function(e) {
alert(circle.getBounds().contains(e.latLng));
});
我最初尝试使用 Circle 对象来解决我的问题,但后来我意识到它没有“比例”属性,而且无论地图缩放级别如何,它似乎都不允许我固定圆的大小。
任何帮助/建议将不胜感激。
【问题讨论】:
-
Search inside circle markers 的可能副本。 [顺便说一句 - bounds 对象是方形的,而不是圆形的......]
标签: javascript google-maps google-maps-api-3