如何从地图上的点击中获取Mapviewer的Mapviewer容器相对x和y像素坐标?

时间:2016-06-10 16:52:48

标签: oracle oracle-map-viewer

我正在使用嵌入在HTML页面中的Oracle Mapviewer地图,我通过Javascript api与地图进行交互。

Mapviewer的displayInfoWindow函数将在用户点击地图的点附近的地图容器内生成一个弹出对话框,但这似乎是通过相对于地图本身的GIS坐标而不是像素坐标位于地图图层上相对于包含Mapviewer窗口。当用户点击地图上的点时,我需要获取点击的x和y坐标,这样我就可以将div放在地图容器顶部的正确坐标上。 Mapviewer中的infoWindow对于我的目的来说还不够,所以我需要在包含页面中构造它,但我需要能够正确定位它。

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

1 个答案:

答案 0 :(得分:0)

我最后做的是在包含MapViewer的Div上添加一个事件处理程序,然后由于MapViewer不消耗点击事件,我只是观察并处理了提供相对于x + y像素坐标的click事件。我要处理的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;
}