我正在使用嵌入在HTML页面中的Oracle Mapviewer地图,我通过Javascript api与地图进行交互。
Mapviewer的displayInfoWindow函数将在用户点击地图的点附近的地图容器内生成一个弹出对话框,但这似乎是通过相对于地图本身的GIS坐标而不是像素坐标位于地图图层上相对于包含Mapviewer窗口。当用户点击地图上的点时,我需要获取点击的x和y坐标,这样我就可以将div放在地图容器顶部的正确坐标上。 Mapviewer中的infoWindow对于我的目的来说还不够,所以我需要在包含页面中构造它,但我需要能够正确定位它。
当用户点击地图时,如何从Mapviewer获取Mapviewer容器相对的x和y像素坐标?
答案 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;
}