stringtranslate.com

Векторные плитки

Векторные плитки , мозаичные векторы или векторили [1] представляют собой пакеты географических данных, упакованные в заранее определенные «плитки» примерно квадратной формы для передачи через Интернет. Это новый метод создания стилизованных веб-карт , сочетающий в себе определенные преимущества предварительно обработанных фрагментов растровой карты с данными векторной карты . Как и в случае с широко используемыми растровыми мозаичными веб-картами , данные карты запрашиваются клиентом в виде набора «плиток», соответствующих квадратным участкам земли заранее определенного размера и местоположения. Однако в отличие от растровых мозаичных веб-карт сервер возвращает данные векторной карты, обрезанные по границам каждого тайла, вместо предварительно обработанного изображения карты.

У этого гибридного подхода есть несколько основных преимуществ. По сравнению с векторной картой без плиток, передача данных сокращается [2] , поскольку необходимо передавать только данные в пределах текущего окна просмотра и с текущим уровнем масштабирования. Все операции вырезания ГИС можно выполнить заранее, поскольку границы фрагментов заранее определены. Это, в свою очередь, означает, что мозаичные векторные данные можно упаковывать и распространять без необходимости использования какой-либо ГИС-системы для обслуживания данных.

По сравнению с мозаичной растровой картой передача данных также значительно сокращается, поскольку векторные данные обычно намного меньше визуализированного растрового изображения. Кроме того, стили можно применить позже в процессе или даже в самом браузере, что обеспечивает гораздо большую гибкость представления данных. Также легко обеспечить интерактивность объектов карты, поскольку их векторное представление уже существует в клиенте. [2] Еще одним преимуществом является то, что требуется меньшая вычислительная мощность централизованного сервера, поскольку растеризация может выполняться непосредственно на клиенте. Это было описано как «рендеринг… проблема последней мили, когда быстрые и высококачественные графические процессоры есть у каждого в кармане». [3]

История

Существует долгая история использования векторных схем листов в ГИС. Самая ранняя ГИС (около 1966 г.), Канадская географическая информационная система (CGIS), использовала схему хранения векторных листов, которая позволяла компьютерам с ограниченными ресурсами эффективно получать доступ и обрабатывать данные векторных карт. [4] В CGIS вместо векторных фрагментов использовался термин «кадр».

В 1975 году Служба дикой природы США инициировала национальную программу по картированию и оцифровке всех водно-болотных угодий США. В 1976 году они заключили с Autometric контракт на разработку программного обеспечения, позволяющего оцифровывать стереоизображения с помощью аналитического стереоплоттера. Позже была добавлена ​​поддержка 2D-оцифровки отдельных фотографий (так называемая резекция одной фотографии) на столе оцифровки. Программное обеспечение называлось WAMS (система аналитического картографирования водно-болотных угодий). В хранилище данных WAMS использовалась мозаичная векторная структура. Каждая плитка называлась «геоединицей». Геоединица соответствовала одному из четырехугольных масштабов Геологической службы США, обычно 1:24000. По мере оцифровки данных они немедленно сохранялись в мозаичном хранилище данных и топологически структурировались. Линии, пересекающие границы геообъектов, автоматически разделялись. Хранилище системы отсчета координат (CRS) составляло WGS 72 широты/долготы. WAMS подробно описана в «Системе аналитического картографирования водно-болотных угодий: WAMS» [Pywell and Niedzwiadek, 1980].

