首页 > 解决方案 > Angular 10 - Openlayers 获取地图坐标(点击)

问题描述

我的 Angular 地图组件中有一个 OpenLayers 地图。我需要在 Angular(click)事件上获取地图的点击坐标。在 Javascript 中很简单,只需添加以下代码:

map.on('click', function(evt) {
  var coordinate = evt.coordinate;
}

在 Angular 上map.component.html,我添加了以下代码:

<div id="map" (click)="getCoord($event)" class="map"></div>

并像这样getCoord()在我的函数中创建了函数:map.component.ts

getCoord(event: any){
    var coordinate = this.map.getEventPixel(event);
 }

对于同一个点击事件,javascript返回这个坐标,就是我需要的那个

数组 [-180047.42012573266, 5279667.9723422285]

但是在角度上,我得到了这个:

数组 [480, 221]

知道如何使用 Angular 获得正确的坐标,或者如何将第二个坐标转换为第一个坐标?我真的陷入了困境。

谢谢!

标签: javascriptangulardictionarygisopenlayers

解决方案


最后解决了getEventCoordinate()

 getCoord(event: any){
    var coordinate = this.map.getEventCoordinate(event);
 }

对于在中生成的点击事件map.component.html

<div id="map" (click)="getCoord($event)" class="map"></div>

推荐阅读