Google Maps API v3 MouseEvent возвращает позицию маркера, а не мыши - PullRequest
0 голосов
/ 07 марта 2012

Я реализовал карту с маркерами и слушателями на маркерах.

...
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 голосов
/ 07 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...