javascript - 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 获得正确的坐标,或者如何将第二个坐标转换为第一个坐标?我真的陷入了困境。
谢谢!
解决方案
最后解决了getEventCoordinate()
:
getCoord(event: any){
var coordinate = this.map.getEventCoordinate(event);
}
对于在中生成的点击事件map.component.html
:
<div id="map" (click)="getCoord($event)" class="map"></div>
推荐阅读
- json - 带有 API 的 Apache Drill S3 存储
- java - 如何在 Android 的 WebView 中显示 PDF?
- reactjs - 属性“startHeaderHeight”不存在错误
- rational-team-concert - 如何获取有关 scm list changes 返回的更改的更多信息?
- c# - 为不同的应用程序添加同名角色
- node.js - 使用 Node.js 在 AWS Lambda 上进行 Twilio 身份验证
- python - 为什么 hasattr 返回错误的结果?
- python - 来自 avro 文件的 tf.data.dataset
- angularjs - 角度项目的粒子js背景?
- swift - 编程 iOS 按钮以在第一次点击时执行操作,然后在第二次点击时继续