开发者

How to draw multiple polylines using Google Maps?

I have a list of latitude and longitude in database and I want to draw more polyline on google maps. For example:

var i, j;
var polyline1 = new Arra开发者_StackOverflow中文版y(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());
}

but I'm getting error


I don't understand the error - I can't see an a anywhere - but you're almost certainly using GPolyline wrong. It wants an array of objects, not a single-element array of a string of 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());

I don't know if the parseFloats are actually necessary. You probably want to move the control adds outside the loop too.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