首页 > 解决方案 > 传单在显示位置重复时提供无效的 Lng/Lat 坐标

问题描述

问题

传单提供的 lng/lat 不是 GPS 坐标吗?我有办法将其转换为 GPS 坐标还是传单中的错误?

重现步骤

设置重复的地图。单击重复部分,单击事件将返回不同且通常无效的坐标。

预期行为

将为每个 GPS 位置提供正确的(重复的)坐标,无论它是否在显示器上重复。

显示错误的代码

只需绑定一个点击事件

L.map(name, {fullscreenControl: true}).fitWorld().zoomIn().on("click", selectorConfirm);

function selectorConfirm = function(e) {
console.log('selected:'+e.latlng.lat+','+e.latlng.lng);
}

重现问题的最小示例

https://www.hikerock.com/rock/210/

点击地图->控制台日志将输出传单提供的gps坐标。

代码非常简单,如果您需要访问它:

https://www.hikerock.com/plugin/map/js/map.min.js?cache=6x3cWuxp

function map() => inits leaflet map.prototype.selectorConfirm () -> 是收集事件,是在做console.logging

标签: javascriptleafletopenstreetmap

解决方案


看起来这就是 Leaflet 的设计方式:

https://github.com/Leaflet/Leaflet/issues/1885

它可以通过使用来解决:

e.latlng.wrap();
e.latlng.wrap().lat;

推荐阅读