从滚动的传单地图中获取真实坐标

Get true coordinates from scrolled leaflet map

我正在使用 React Leaflet。当用户点击地图时,我会检索坐标并在上面设置一个标记。一切都在地图上工作,但地图用作检索设置位置的天气数据的方式。

说明

这是一张图片,可能有助于说明我面临的问题

在顶部,我为每个 "piece" 地球添加了经度值。

有一个"true"经度为-0.09°的标记

在左边的地球上,相同的位置将 return -360.09° 经度

在正确的地球上,相同的位置将 return 359.91° 经度

我用这段代码检索纬度和经度:

setMarker = e => {
    this.props.updateLocation({
      lat: e.latlng.lat,
      lng: e.latlng.lng,
    })
}

问题

我面临的问题是,如果我将经度值传递给天气 API,那超出了允许的范围 (> -180° && < 180°),它不会 return 任何东西,因为经度当然不存在。

有没有办法return获取"true"经纬度?

如果这不存在,我该如何禁用地图滚动(只允许出现一个地球)?或者只允许在第一个地球内放置一个标记?我不确定什么是最好的方法,传单文档让我感到困惑,因为我不理解一些术语。

经过更多搜索,我发现了一个内置方法,它完全符合我的要求。

在这个 GitHub 问题上找到它 https://github.com/Leaflet/Leaflet/issues/1885#issuecomment-91395167

要通过鼠标点击获得实际的纬度和经度,无论您点击哪个地球,都可以在 latlng 上使用 wrap() 方法:

event.latlng.wrap()

这个returns一个对象,例如

{
  lat: 63.51385990617828,
  lng: 173.671875
}