Angular 10 - Openlayers 获取地图坐标(点击)
Angular 10 - Openlayers get map coordinates on (click)
我的 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 returns这个坐标,就是我需要的
Array [ -180047.42012573266, 5279667.9723422285 ]
但在 angular 中,我得到了这个:
Array [ 480, 221 ]
知道如何使用 Angular 获得正确的坐标,或者如何将第二个坐标转换为第一个坐标吗?我真的陷入了这个。
谢谢!
终于用getEventCoordinate()
解决了:
getCoord(event: any){
var coordinate = this.map.getEventCoordinate(event);
}
对于map.component.html
中产生的点击事件:
<div id="map" (click)="getCoord($event)" class="map"></div>
我的 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 returns这个坐标,就是我需要的
Array [ -180047.42012573266, 5279667.9723422285 ]
但在 angular 中,我得到了这个:
Array [ 480, 221 ]
知道如何使用 Angular 获得正确的坐标,或者如何将第二个坐标转换为第一个坐标吗?我真的陷入了这个。
谢谢!
终于用getEventCoordinate()
解决了:
getCoord(event: any){
var coordinate = this.map.getEventCoordinate(event);
}
对于map.component.html
中产生的点击事件:
<div id="map" (click)="getCoord($event)" class="map"></div>