我试图在谷歌地图中模仿谷歌地球的桌面版绘图路径。我所做的是当我尝试绘制路径时,我禁用了默认地图的可拖动事件并附加了一个 mousedown 事件。在 mousedown 事件之后,mousemove 事件被触发并相应地工作。当鼠标释放事件被捕获在 mouseup 处理程序中,其中 mousemove 处理程序在 mouseup 事件侦听器中被删除。但是,这在第二个 mousedown 和 mouseup 事件之后无法正常工作。
我的代码是:
var map = 'Already created map object';
var polyOptions = {
strokeColor: '#000000',
strokeOpacity: 1.0,
strokeWeight: 2,
map: map,
idx: 0
};
var mouseMoveHandler = null;
google.maps.event.addListener(map, 'mousedown', function(e) {
mouseMoveHandler = google.maps.event.addListener(map, 'mousemove', function(e) {
// Create a new polyline instance if it does not exists
if ("undefined" == typeof(GMap._poly[GMap._active_overlay])) {
GMap._poly[GMap._active_overlay] = new google.maps.Polyline(polyOptions);
}
var path = GMap._poly[GMap._active_overlay].getPath();
path.push(e.latLng);
}); // End of mousemove lister
return false;
});
google.maps.event.addListener(map, 'mouseup', function(e) {
google.maps.event.removeListener(mouseMoveHandler);
});