Это вторая часть серии примеров, показывающих, как работать с визуализацией больших наборов данных GeoJSON на интерактивной веб-карте (+100 МБ).
Часть №1 представила набор инструментов из vis.gl (https://vis.gl/frameworks), а именно DeckGL. Недостатком этого подхода является то, что он полагается на MapBox GL для части интерактивной карты, которая начиная с v2 больше не является открытым исходным кодом. Если для вашего проекта важны OSS, MapBoxGL может быть не лучшим вариантом.
К счастью, earcut, библиотека под капотом, которая выполняет триангуляцию полигональной геометрии для WebGL, по-прежнему является OpenSource (еще раз спасибо MapBox 🙏).
Я часто использую LeafletJS в своих проектах, поэтому первое, что я сделал, это написал демонстрацию, сочетающую триангуляцию слухового прохода с листовкой с использованием наложения холста. После некоторого успеха в рендеринге полигонов на основе других примеров — я провел последний поиск существующего плагина для листовок, прежде чем изобретать велосипед… и нашел Leaflet.glify (GL-ify)!
Leaflet.glify — очень мощный плагин, но у него есть некоторые минусы.
Чтобы решить эти проблемы, я устанавливаю одноранговый плагин для листовок под названием Leaflet.glify.layer, который можно использовать как есть, а также он может служить в качестве примера того, как основной плагин Leaflet.glify может быть улучшен в будущем.
Цель состоит в том, чтобы объединить высокопроизводительный рендеринг с удобствами, предоставляемыми собственным слоем L.geoJSON Leaflets.
TLDR; проверить: https://github.com/onaci/Leaflet.glify.layer
Обновлять:
Я также настроил пример того, как это сделать на Python (по аналогии с PyDeck) через плагин для библиотеки Folium, см.:
- Репозиторий Github: https://github.com/onaci/folium-glify-layer
- Jupyter Notebook через Pangeo Binder: https://binder.pangeo.io/v2/gh/onaci/folium-glify-layer/main
Вот как на данный момент выглядит версия JavaScript (также: демо):
Есть лучший способ? Дай мне знать!