Однією з проблем, з якою ми стикаємось при створенні веб-програми, є якнайшвидше відображення просторової інформації.
Формат GeoJSON легший за стандарт GML, а також дозволяє уникнути міждоменної проблеми.
Тепер ця проста архітектура може мати проблеми: об’єкт GeoJSON все ще дуже важкий (через кількість цифр, що використовується для кодування координат у текстовому форматі), а отже, для відображення даних на карті потрібно багато часу.
Проблема полягає в тому, що веб-переглядач представляє кожну з геометрій, тому чим більша кількість вершин, тим повільніше буде карта (25 КБ на точку).
Давайте розглянемо декілька прийомів, як зменшити розмір GeoJSON та покращити швидкість роботи нашої програми веб-відображення:
TopoJSON - це розширення GeoJSON, яке кодує топологію.
TopoJSOn усуває надмірності, пропонуючи більш компактні зображення геометрії, ніж GeoJSON. Наприклад, спільний кордон між двома країнами представляється лише один раз, замість того, щоб дублюватися для обох країн, таким чином, спільні точки представляються лише один раз.
TopoJSON кількісно визначає координати, таким чином кожна дуга визначається своїми квантованими координатами. Квантування складається з перетворення рядка, що складається із шкали та перекладу, який перетворює координати з десятковою частиною у цілі числа.
Завдяки усуненню надмірностей та кількісному визначенню координат, Файли TopoJSON на 80% менші за їх еквіваленти GeoJSON.
Перетворення TopoJSON в GeoJSON
Найпростішим є використання веб-сайту shpescape.com, який дозволяє нам трансформувати файли шейп-файлів у GeoJSON та TopoJSON.
- Видаліть усі атрибути, які ви не будете використовувати в програмі.
- Також видаліть пробіли.
- Усуньте розриви рядків.
У наступному прикладі ми бачимо, як у нас повторюються клавіші (ІМЯ, ШИРОТА, ВИСОТА, POP_MAX)
Обхідний спосіб зменшити та стиснути файл, видаляє ці ключі та створює індекс у заголовку. Результат буде приблизно таким:
Для виконання цього стиснення ми маємо такі інструменти, як HPack або CJSON, обидва пропонують коефіцієнт стиснення, який становить близько 60-70%.
Одним з найбільш ефективних варіантів зменшення розміру GeoJSON є спростити вектор. Таким чином ми позбавляємось від непотрібних нам деталей. Це спрощення служило б для ліній та багатокутників.
Для спрощення ліній або багатокутників ми можемо використовувати настільний ГІС-клієнт.
GRASS є ідеальним інструментом для цієї операції, оскільки, будучи топологічним ГІС, ми не втрачаємо суміжності, тому корекція буде збережена навіть при високому рівні спрощення. Розглянутий алгоритм - v.generalize.
Для грубого спрощення ми можемо використовувати Інтернет-інструмент, такий як Mapshaper, який дозволяє згладжувати лінії або виключати вузли з файлу shp, geojson або topojson.
Найпростіший спосіб покращити швидкість візуалізації точок полягає у використанні плагіна, який групує їх разом. Цей параметр значною мірою допомагає покращити візуалізацію на стороні клієнта, оскільки це означає, що браузер клієнта не повинен набирати 10000 очок, він лише забирає від 10 до 50.
Серед плагінів для брошури ми знаходимо 5 для цього:
З усіх них ми хочемо виділити PruneCluster, чому? Оскільки він здатний представити 1 000 000 маркерів лише за 1,9 секунди на своєму першому дисплеї та за 400 мілісекунд на наступних.
Крім того, групи можна оновлювати в режимі реального часу. Він ідеально підходить для живих ситуацій.
Інші переваги цього плагіна:
- Ми можемо вказати вагу кожного маркера.
- Вкажіть категорію для закладок. Таким чином, ми можемо створювати піктограми, адаптовані до нашого вмісту.
- Розмір групи можна регулювати на льоту
- Закладки можна легко відфільтрувати, не витрачаючи продуктивності.
Іншим варіантом є створення Heatmaps або теплових карт, як ми вже бачили в навчальному посібнику зі створення теплових точок з OpenLayers. той момент.
Використовуйте швидкий переглядач веб-карт
Такий API, як Leaflet, виконує швидкий та розумний візуалізацію як ліній, так і багатокутників. Завдяки спрощенню та динамічному відсіченню ми можемо візуалізувати об’єкти з тисячами точок.
Уникайте роботи з GeoJSON
Одним із варіантів може бути перенесення його на зовнішній тессельований сервер. Наприклад TileMill.
Хоча, звичайно, найкраще створити повноцінну архітектуру, складену, наприклад, з PostGIS + GeoServer + GeoWebCache + API на наш вибір. Онлайн-веб-курс допоможе вам визначитися, який варіант найкращий.
Пам'ятайте, що карта, на яку потрібен час для показу космічних об'єктів, швидше за все, не відкриється ...
Використовуйте векторні плитки
Векторні плитки створюють значно швидкі карти, забезпечуючи при цьому повну гнучкість у дизайні.
Це векторні дані, еквівалентні плиткам зображень для веб-відображення, застосовуючи переваги плиток до векторних даних: розроблені для кешування, масштабованості та швидкого обслуговування зображень карти.
Ми також залишаємо вам цікавий коментар, який Абель Васкес Монторо залишив нам у LinkedIn:
Якщо мета полягає в тому, щоб полегшити обмін векторними даними як швидкістю, так і розміром, оптимальним варіантом проти вихідного GeoJSON є використання буферів протоколів та управління всіма обмінами в PBF. Покращення швидкості (на 300% швидше) та розмір (на 90% менше) вимагають зусиль, щоб змінити формати як на клієнтському, так і на серверному.
- Поради щодо покращення зовнішнього вигляду вашого обличчя за 5 хвилин - Краще зі здоров’ям
- Хитрощі для зменшення подвійного підборіддя у чоловіків
- Хитрощі для зменшення стегон - Bezzia
- За словами експертів, зменшіть обсяг порцій та виконуйте фізичні вправи, що є ключовим фактором для схуднення
- Поради та рекомендації щодо зменшення целюліту, розтяжок та варикозу