Клуб API Карт

Увеличение скорости загрузки треков

GLN1981
14 августа 2015, 23:22

  Создаю карту из большого числа GPX треков. Используя функцию geoXml.load с использованием API 2.1 Задача - создание интерактивной карты велупутешествий по всему Миру. На карте порядка 50-100 треков, но в перспективе планирую сделать карту с 500-1000 треков, такое возможно без существенного снижения скорости загрузки?

 Каждый трек старался предварительно фильровать до примерно 10-15 тысяч точек, но все равно загрузка карты даже при высокой скорости Интернета происходит долго и часто(особенно в старых браузерах) загружается не всё (или кнопки карты перестают работать), особенно если пользователь html страницы нажимает кнопки предназначенные для отображения конкретного трека, не дождавшись окончания загрузки обзорной карты треков.

 

   Прочитал, что есть так называемый менеджер загрузки объектов  LoadingObjectManager позволяющий загружать только видимую информацию (будет ли в нём смысл в масштабе карты Мира?), но не могу разобраться как вставить функцию  geoXml.load в этот менеджер. Если не трудно, приведите пример работоспособного кода этой задачи. 

 

   Возможно использование огромного числа скриптов для обработки каждого трека это корень зла?  Какие ещё могут быть решения?

  

  Вот пример созданной мной карты  http://www.veloway.su/maps/Karta/2014/veloway2014.html

 

  


3 комментария

Такое количество ломаных можно показать только через активные области

Попробуйте предварительно разбить трек на большее количество сегментов . Я не знаю, как работает XML парсер от Яндекса, но у Мелкомягких столкнулся с такой болячкой, что если на одной "ветке" слишком много "листьев", т.е. в одном  слишком много , разбор документа слишком замедляется. Приходилось искусственно сегмент трека дробить на более мелкие сегменты, что вобщем-то не безрезультатно сказалось на скорости разбора документа.

Спасибо за советы.

 

 Сильно разбивать трек не желательно, так как он используется не только для работы интерактивной карты, но и для скачивания его пользователями и планирования маршрута по нему. Кроме того большинство треков на карте и так разбиты по дням.

 

Что касается активных областей, то понятно как это работает с точками и прямоугольниками, но с линиями(треками) всё сложнее, они могут накладываться друг на друга. Т.е. активная область конкретного трека может в некоторых местах пересекаться с активной областью другого трека. Можно ли отобразить в одной активной области сразу несколько треков? 

 

 Желательно конкретный пример кода.