Как получить относительные к контейнерам координаты x и y Mapviewer из MapViewer по щелчкам на карте?

Я работаю с картой Oracle Mapviewer, встроенной в HTML-страницу, где я взаимодействую с картой через API Javascript.

Функция displayInfoWindow в Mapviewer будет генерировать всплывающее диалоговое окно внутри контейнера карты рядом с точкой, на которой пользователь щелкает карту, но, похоже, она расположена на слое карты через координаты ГИС относительно самой карты, а не пиксельные координаты относительно содержащий окно MapViewer. Мне нужно получить координаты x и y клика, когда пользователь щелкает точку на карте, чтобы я мог абсолютно точно расположить div на вершине контейнера карты в правильных координатах. Информационное окно внутри MapViewer недостаточно для моих целей, поэтому мне нужно создать его на содержащей странице, но я должен быть в состоянии правильно его расположить.

Как я могу получить относящиеся к контейнерам координаты x и y Mapviewer из MapViewer, когда пользователь нажимает на карту?

1 ответ

Решение

В итоге я добавил обработчик событий в Div, который содержит MapViewer, а затем, так как MapViewer не использует события щелчка, я просто наблюдал и обрабатывал событие click, которое предоставляло координаты пикселей x + y относительно Div для мне справиться. Я использую это в Angular проекте, поэтому я использовал ng-click на Div.

<div id="mapDiv" ng-click="trackMouseClick($event)">
    <!-- MapViewer loads into the mapDiv -->
</div>

Затем в моем контроллере я написал функцию для обработки событий:

$scope.trackMouseClick = function(event) {
    <!-- event has offsetX and offsetY properties -->
    var xCoordinate = event.offsetX;
    var yCoordinate = event.offsetY;
}
Другие вопросы по тегам