gpt4 book ai didi

leaflet - 确定传单中多个多边形的中心点

转载 作者:行者123 更新时间:2023-12-02 10:29:52 28 4
gpt4 key购买 nike

如何确定多个多边形的中心点?

我的意思是附图中用红点表示的点。PS:多边形的数量可以变化。该算法应该能够确定大多数多边形中心的近似点。

enter image description here

最佳答案

有多种方法可以实现此目的,具体取决于您的具体需求。

最简单的方法是计算整个多边形的质心。很多地理空间软件都可以计算多边形、多外环多边形等的质心。

如果您使用的是 Leaflet 和 GeoJSON,我个人的选择是使用 Turf.js用于地理处理,例如:

var poly1 = {
type: 'Feature',
geometry: {
type: 'Polygon',
coordinates: [[[10, 10], [10, 20], [20, 15]]]
}
};

var poly2 = {
type: 'Feature',
geometry: {
type: 'Polygon',
coordinates: [[[10, 45], [20, 40], [20, 50]]]
}
};

var featCollection = {
type: 'FeatureCollection',
features: [poly1, poly2]
}

L.geoJSON(featCollection).addTo(map)

// Magic happens here:
var centroid = turf.centroid(featCollection);

L.geoJSON(centroid).addTo(map);

您可以将其视为 working example .

现在,质心是多边形的密度中心。如果你还记得高中几何,你就会记得有 lots of centers for something as simple as a triangle ,每个都有自己的属性。

这对于更复杂的多边形来说是正确的:some times you don't want the centroid 。如果考虑测地线(即地球不是二维平面的事实),事情就会变得……更加复杂。

因此,根据您想要做什么,您可能需要一个更详细的解决方案,以便找到的不是质心,而是一个最小化到任何多边形的距离的点(理解为到任何多边形的最小距离)该多边形的顶点)。

关于leaflet - 确定传单中多个多边形的中心点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40607603/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com