2012-03-07 107 views
0

我已經在標記上實施了標記和偵聽器的地圖。Google Maps API v3 MouseEvent標記不是鼠標的返回位置

... 
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); 
} 

但是,當偵聽器觸發時,事件的經度和緯度就是標記而不是鼠標。所以,我嘗試顯示的右鍵菜單出現在標記的底部,而不是鼠標的位置。

有誰知道這是一個錯誤還是預期的行爲?

+0

基於鼠標相對於頁面的絕對位置顯示菜單並且完全忽略地圖(除了標記對象之外)是不是更容易?另外..地圖的右鍵點擊鼠標的位置..標記上的任何事件將始終是標記的位置。 – whiteatom 2012-03-23 02:17:15

回答

0

雖然文檔說MouseEvent事件的LatLng是「經/緯度那是光標下方事件發生時,」它在第2版。

是標記的位置的行爲可預期在版本3中是相同的。我不相信這是一個錯誤,儘管我可以看到它產生了意想不到的結果,用於右鍵單擊。

您可能需要使用DOM右鍵單擊事件(儘管如果不是不可能將它與標記關聯起來將會很困難)。

+0

在我之前使用V2 API的版本中,偵聽器位於地圖對象上,而不是標記對象。當右鍵被捕獲時,如果在標記上執行了右鍵單擊,則在事件中通過疊加。這意味着提供的點是鼠標而不是標記。但是,這在V3中似乎不起作用,如果偵聽器在地圖上,右鍵不可用。 – ijefferyes 2012-03-07 16:24:08

相關問題