Олександр Мацібора. Веб-ГІС історичних будівель Сполученого Королівства, розроблена за допомогою DGGS H3 і векторних тайлів Tippecanoe
Веб-ГІС історичних будівель Сполученого Королівства є прикладом успішної інтеграції декількох різних технологій, інструментів командного рядка, бібліотек та підходів до візуалізації даних із розгортанням у хмарному сховищі:
- Quasar Framework
- MapLibre GL JS
- Tippecanoe
- PMTiles
- Discrete Global Grid System (DGGS) H3
- Storj decentralized storage platform
- Cloudflare CDN proxy
Запропонована безсерверна архітектура є універсальною і може розглядатись як прототип клієнтського веб-ГІС застосунку для візуалізації та маніпуляції великими обсягами векторних просторових даних (наприклад веб-атласів та інше).
1. Набір даних. З метою поєднання та імплементації таких різних технологій і демонстрації ефективності пропонованого підходу потрібний був набір даних обсягом сотні тисяч точок. Також, просторові об’єкти повинні мати різну щільність розташування в залежності від регіону. Саме тому було створено набір даних історичних будівель Сполученого Королівства (493 734 точки) шляхом поєднання тематичних шарів (для Англії, Шотландії, Уельсу та Північної Ірландії) від різних постачальників (всі посилання на оригінальні дані доступні в онлайн-версії веб-ГІС). Найбільшою проблемою було те, що всі просторові шари мали різну структуру атрибутів, але для повноцінної демонстрації технологічного рішення найважливішими є: однорідність і просторовий розподіл об’єктів.
2. Візуалізація. Щоб відобразити різну щільність історичних будівель Сполученого Королівства на декількох масштабних рівнях використовувалась Discrete Global Grid System H3. Найбільш інформативними рівнями H3 є: 4, 5, 6, 7, 8. Таким чином, було згенеровано 5 файлів geoJSON із шестикутниками за допомогою бібліотеки h3.js. Кількість будівель для кожного шестикутника обчислювалась методом агрегації в SQL-запиті. В подальшому це дало змогу створити тематичні карти для всіх H3 масштабних рівнів: 4, 5, 6, 7, 8.
3. Векторні тайли. Створені за допомогою h3.js бібліотеки geoJSON файли містять різну кількість шестикутників. Для прикладу, на масштабному рівні 4 їх кількість становить 255, але для 8-го рівня даний показник складає вже 96 094. Відображення значної кількості векторних полігонів є складною задачею для веб-браузера. Щоб вирішити цю проблему всі geoJSON файли було конвертовано у векторні тайли за допомогою Tippecanoe CLI. В подальшому, з використанням PMTiles CLI було згенеровано єдиний .pmtiles файл, який містить всі тематичні шари. Зазначена конвертація виконана з метою уникнення обслуговування десятків тисяч малих .pbf файлів у хмарному сховищі. В результаті отримано один великий .pmtiles файл, до якого можна спрямовувати запити і отримувати просторові дані, які потрібні саме в даний момент часу.
4. Розгортання. У випадку обслуговування файлів значних розмірів (.pmtiles > 1GB) з точки зору швидкодії одним з найкращих варіантів є об’єктне сховище Storj. Воно має нативний, легкий у використанні, інструмент Uplink CLI для завантаження файлів. В поєднанні із Cloudflare CDN проксі це дає змогу гарантувати безпечний (HTTPS) та надійний сервіс.
5. Корисні посилання:
- YouTube демонстрація: https://www.youtube.com/watch?v=mYqmu8-8v50
- Веб-ГІС онлайн: https://historic-places-uk.web.app/