Опираясь на практический опыт, полученный при внедрении и использовании WAMS, а также системы наложения карт и статистики (MOSS), [5] в 1986 году компания Autometric выпустила коммерческую ГИС на базе UNIX, в которой реализована расширенная мозаичная и индексированная структура хранения и доступа: DeltaMap. (позже ГенаМап). Возможности тайловой структуры и схема индексации описаны в документе «DeltaMap: не просто еще одна ГИС». [6] Там, где WAMS реализовала фиксированную систему листов, основанную на четырехугольниках широты и долготы 1:24000, DeltaMap позволяла пользователю определять тайлы любого размера в любой системе координат (CRS). Таким образом, для разреженных данных требовалось всего несколько плиток, тогда как для плотных данных можно было использовать плитки гораздо меньшего размера. В качестве схемы индексации векторных листов использовались R-деревья. Кроме того, в отличие от более ранних реализаций листов, DeltaMap/GenaMap использовала одну и ту же схему листов и индексации для любого типа геопространственных данных, включая 2D и 2,5D векторные и объектные данные, спутниковые изображения, 3D-сетки, такие как DEM, и аннотации. В конце 1980-х годов компания Genasys усовершенствовала GenaMap, чтобы обеспечить «непрерывную и плавную» обработку мозаичных слоев. По сути, с точки зрения конечного пользователя плитки стали невидимыми. Эта возможность работала независимо от того, редактировал ли пользователь, визуализировал, запрашивал или анализировал данные.

Стандарты и подходы

По состоянию на начало 2015 года не существует доминирующего стандарта для векторных листов. Подходы могут различаться по формату URL-адресов, формату сериализации данных, упаковке информации о стилях и поддержке проекций, отличных от Web Mercator.

Буферы протокола (Mapbox)

Mapbox определил открытый стандарт для фрагментов векторных карт под названием «vector-tile-spec», который использует буферы протокола Google для экономичной сериализации данных. Web Mercator представляет собой эталонную проекцию, но для представления данных можно использовать векторные плитки с любой схемой проекции и экстента. [7] Он также связан с механизмом рендеринга Mapnik и использует «сериализованную версию внутренних данных, которые использует Mapnik». [8]

В марте 2015 года Esri , ведущий производитель геопространственного программного обеспечения, объявил, что будет поддерживать стандарт векторных листов Mapbox как на серверных, так и на клиентских платформах. [9]

Векторная плитка Mapnik

Это был ранний формат, разработанный для средства визуализации Mapnik. [10]

Другие форматы

