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

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

我看了这个answer关于获取多边形的质心,基本上复制了代码。

因为我正在尝试解决同样的问题,即获取多边形的质心,对于给定的示例(百慕大三 Angular 形),它会产生奇迹。

现在,我真的遇到了这个奇怪的错误,或者我真的不知道发生了什么,但我有一个类似的代码,使用我试图获取其质心的多边形。

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

最佳答案

您拥有向后的纬度和经度(纬度的最大值为 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

关于javascript - 获取多边形的质心不起作用谷歌地图v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987590/

相关文章:

javascript - 在新窗口中打开一个 div - 单击按钮

javascript - 移动端的 jQuery 点击事件

javascript - 使用 Angular 谷歌地图时如何正确处理标记点击事件?

javascript - 单击 map 标记时平滑滚动

javascript - ExtJS 隐藏字段与存储

javascript - 如何构建 Oa_zones 数组以利用 Rails 中的 Open full page 调用?

android - Maps V2 InfoWindow 中的动态内容

android - 在 ScrollView android 中显示完整 map

javascript - 写入kml文件: How send kml string to kml file?

google-maps - Google Maps API v3 中的 removeOverlay