多边形中心谷歌地图JavaScript API v3

Center of Polygon Google Maps JavaScript API v3

本文关键字:API v3 JavaScript 谷歌地图 多边形      更新时间:2023-10-24

我浏览了这个线程:如何在谷歌地图v3中获得多边形的中心?,Matthew Scharley的答案目前被标记为正确,但这对我来说并不合适。我正在从服务器上动态下载50-100个多边形的角坐标,这些多边形位于一个长/宽对象阵列中,我需要一个动态而非手动的解决方案来确定多边形中心。furiozo从同一个线程得到的答案几乎满足了我的需求,因为它计算了多边形的平均中心,但我在控制台日志中看到的结果来自他的函数:

google.maps.Polygon.prototype.my_getBounds=function(){
    var bounds = new google.maps.LatLngBounds()
    this.getPath().forEach(function(element,index){bounds.extend(element)})
    return bounds
}
console.log(myPolygon.my_getBounds().getCenter());

不是我可以在程序中随时使用的东西。

我在控制台中得到的是:

_.M {}
   lat: function ()
      arguments: (...)
      caller: (...)
      length: 0
      name: ""
      prototype: Object
      __proto__: function ()
      <function scope>
        Closure
          a: 45.256705626
          b: -75.91270512
        Closure 
        Global: Window
   lng: function() -- contains same sub-levels as lat: function() --
   __proto__: Object

我现在真正需要的是如何到达a&b位于控制台中获取的对象中lat:function()中第一个闭包级别下的lat/lng值。(我通过在代码中替换这些结果进行了手动检查,它们代表了我的第一个多边形的正确中心)。如果您能为我们提供帮助,我们将不胜感激。

或者,如果有人知道如何动态获取平均多边形中心坐标值的最新解决方案,以便最终结果为(lat,lng)格式,这可能会节省我的时间。

非常感谢!

您看到的是一个LatLng对象。

您可以简单地调用上面的lat()lng()函数:

var lat = myPolygon.my_getBounds().getCenter().lat();
var lng = myPolygon.my_getBounds().getCenter().lng();