获取多边形的质心不起作用谷歌地图v3

时间:2014-07-28 02:06:02

标签: javascript google-maps google-maps-api-3 center polygon

我查看了这个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,这是完全错误的它甚至不存在,我不知道我真正想念的是什么。谢谢!

1 个答案:

答案 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)
  ];

working fiddle

中心: 纬度:14.156949867679742, 经度:121.26772556627952