我正在使用d3.js作为非连续的制图,其中国家/地区根据某些数据进行缩放。我正在从GeoJson文件生成的svg中的每个国家/路径的质心缩放,但这对于描述为多字形的国家(如美国或加拿大)来说看起来不太好。
我想找到形成多边形的每个多边形的质心,因此我可以在不翻译的情况下重新缩放。例如,当使用美国的质心时,阿拉斯加向右移动(在墨卡托投影中),而其余的向上移动。理想情况下,阿拉斯加将从其自身的质心缩放,因此它将保持在相同的位置。
是否可以迭代多面体特征中的每个多边形并获得其质心?
谢谢!
答案 0 :(得分:1)
最后,我决定通过迭代几何形式来分割多边形中的多边形,如提到的@LarsKotthoff。通过这些多边形,我创建了一个新的特征数组,其中没有Multipolygon类型。路径从此数组添加到svg,导致多个多边形具有相同的id和名称,即具有相同国家/地区缩写的加拿大的多个多边形。
因此,您可以继续使用d3的path.centroid()来获取每个多边形的质心。