4

我正在尝试使用二维点数组来使用 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 数组创建多边形或将其分配为多边形路径的行。

现在我做错了什么?

4

1 回答 1

2

分配给多边形路径的数组项应为 LatLng 对象,您必须首先转换值:

for(var i=0; i < points.length; ++i){
     points[i] = new google.maps.LatLng(Number(points[i][0]),
                                        Number(points[i][1]));
}
于 2013-05-30T11:11:05.920 回答