Медленная загрузка файла KML в Leaflet ... могу ли я загрузить его часть? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть простая карта с использованием листовки ESRI и всеядного существа для загрузки файла KML размером 34 МБ.Загрузка занимает около 1 минуты.Есть ли способ загрузить его на основе границ карты?Мне нужно получить доступ к некоторым атрибутам каждого многоугольника по щелчку, поэтому это, вероятно, ограничит некоторые из моих вариантов в плане преобразования KML в изображение и т. Д. Чтобы получить файл KML, с которым я работаю, я преобразовал шейп-файл в KML с помощьюGoogle Планета Земля.

Я отметил этот параметр в документации: .kml.parse (kmlString | gpxDom): анализировать KML из строки XML или XML DOM и возвращать слой.Есть ли способ предварительного анализа KML на основе некоторых лат / лон-фильтров ... или на основе границ карты ... и затем отобразить меньшую часть KML?Или мне нужно преобразовать KML во что-то еще более гибкое для отображения?

Вот как я загружаю файл KML.

var glacier_np_layer = omnivore.kml('counties.kml', null, L.geoJson(null, {style: countystyle }));
glacier_np_layer.addTo(map1);

Вот ссылка: http://blueandthegreen.com/ltg/county.html и http://blueandthegreen.com/ltg/counties.kml Извините за отсутствие jsfiddle, но мне трудно связываться с большим KML там.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 29 марта 2019

Возможно, у вас есть 2 узких места:

  • загрузка файлов размером 34 МБ
  • , отрисовка полигонов в виде отдельных форм SVG.

Анализ затраченного временина каждом этапе вы получите данные о том, где работать.Например, вы можете сохранить дату перед загрузкой вашего файла, в событии готовности к всеядности и после добавления на карту (при условии, что вы добавляете после события готовности)

Что касается пункта 1, вы можете преобразовать свои данные в векторплитки / плитки GeoJSON.

Что касается пункта 2, вы можете сначала попробовать использовать рендерер Canvas вместо SVG по умолчанию.Решение для пункта 1 также очень помогло бы.

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