Google Maps API v3 MouseEvent返回标记而非鼠标的位置

时间:2012-03-07 15:16:15

标签: google-maps-api-3

我已在标记上实现了带有标记和侦听器的地图。

...
google.maps.event.addListener(marker,'rightclick',function(event) {showRightClick(event, map, marker);});
...

// Show Right Click Menu
function showRightClick(event, map, marker) {
        var point = map.getCanvasProjection().fromLatLngToContainerPixel(event.latLng);
        var scriptInterface = getHeader();
        var screenX = point.x + window.screenLeft;
        var screenY = point.y + window.screenTop;
        scriptInterface.rightClick(marker.name, marker.objectid, marker.dimobjectid, screenX, screenY);
}

但是,当听众触发时,事件纬度和经度是标记而不是鼠标。因此,我试图显示的右键菜单显示在标记的底部而不是鼠标位置。

有人知道这是错误还是预期的行为?

1 个答案:

答案 0 :(得分:0)

虽然文档说明MouseEvent事件的LatLng是“事件发生时光标下方的纬度/经度”,但它是版本2中标记的位置。

第3版中的行为可能会相同。我不相信这是一个错误,虽然我可以看到它会产生意外的右键单击结果。

您可能需要使用DOM右键单击事件(尽管如此,如果不是不可能将其与标记关联起来将很困难。)