来自谷歌地图的LatLng多边形getPath()

Eli*_*ten 13 google-maps-api-3

基于Google Maps JavaScript API v3文档,google.maps.Polygon类的getPath()函数返回一个MVCArray.在简单的情况下,Polygon的路径可以是单个数组,在传递到google.maps.Polygon类的函数时LatLngs转换为该MVCArray类型setPath().

以上案例是我目前正在处理的问题.我传入一个数组LatLngs,并MVCObject在我调用getPath()我的Polygon对象时返回(我假设的).我的问题是:如何将其转换MVCObjectLatLngs形成Polygon形状的单个数组?我是否缺少一些内置的Google Maps API v3方式?我觉得必须有一些明显的内置转换功能或API中的东西,这是我的想法.

任何帮助,将不胜感激.

Sea*_*key 28

当调用Polygon.getPath()API的文档,返回的是一个MVCArrayAPI的文档LatLng代表的第一路径实例Polygon.您可以通过MVCAarray两种方式直接联系成员:

  1. 调用MVCAarray.getArray,它将返回Array包含LatLng成员的基础JavaScript .
  2. 使用MVCArray.getAt( index ),它将返回MVCArray(a)LatLng在该索引中的任何内容.这为您提供了一种设置JavaScript for循环以迭代数组成员的方法.

您还可以MVCArray使用该forEach(callback:function(*, number))函数间接使用该成员.在这种情况下,您必须传递一个接受两个参数的回调函数:

  1. 实际的成员元素MVCArray.
  2. 该元素所在的数组索引.


Aly*_*wan 5

    var polygonBounds = polygon.getPath();
    var bounds = [];
    for (var i = 0; i < polygonBounds.length; i++) {
          var point = {
            lat: polygonBounds.getAt(i).lat(),
            lng: polygonBounds.getAt(i).lng()
          };
          bounds.push(point);
     }
Run Code Online (Sandbox Code Playgroud)