2012-03-07 2 views
0

Я реализовал карту с маркерами и слушателями на маркерах.API Карт Google 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

Не проще ли будет отображать ваше меню на основе абсолютного положения мыши относительно страницы и полностью игнорировать карту (за исключением объекта маркера)? Также .. правый клик для MAP - это положение мыши .. любое событие на маркере всегда будет позицией маркера. – whiteatom

ответ

0

Хотя документация говорит, что MouseEvent мероприятия LatLng является «широта/долгота, которая была под курсором, когда произошло событие,» это было расположение маркера в версии 2.

поведение можно ожидать чтобы быть тем же самым в версии 3. Я не считаю, что это ошибка, хотя я вижу, что она дает неожиданные результаты для щелчка правой кнопкой мыши.

Возможно, вам понадобится вместо этого щелчок правой кнопкой мыши (хотя тогда будет сложно, если не невозможно связать это с маркером).

+0

В моей предыдущей версии, использующей API V2, слушатель находился на объекте карты, а не на объекте-маркере. Когда правый щелчок был пойман, он прошел оверлей в случае, если правый клик был выполнен над маркером. Это означало, что точка была указана на мыши, а не на маркере. Но, похоже, это не работает в V3, и правый щелчок недоступен, если слушатель находится на карте. – ijefferyes

Смежные вопросы