首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击事件坐标

点击事件坐标
EN

Stack Overflow用户
提问于 2018-02-12 11:04:41
回答 2查看 3.3K关注 0票数 8

我对“不对称”/“ngx-传单”很陌生,所以这可能只是个新手问题.

我有一个Angular.io (v5)项目使用@asymmetrik/ngx-传单-教程-ngcli

现在我想得到我在地图上点击的点的坐标。根据问题#51得到坐标点击?的说法,我添加了以下内容:

代码语言:javascript
复制
map.on('click', () => { console.log(e.latlng); });

至:

代码语言:javascript
复制
onMapReady(map: Map) {
    map.fitBounds(this.route.getBounds(), {
        padding: point(24, 24),
        maxZoom: 12,
        animate: true
    });
    map.on('click', () => { console.log(e.latlng); });
}

这给了我一个运行时错误:Cannot find name 'e'.

这对我来说很有意义。因此,我将代码更改为:

map.on('click', (e) => { console.log(e.latlng); });

但是这也给了我一个错误:Property 'latlng' does not exist on type 'LeafletEvent'

当我把e放到控制台console.log(e)时,我可以看到最近的属性存在.为什么我不能用e.latlng访问坐标

我的项目使用:

“@角/cli”:"1.4.7",

“@asymmetrik/ngx-传单”:"^2.5.1",

“@type/传单”:"^1.2.0",

“小册子”:"^1.2.0",

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-12 12:47:35

编译器推断事件类型是LeafletEvent,它不具有latlng属性。所以你才会犯这个错误。

传单文档表明,这个事件实际上是LeafletMouseEvent类型的,它扩展了LeafletEvent。因此,您可以强制转换事件以获得对LeafletMouseEvent属性的访问(如下所示:

代码语言:javascript
复制
map.on('click', (<LeafletMouseEvent>e) => {
    console.log(e.latlng);
});
票数 5
EN

Stack Overflow用户

发布于 2018-02-12 11:54:14

尝试将其“转换”为LeafletMouseEvent

代码语言:javascript
复制
map.on('click', <LeafletMouseEvent>(e) => { console.log(e.latlng) });
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48744952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档