【问题标题】:Getting Centroid of a polygon not working google maps v3获取多边形的质心不起作用谷歌地图v3
【发布时间】:2014-09-19 04:31:57
【问题描述】:

我看了这个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…}

lat 是 90,long 是 14.156949867679714,这是完全错误的它甚至不存在,我不知道我真的错过了什么。谢谢!

【问题讨论】:

  • 顺便说一句,这个多边形存在。我创建了它,这就是为什么这段代码不工作真的很奇怪

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


【解决方案1】:

你的经纬度倒数(纬度最大值为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多