Как получить относительные к контейнерам координаты 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;
}