如何使用Google地图绘制多条折线?

时间:2011-04-08 12:29:10

标签: javascript google-maps

我在数据库中有一个纬度和经度列表,我想在谷歌地图上绘制更多的折线。 例如:

var i, j;
var polyline1 = new Array(latt.length);

str = new Array(latt.length);
for (var k = 0; k < latt.length; k++) {
    i = latt[k].split(',');
    j = longg[k].split(',');
    str[k] = 'new GLatLng(' + i[0] + ',' + j[0] + ')' + ',';
    for (var count = 1; count < i.length; count++) {
        str[k] += 'new GLatLng(' + i[count] + ',' + j[count] + ')' + ',';
    }
    str[k] = str[k] + 'new GLatLng(' + i[0] + ',' + j[0] + ')';

    polyline1[k] = new GPolyline([str[k]], "#ff0000", 6);

    map.addOverlay(polyline1[k]);

    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
}

但我收到错误

1 个答案:

答案 0 :(得分:0)

我不明白错误 - 我无法在任何地方看到a - 但您几乎肯定使用GPolyline错误。它需要一个对象数组,而不是JavaScript字符串的单个元素数组:

var polyline1 = new Array(latt.length);

str = new Array(latt.length);
for (var k = 0; k < latt.length; k++) {
    var i = latt[k].split(',');
    var j = longg[k].split(',');

    var latlngs = [];
    for (var count = 0; count < i.length; count++) {
        latlngs.push(new GLatLng(parseFloat(i[count]), parseFloat(j[count])));
    }
    polyline1[k] = new GPolyline(latlngs, "#ff0000", 6);

    map.addOverlay(polyline1[k]);
}

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

我不知道parseFloat是否真的有必要。您可能希望将控件添加到循环外部。