2011-12-11 103 views
1

我有一个数组,我想其值传递到一个路径绘制多边形将值传递给google.maps.LatLng

var coords = new Array("25.1, 66", "25.5, 65", "21.3, 67"); 

无论坐标数,如何可以通过这个图案“X, Y”定义为在阵列中上面google.maps.LatLng

var triangleCoords = [ 
      new google.maps.LatLng(coords[0]), 
      new google.maps.LatLng(coords[1]), 
       new google.maps.LatLng(coords[2]), 

    ]; 

    // Construct the polygon 
    // Note that we don't specify an array or arrays, but instead just 
    // a simple array of LatLngs in the paths property 
    draw = new google.maps.Polygon({ 
    paths: triangleCoords, 
    strokeColor: "#FF0000", 
    strokeOpacity: 0.8, 
    strokeWeight: 2, 
    fillColor: "#FF0000", 
    fillOpacity: 0.35 
    }); 
+0

'LatLng'总是需要两个参数 - 经度和纬度 –

回答

0

你可以做new google.maps.LatLng(coords[0].split(',')[0],coords[0].split(',')[1])

然而,因为这是做分裂两次,我可能会拉出来成一个函数 - 是这样的:

function createLatLng(coordString) { 
    var a = coordString.split(','); 
    return new google.maps.LatLng(a[0],a[1]); 
} 

var triangleCoords = [ 
     createLatLng(coords[0]), 
     .... 
]; 

对于额外的信用,你就可以使用一个for循环:

var triangleCoords = []; 
    for (var i = 0; i < coords.length; i++) { 
     triangleCoords[i] = createLatLng(coords[i]); 
    } 
0

试试这个:而不是new google.maps.LatLng(coords[0])

var coords = new Array("25.1, 66", "25.5, 65", "21.3, 67"); 
var triangleCoords = []; 
for (var i = 0; i < coords.length; i++) { 
var pos = coords[i].split(","); 
var loc = new google.maps.LatLng(pos[0], pos[1]); 
    triangleCoords.push(loc); 
}