如何通过点击地图从 Mapviewer 获取 Mapviewer 容器相关的 x 和 y 像素坐标?

How to get Mapviewer container-relative x and y pixel coordinates from the Mapviewer from clicks on the map?

我正在使用嵌入在 HTML 页面中的 Oracle Mapviewer 地图,我通过 Javascript api.

与地图进行交互

Mapviewer 的 displayInfoWindow 函数会在用户点击地图的位置附近的地图容器内生成一个弹出对话框,但这似乎是通过相对于地图本身的 GIS 坐标位于地图图层上,而不是相对于包含的 Mapviewer window 的像素坐标。当用户单击地图上的点时,我需要获取单击的 x 和 y 坐标,以便我可以绝对将 div 定位在地图容器顶部的正确坐标处。 Mapviewer 中的 infoWindow 不足以满足我的目的,因此我需要在包含页面中构建它,但我需要能够正确定位它。

当用户点击地图时,如何从 Mapviewer 中获取 Mapviewer 容器相关的 x 和 y 像素坐标?

我最后做的是在包含 MapViewer 的 Div 上添加一个事件处理程序,然后由于 MapViewer 不使用点击事件,我只是观察并处理了提供 x 的点击事件+ y 相对于 Div 的像素坐标由我来处理。我在 Angular 项目中使用它,所以我在 Div.

上使用了 ng-click
<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;
}