【问题标题】:Angular 10 - Openlayers get map coordinates on (click)Angular 10 - Openlayers 获取地图坐标(点击)
【发布时间】: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


【解决方案1】:

终于用getEventCoordinate()解决了:

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

对于map.component.html中产生的点击事件:

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

【讨论】:

    猜你喜欢
    • 2015-03-09
    • 2011-06-21
    • 2018-12-10
    • 2013-05-15
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多