Leaflet 可见 GeoJSON 路径的中心点

Centerpoint of the visible GeoJSON path with Leaflet

我正在开展一个项目,该项目正在显示以选定国家和邻国为中心的地图,所有这些都使用 GeoJSON。我想知道是否有办法获得一个国家可见部分的中心点?

该项目的一部分涉及添加国家/地区标签作为标记。到目前为止,我可以在以下位置添加标记:

  1. 国家中心点
  2. 可见边界框的中心点

第一种方法很可能将标签放置在视图之外(或部分可见),第二种方法对此进行了改进,但可以将标签放置在国家/地区以外的区域,因为边界框是一个过于简化的区域一个国家。理想情况下,我将能够获得形状的剪裁区域,以便我可以找出该形状的中心点,以查看标签放置是否会得到改进,但我不确定该怎么做。

不要以为 leaflet.js 可以单独进行这样的空间变换,但听起来 turf.js 可能具有必要的功能。假设你有你的国家 geojson 和你的视口 bbox,这样的事情可能有效:

turf.pointOnSurface(turf.intersect(countryPoly, viewportBbox));

turf 应该与 leaflet 搭配得很好。 (虽然我自己还没有尝试过)。