Сообщение от x-yuri
|
namo86, начать стоит с того, зачем столько объектов на карте? Может их можно не все сразу выводить? Расскажи поподробнее
|
Задача состоит в том, чтобы вывести данные из GPX файла, например такого:
http://www.gpslib.ru/tracks/info/130..._14-35-57.html ... Точек: 50357 ... Основная часть данных это координаты трека (google.maps.Polyline), код получился примерно такой:
var point = new google.maps.LatLng
(
_this.trackData.points[progressCurent].gps.lat,
_this.trackData.points[progressCurent].gps.lng
);
if( !_this.hasOwnProperty('googleMapTrackPath') )
{
_this.googleMapTrack = new google.maps.Polyline
({
strokeColor: '#2a72a8',
strokeOpacity: 0.5,
strokeWeight: 5,
map: _this.googleMap
});
_this.googleMapTrackPath = _this.googleMapTrack.getPath();
}
_this.googleMapTrackPath.push(point)
Как уже писал, если не использовать setTimeout, при выводе браузер просто зависает, невозможно понять, работает он или висит и сколько он ещё будет грузиться. С помощью setTimeout проблема полностью решается, единственный нюанс это время загрузки, но и это думаю не такая уж большая проблема, самый оптимальный вариант как мне видится, увеличить количество обрабатываемых точек за один выполнение функции setTimeout, можно даже подумать насчет автобалансировщика нагрузки, с помощью пресловутой функции (new Date()).getTime(); и в случае быстрого выполнения одного цикла, добавлять максимальное количество обрабатываемых точек.
Кстати если есть материалы по этому поводу, былобы любопытно почитать.