Как нарисовать несколько полилиний с помощью Google Maps? - PullRequest
1 голос
/ 08 апреля 2011

У меня есть список широты и долготы в базе данных, и я хочу нарисовать больше полилинии на картах Google.Например:

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 голосов
/ 08 апреля 2011

Я не понимаю ошибку - я нигде не вижу 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. Возможно, вы захотите переместить элементы управления вне цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...