多边形中心Google Maps JavaScript API v3

时间:2016-03-31 18:36:54

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

我仔细查看了这个主题:How to get the center of a polygon in google maps v3?,而 Matthew Scharley的答案目前标记为正确并不适合我。我正在从lat / long对象数组中的服务器动态下载50-100个多边形的角坐标,我需要一个动态非手动解决方案来确定多边形中心。来自 furiozo 的同一个线程的答案接近满足我的需求,因为它计算多边形的平均中心,但是我在我的console.log中看到的结果来自他的函数:

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&amp; b lat / lng值位于lat中的第一个Closure级别下:在我的控制台中的对象中的function()。 (我通过在代码中替换这些结果手动检查,它们代表了我的第一个多边形的正确中心)。任何有关如何到达他们的帮助将不胜感激。

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

您所看到的是LatLng对象。

您可以执行的操作只需调用其上的lat()lng()函数:

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