从多边形路径获取latLng失败

时间:2014-04-16 10:28:50

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

我正在尝试在geoJSON中表示多边形,我正在尝试将path转换为array坐标,如下所示:

  createCoordinates:function(path)
    {
        var res=[];
        var i=0;
        console.log(path.getLength());
        for(i=0;i<path.getLength();i++)
        {
            res.push([path.getAt(i).lat(),path.getAt(i).lng()]);
        }
        console.log(res);
        return res;
    }

    exportPolygon:function(poly){
        var res={};
        res.type="Polygon";
        console.log(polygon.getPath(poly));
        var cone=this.createCoordinates(polygon.getPath(poly));
        res.coordinates=cone;
        return res;
     }

path看起来像这样:

     Ef {j: Array[181], gm_accessors_: Object, length: 181, gm_bindings_: Object, k:  
     function…}
     A: function (b,c){Gd(a.A.ab,function(a,e){e(b,c)})}
     D: function (b,c){Gd(a.D.ab,function(a,e){e(b,c)})}
     gm_accessors_: Object
     gm_bindings_: Object
     j: Array[181]
     k: function (b){Gd(a.k.ab,function(a,d){d(b)})}
     length: 181
     __proto__: c 

但我获得的长度是0,因此结果是一个空数组。

1 个答案:

答案 0 :(得分:1)

你有一个错字。 polygon.getPath()应该是poly.getPath()。 (我希望javascript错误)。

exportPolygon:function(poly){
    var res={};
    res.type="Polygon";
    console.log(poly.getPath(poly));
    var cone=this.createCoordinates(poly.getPath(poly));
    res.coordinates=cone;
    return res;
 }