【发布时间】:2019-08-03 06:50:45
【问题描述】:
我的 Angular 地图组件中有一个 OpenLayers 地图。我需要在 Angular (click) 事件上获取地图的点击坐标。在Javascript中很简单,只需添加以下代码:
map.on('click', function(evt) {
var coordinate = evt.coordinate;
}
在map.component.html的Angular中,我添加了以下代码:
<div id="map" (click)="getCoord($event)" class="map"></div>
并在我的map.component.ts 中创建了getCoord() 函数,就像这样:
getCoord(event: any){
var coordinate = this.map.getEventPixel(event);
}
对于同一个点击事件,javascript返回这个坐标,就是我需要的那个
数组 [-180047.42012573266, 5279667.9723422285]
但是在角度上,我得到了这个:
数组 [480, 221]
知道如何使用 Angular 获得正确的坐标,或者如何将第二个坐标转换为第一个坐标?我真的陷入了困境。
谢谢!
【问题讨论】:
-
为什么不在组件端,在实际的地图实例(而不是 dom 元素)上添加点击处理程序?
-
@David 谢谢,但我找不到这样做的方法。 Angular 在组件端有点击处理程序吗?
-
你如何实例化你的地图?实例化之后,就可以得到一个ol map的实例。然后在那个实例上使用 map.on...
-
var coordinate = this.map.getEventCoordinate(event); -
感谢@mike,效果很好
标签: javascript angular dictionary gis openlayers