javascript – 创建多边形时使用MVC数组

我正在尝试使用二维点阵列来使用Google maps api创建多边形.这是我的代码:

console.log(points)
mvc = new google.maps.MVCArray(points)
console.log(mvc.getArray())
console.log(mvc)

poly = new google.maps.Polygon({
        paths: mvc,
        strokeWeight: 2
    });

//poly.setPaths(new google.maps.MVCArray(points));    

这是控制台输出的样子

[[44.465332670616895, 26.143829190988], [44.466098355169805, 26.1465114000029], [44.4652867292244, 26.1474555375761], [44.4646435459323, 26.1463826539702], [44.4643066375701, 26.145588720101802]]

[[44.465332670616895, 26.143829190988], [44.466098355169805, 26.1465114000029], [44.4652867292244, 26.1474555375761], [44.4646435459323, 26.1463826539702], [44.4643066375701, 26.145588720101802]]

mg { b=[5], gm_accessors_={...}, length=5, more...}

而这个错误:

Invalid value for constructor parameter 0: [object Object]

对于我尝试使用MVC数组创建多边形的行,或将其指定为多边形路径.

现在我做错了什么?

最佳答案 分配给多边形路径的数组项应该是LatLng对象,您必须先转换值:

for(var i=0; i < points.length; ++i){
     points[i] = new google.maps.LatLng(Number(points[i][0]),
                                        Number(points[i][1]));
}
点赞