You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Leaflet中如何在地图拖拽、平移或缩放时实时获取中心经纬度?

解决Leaflet实时获取地图中心经纬度的问题

嘿,这问题我碰到过,马上给你捋清楚~

你用focus事件出错的原因很简单:Leaflet的focus事件对象里根本没有latlng这个属性,自然会抛出Cannot read property 'lat' of undefined的错误;而click事件本身会携带点击位置的经纬度数据,所以能正常运行。

要实现拖拽、平移或缩放时实时瞬间更新地图中心的经纬度,你需要监听Leaflet的move事件——这个事件会在地图位置变化的整个过程中持续触发,完美匹配你的需求。

正确的代码写法是这样的:

map.on('move', function() {
  // 通过map.getCenter()获取当前地图中心的经纬度对象
  const mapCenter = map.getCenter();
  console.log("Lat, Lon : " + mapCenter.lat + ", " + mapCenter.lng);
});

如果之后你需要在地图操作结束后才获取中心(比如只在拖拽停止后更新),可以换成moveend事件,用法和上面一致。

对比你熟悉的Google Maps写法,Leaflet是通过getCenter()方法来获取实时中心,而不是直接访问属性,这是两者API设计的小差异~

内容的提问来源于stack exchange,提问作者Anand

火山引擎 最新活动