由谷歌地图绘制的矩形DrawingManager不会触发mousemove事件

时间:2012-04-23 12:59:47

标签: javascript google-maps

我想:

  • 在Google地图上绘制矩形
  • 最多有矩形
  • 显示鼠标移动时的当前位置

所以,我想出了这段代码 - http://jsfiddle.net/mark69_fnd/vBwf6/4/ 我订阅了rectanglecomplete实例的DrawingManager事件,以便处理前一个矩形,保存对新矩形的引用并在矩形上订阅mousemove事件。

问题在于,mousemove事件永远不会被触发。

我做错了什么以及如何解决?

感谢。

1 个答案:

答案 0 :(得分:7)

这是一个函数,它通过与地图容器左上角相关的像素偏移给出GPS坐标。

function getLatLngByOffset( map, offsetX, offsetY ){
    var currentBounds = map.getBounds();
    var topLeftLatLng = new google.maps.LatLng( currentBounds.getNorthEast().lat(),
                                                currentBounds.getSouthWest().lng());
    var point = map.getProjection().fromLatLngToPoint( topLeftLatLng );
    point.x += offsetX / ( 1<<map.getZoom() );
    point.y += offsetY / ( 1<<map.getZoom() );
    return map.getProjection().fromPointToLatLng( point );
}

在地图的div元素上添加'onmousemove'事件侦听器,然后传递与div的左上角相关的鼠标位置。

更新DEMO(已在 Chrome 上测试)