我查看了这个answer关于获取多边形的质心,并基本上复制了代码。
因为我试图解决同样的问题,即获得多边形的质心,并且对于给定的示例(百慕大三角形),它会产生奇迹。
现在,我真的有这个奇怪的错误,或者我真的不知道发生了什么,但我有一个类似的代码使用多边形我试图获得质心的。
var bounds = new google.maps.LatLngBounds();
var i;
var polygonCoords = [
new google.maps.LatLng(121.26814396414763 , 14.156734403334724 ),
new google.maps.LatLng(121.2682025135474 , 14.156956159186617 ),
new google.maps.LatLng(121.2673054424065 , 14.15716533202476 ),
new google.maps.LatLng(121.26724861901177 , 14.156951585745787 ),
new google.maps.LatLng(121.26814396414763 ,14.156734403334724 )
];
for (i = 0; i < polygonCoords.length; i++) {
bounds.extend(polygonCoords[i]);
}
console.log(bounds.getCenter());
上面的形状基本上是一个非常小的矩形。但是控制台中的输出是:
R {k: 90, B: 14.156949867679714, toString: function, j: function, equals: function…}
纬度为90,长度为14.156949867679714,这是完全错误的它甚至不存在,我不知道我真正想念的是什么。谢谢!
答案 0 :(得分:3)
你有纬度和经度向后(纬度的最大值是90度)
var polygonCoords = [
new google.maps.LatLng(14.156734403334724,121.26814396414763),
new google.maps.LatLng(14.156956159186617,121.2682025135474),
new google.maps.LatLng(14.15716533202476,121.2673054424065),
new google.maps.LatLng(14.156951585745787,121.26724861901177),
new google.maps.LatLng(14.156734403334724,121.26814396414763)
];
中心: 纬度:14.156949867679742, 经度:121.26772556627952