0

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

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

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

4

1 回答 1

0

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