Płytki wektorowe
Kafelki wektorowe , wektory kafelkowe lub wektory to pakiety danych geograficznych, spakowane w predefiniowane „kafelki” w kształcie zbliżonym do kwadratu do przesyłania przez Internet. Jest to nowa metoda dostarczania stylizowanych map internetowych , łącząca pewne zalety wstępnie renderowanych kafelków map rastrowych z danymi map wektorowych . Podobnie jak w przypadku szeroko stosowanych rastrowych kafelkowych map internetowych , klient żąda danych mapowych w postaci zestawu „kafelków” odpowiadających kwadratowym obszarom terenu o określonej wielkości i lokalizacji. Jednak w przeciwieństwie do rastrowych kafelkowych map internetowych serwer zwraca dane map wektorowych, które zostały przycięte do granic każdego kafelka, zamiast wstępnie wyrenderowanego obrazu mapy.
Istnieje kilka głównych zalet tego hybrydowego podejścia. W porównaniu z mapą wektorową bez podziału na kafelki transfer danych jest mniejszy, ponieważ przesyłane muszą być tylko dane w bieżącej rzutni i przy bieżącym poziomie powiększenia. GIS można wykonać z wyprzedzeniem, ponieważ granice kafelków są wstępnie zdefiniowane . To z kolei oznacza, że kafelkowe dane wektorowe mogą być pakowane i dystrybuowane bez konieczności posiadania jakiegokolwiek dostępnego systemu GIS do obsługi danych.
W porównaniu z kafelkową mapą rastrową transfer danych jest również znacznie ograniczony, ponieważ dane wektorowe są zwykle znacznie mniejsze niż renderowana mapa bitowa. Ponadto stylizację można zastosować na późniejszym etapie procesu, a nawet w samej przeglądarce, co pozwala na znacznie większą elastyczność w sposobie prezentacji danych. Łatwo jest również zapewnić interaktywność z funkcjami mapy, ponieważ ich reprezentacja wektorowa już istnieje w kliencie. Kolejną korzyścią jest to, że wymagana jest mniejsza moc obliczeniowa scentralizowanego serwera, ponieważ rasteryzacja może być wykonywana bezpośrednio w kliencie. Zostało to opisane jako uczynienie „renderowania… problemem ostatniej mili, z szybkimi, wysokiej jakości procesorami graficznymi w kieszeni każdego”.
Historia
Istnieje długa historia stosowania schematów kafelków wektorowych w GIS. Bardzo wczesny GIS (około 1966 r.), Kanadyjski System Informacji Geograficznej (CGIS), wykorzystywał schemat przechowywania kafelków wektorowych, który umożliwiał komputerom o ograniczonych zasobach efektywny dostęp do danych map wektorowych i ich przetwarzanie. CGIS użył terminu „ramka” zamiast kafelków wektorowych.
W 1975 r. US Wildlife Service zainicjowało krajowy program mapowania i digitalizacji wszystkich terenów podmokłych w USA. W 1976 roku przyznali firmie Autometric kontrakt na opracowanie aplikacji, która umożliwiłaby digitalizację obrazów stereo za pomocą analitycznego plotera stereo. Później dodano obsługę digitalizacji 2D z pojedynczych zdjęć (inaczej resekcji pojedynczego zdjęcia) na stole do digitalizacji. Oprogramowanie nazwano WAMS (Wetlands Analytical Mapping System). Magazyn danych WAMS używał kafelkowej struktury wektorowej. Każdy kafelek nazywano „geojednostką”. Geojednostka odpowiadała jednej ze skal czworokątnych USGS, zazwyczaj 1:24000. Gdy dane zostały zdigitalizowane, zostały natychmiast zapisane w kafelkowym magazynie danych i ustrukturyzowane topologicznie. Linie przecinające granice geojednostek zostały automatycznie podzielone. System odniesienia za pomocą współrzędnych pamięci masowej (CRS) to WGS 72 szerokość/długość. WAMS jest szczegółowo opisany w „System mapowania analitycznego terenów podmokłych: WAMS” [Pywell i Niedźwiadek, 1980]
Opierając się na doświadczeniu operacyjnym zdobytym przy wdrażaniu i używaniu WAMS, a także z Map Overlay and Statistical System (MOSS), w 1986 roku Autometric wypuścił komercyjny GIS oparty na systemie UNIX, który zaimplementował ulepszoną kafelkową i indeksowaną strukturę przechowywania i dostępu: DeltaMap (później GenaMap ). Możliwości struktury kafelkowej i schemat indeksowania są opisane w „DeltaMap: Not just another GIS”. Tam, gdzie WAMS wdrożył stały system kafelków oparty na czworokątach szerokości/długości geograficznej 1:24000, DeltaMap umożliwił użytkownikowi zdefiniowanie kafelka o dowolnym rozmiarze w dowolnym systemie odniesienia za pomocą współrzędnych (CRS). W ten sposób rzadkie dane wymagały tylko kilku kafelków, podczas gdy gęste dane mogłyby wymagać znacznie mniejszych kafelków. R-drzewa zastosowano jako schemat indeksowania kafelków wektorowych. Ponadto, w przeciwieństwie do wcześniejszych implementacji kafelkowania, DeltaMap/GenaMap używał tego samego schematu kafelkowania i indeksowania dla dowolnego typu danych geoprzestrzennych, w tym danych wektorowych i obiektowych 2d i 2,5d, zdjęć satelitarnych, siatek 3D, takich jak DEM, oraz adnotacji. Pod koniec lat 80-tych firma Genasys dodatkowo udoskonaliła GenaMap, aby umożliwić „ciągłe, bezproblemowe” przetwarzanie kafelkowych warstw. Zasadniczo, z perspektywy użytkownika końcowego, kafelki stały się niewidoczne. Ta możliwość była prawdziwa niezależnie od tego, czy użytkownik edytował, wizualizował, wysyłał zapytania lub analizował dane.
Standardy i podejścia
Od początku 2015 roku nie ma dominującego standardu płytek wektorowych. Podejścia mogą różnić się formatem adresu URL, formatem serializacji danych, pakowaniem informacji o stylach i obsługą projekcji innych niż Web Mercator.
Bufory protokołów (Mapbox)
Mapbox zdefiniował otwarty standard kafelków map wektorowych o nazwie „vector-tile-spec”, który wykorzystuje bufory protokołu Google do wydajnej przestrzennie serializacji danych. Web Mercator jest projekcją odniesienia, ale kafelki wektorowe mogą być używane do reprezentowania danych z dowolnym schematem projekcji i zasięgu kafelków. Jest również powiązany z Mapnik , używając „serializowanej wersji danych wewnętrznych, których używa Mapnik”.
W marcu 2015 r. Esri , dominujący producent oprogramowania geoprzestrzennego, ogłosił, że będzie obsługiwał standard kafelków wektorowych Mapbox zarówno na platformach serwerowych, jak i klienckich.
Płytka wektora Mapnika
Był to wczesny format opracowany dla modułu renderującego Mapnik.
Inne formaty
Podejście zastosowane przez TileStache polega na umożliwieniu wielu formatów serializacji danych; od początku 2015 roku obsługuje GeoJSON, ArcJSON, GeoBSON, Arc GeoServices BSON, GeoAMF i Arc GeoServices BSON. Żądany format jest podany w adresie URL (np. http://example.com/tiles/mylayer/2/1/3.json
)
Wsparcie
Usługi i aplikacje
Kafelki wektorowe są używane przez klienta Google Maps na Androida od grudnia 2010 r., a w kliencie komputerowym od 2013 r. Kafelki wektorowe do renderowania danych OpenStreetMap zostały po raz pierwszy zaproponowane w marcu 2013 r. i są obsługiwane przez Mapnik, najczęściej używany mechanizm renderowania danych OpenStreetMap. Mapbox , komercyjny dostawca niestandardowych narzędzi kartograficznych i hostingu, skupił swoje narzędzie kartograficzne, Mapbox Studio, wokół kafelków wektorowych.
Popularny i bardzo wydajny klient Androida dla danych OpenStreetMap, osmAnd obsługuje kafelki wektorowe, które nazywa „mapami wektorowymi”.
Serwery
Potok serwera kafli TileStache obsługuje natywnie kilka odmian formatu JSON. Istnieje również dostawca płytek wektorowych wtyczek o nazwie VecTiles, który konwertuje PostGIS na kafelki wektorowe w formacie Mapnik Vector Tile (niekompatybilny ze specyfikacją Mapbox) lub TopoJSON .
PGRestAPI (znany również jako Chubbs Spatial Server) to samodzielny serwer NodeJS, który może również generować kafelki wektorowe w locie ze źródła danych PostGIS, a także obsługiwać wstępnie wygenerowane kafelki wektorowe ze źródeł takich jak Mapbox Studio.
pg_tileserv to serwer kafelków o otwartym kodzie źródłowym, obsługujący tylko PostGIS, napisany w Golang , który przyjmuje żądania kafelków HTTP i formularz oraz wykonuje SQL .
ESRI ArcGIS Server 10.4 i ArcGIS Pro 1.2 wydane w lutym 2016 dodały obsługę kafelków wektorowych.
Biblioteki klienckie
Biblioteka JavaScript Leaflet nie obsługuje bezpośrednio kafelków wektorowych, ale istnieją wtyczki innych firm do kafelków wektorowych, Leaflet.MapboxVectorTile dla Leaflet 0.7.x i Leaflet.VectorGrid dla Leaflet 1.0.x.
Można użyć własnej biblioteki JavaScript Mapbox, Mapbox GL JS.
OpenLayers obsługuje kafelki wektorowe za pośrednictwem obiektu ol.source.VectorTile od wersji 3.