Подход, которому следует TileStache, заключается в разрешении нескольких форматов сериализации данных; по состоянию на начало 2015 года он поддерживает GeoJSON, ArcJSON, GeoBSON, Arc GeoServices BSON, GeoAMF и Arc GeoServices BSON. Запрошенный формат указан в URL-адресе (например, http://example.com/tiles/mylayer/2/1/3.json)

Поддерживать

Сервисы и приложения

Векторные плитки используются в клиенте Google Maps для Android с декабря 2010 года [11] и в клиенте для настольных компьютеров с 2013 года. [12] Векторные плитки для рендеринга данных OpenStreetMap были впервые предложены в марте 2013 года [1] и поддерживаются Mapnik, [ 13] наиболее широко используемый рендерер данных OpenStreetMap. Mapbox , коммерческий поставщик пользовательских картографических инструментов и хостинга, сосредоточил свой картографический инструмент Mapbox Studio на векторных листах. [14]

Популярный и очень мощный Android-клиент для данных OpenStreetMap, osmAnd, поддерживает векторные тайлы, которые он называет «векторными картами». [15]

Серверы

Конвейер тайлового сервера TileStache изначально поддерживает несколько разновидностей JSON. [16] Существует также плагин-провайдер векторных тайлов под названием VecTiles [17] , который преобразует данные PostGIS в векторные тайлы в формате Mapnik Vector Tile (несовместимом со спецификацией Mapbox [18] ) или TopoJSON .

PGRestAPI (также известный как пространственный сервер Chubbs) — это автономный сервер NodeJS, который также может генерировать векторные листы «на лету» из источника данных PostGIS, а также обслуживать предварительно созданные векторные листы из таких источников, как Mapbox Studio. [19]

pg_tileserv — это тайловый сервер с открытым исходным кодом, предназначенный только для PostGIS, написанный на Golang , который принимает HTTP-запросы и форму тайлов и выполняет SQL . [20]

В ESRI ArcGIS Server 10.4 [21] и ArcGIS Pro 1.2 [22] , выпущенных в феврале 2016 г., добавлена ​​поддержка векторных листов.

Клиентские библиотеки

Библиотека Leaflet JavaScript напрямую не поддерживает векторные плитки, но существует сторонний плагин для векторных плиток: Leaflet.MapboxVectorTile для Leaflet 0.7.x [23] и Leaflet.VectorGrid для Leaflet 1.0.x. [24]

Можно использовать собственную библиотеку JavaScript Mapbox — Mapbox GL JS. [25]

OpenLayers поддерживает векторные тайлы через объект ol.source.VectorTile [26] , начиная с версии 3.

Внешние ссылки

Рекомендации

  1. ^ ab «Свобода постгресности: мозаичные векторы в Mapnik (tecznotes)» . mike.teczno.com . Проверено 24 августа 2014 г.
  2. ^ ab «О плиточных векторах». исследование.microsoft.com . Проверено 24 августа 2014 г.
  3. ^ Мигурский, Михал (1 апреля 2013 г.). «Слайды Geomeetup 2013–04» (PDF) .
  4. ^ «Вводные чтения по географическим информационным системам». ЦРК Пресс . Проверено 26 апреля 2016 г.
  5. ^ Мосс: историческая перспектива https://www.scribd.com/document/4606038/2004-Article-by-Carl-Reed-MOSS-A-Historical-perspective
  6. ^ Reed CN (1986) DELTAMAP: Не просто еще одна новая ГИС - материалы 3-го Международного симпозиума по обработке пространственных данных. Комиссия IGU по сбору и обработке географических данных, Уильямсвилл, штат Нью-Йорк, стр. 375–83.
  7. ^ «vector-tile-spec/2.1 в мастере · Mapbox/vector-tile-spec · GitHub» . github.com . Проверено 24 мая 2016 г.
  8. ^ «Обзор векторных плиток» . Картбокс. Архивировано из оригинала 18 марта 2015 г. Проверено 12 марта 2015 г.
  9. ^ «Спецификация векторной плитки Mapbox, принятая Esri» . Блог Mapbox . 17 марта 2015 г.
  10. ^ "Python: модуль TileStache.Goodies.VecTiles.mvt" . tilestache.org . Проверено 20 ноября 2015 г.
  11. ^ «Под капотом Google Maps 5.0 для Android — официальный блог Google для мобильных устройств» . googlemobile.blogspot.com.au . Проверено 24 августа 2014 г.
  12. ^ «Переработанный практический дизайн Google Maps: векторный, более персонализированный и скоро появится на мобильных устройствах» . engadget.com. 16 мая 2013 года . Проверено 24 августа 2014 г.
  13. ^ "mapbox/mapnik-vector-tile · GitHub" . github.com . Проверено 24 августа 2014 г.
  14. ^ «Векторные плитки для улиц MapBox | Mapbox» . MapBox.com . Проверено 24 августа 2014 г.
  15. ^ «HowToVectorTileData — osmand — В этой статье описывается, как использовать ключевые функции — Глобальный просмотр и навигация мобильных карт для оффлайн и онлайн-карт OSM — Хостинг проектов Google» . Проверено 24 августа 2014 г.
  16. ^ "TileStache.Vector".
  17. ^ "TileStache.Goodies.VecTiles.server" .
  18. ^ «Protobuf.skip нереализованные типы · Проблема № 15 · SpatialServer/Leaflet.MapboxVectorTile» . Гитхаб . Проверено 20 ноября 2015 г.
  19. ^ «PGRestAPI (он же пространственный сервер Chubbs)» . Гитхаб . 25 февраля 2015 г.
  20. ^ "pg_tileserv для PostGIS" .
  21. ^ «ArcGIS 10.4 уже здесь!». 18 февраля 2016 г.
  22. ^ «Что нового в ArcGIS Pro 1.2—ArcGIS Pro | Документация» .
  23. ^ "Лифлет.MapboxVectorTile". Гитхаб . 12 февраля 2015 г.
  24. ^ "Лифлет.VectorGrid". Гитхаб . 16 февраля 2017 г.
  25. ^ «Документация API». Картбокс.
  26. ^ «Документация Open Layers VectorTile» .