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