从d3.js中的GeoJson多面体获取每个多边形的质心

时间:2013-11-15 21:28:43

标签: javascript svg d3.js geojson

我正在使用d3.js作为非连续的制图,其中国家/地区根据某些数据进行缩放。我正在从GeoJson文件生成的svg中的每个国家/路径的质心缩放,但这对于描述为多字形的国家(如美国或加拿大)来说看起来不太好。

我想找到形成多边形的每个多边形的质心,因此我可以在不翻译的情况下重新缩放。例如,当使用美国的质心时,阿拉斯加向右移动(在墨卡托投影中),而其余的向上移动。理想情况下,阿拉斯加将从其自身的质心缩放,因此它将保持在相同的位置。

是否可以迭代多面体特征中的每个多边形并获得其质心?

谢谢!

1 个答案:

答案 0 :(得分:1)

最后,我决定通过迭代几何形式来分割多边形中的多边形,如提到的@LarsKotthoff。通过这些多边形,我创建了一个新的特征数组,其中没有Multipolygon类型。路径从此数组添加到svg,导致多个多边形具有相同的id和名称,即具有相同国家/地区缩写的加拿大的多个多边形。

因此,您可以继续使用d3的path.centroid()来获取每个多边形的质心。