벡터 타일
Vector tiles벡터 타일, 타일 벡터 또는 벡타일은[1] 지리적 데이터의 패킷으로, 웹을 통해 전송하기 위해 미리 정의된 대략 제곱 모양의 "타일"로 패키징된다.이것은 미리 렌더링된 래스터 맵 타일의 특정 이점을 벡터 맵 데이터와 결합하여 스타일링된 웹 맵을 전달하기 위한 새로운 방법이다.널리 사용되는 래스터 타일 웹 맵과 마찬가지로 지도 데이터는 사전에 정의된 크기와 위치의 평방 면적에 해당하는 "타일"의 집합으로서 클라이언트에 의해 요청된다.그러나 래스터 타일 웹 맵과는 달리 서버는 미리 렌더링된 맵 이미지 대신 각 타일의 경계까지 잘려나간 벡터 맵 데이터를 반환한다.
이 혼합형 접근법에는 몇 가지 주요 장점이 있다.타일이 없는 벡터 맵에 비해 현재 뷰포트 내의 데이터와 현재 줌 레벨의 데이터만 전송하면 되기 때문에 데이터 전송이 줄어든다.[2]타일 경계가 미리 정해져 있기 때문에 GIS 클리핑 작업은 모두 사전에 수행할 수 있다.이는 결국 타일 벡터 데이터를 패키징하고 배포할 수 있다는 것을 의미하며, 데이터를 제공하기 위해 사용할 수 있는 어떤 종류의 GIS 시스템도 필요하지 않다.
일반적으로 벡터 데이터가 렌더링 비트맵보다 훨씬 작기 때문에 타일 래스터 맵에 비해 데이터 전송도 크게 줄어든다.또한 스타일링은 프로세스 후반부 또는 브라우저 자체에서도 적용이 가능하여 데이터가 표시되는 방식에 있어 훨씬 더 큰 유연성을 제공할 수 있다.또한 지도 피쳐와의 상호작용이 클라이언트 내에 이미 존재하기 때문에 쉽게 제공할 수 있다.[2]그러나 래스터라이제이션은 클라이언트에서 직접 수행될 수 있기 때문에 덜 중앙집중화된 서버 처리 능력이 요구된다는 점도 장점이다.이것은 "렌더링 ... 모두의 주머니 속에 빠르고 고품질 GPU[s]가 들어 있는 마지막 마일 문제"로 묘사되어 왔다.[3]
역사
매우 초기 GIS(Circa 1966)인 캐나다지리정보시스템(CGIS)은 한정된 자원 컴퓨터가 벡터 지도 데이터를 효율적으로 접근하고 처리할 수 있도록 하는 벡터 타일 저장 체계를 사용했다.[4]CGIS는 벡터 타일 대신 "프레임"이라는 용어를 사용했다.
1975년, 미국 야생동물국은 미국의 모든 습지를 지도화하고 디지털화하기 위한 국가 프로그램을 시작했다.1976년에 그들은 분석 스테레오 플로터를 사용하여 스테레오 이미지를 디지털화할 수 있는 소프트웨어 응용 프로그램을 개발하기 위해 오토메트릭에 계약을 맺었다.나중에 디지털화 테이블에 있는 단일 사진(일명 단일 사진 절제술)에서 2d 디지털화를 위한 지원이 추가되었다.이 소프트웨어는 WAMS(Wetlands Analytical Mapping System)라고 불렸다.WAMS 데이터 저장소는 타일 벡터 구조를 사용했다.각각의 기와는 "게우니트"라고 불렸다.Geunit은 USGS 쿼드랑글 눈금 중 하나, 일반적으로 1:24000에 해당한다.데이터가 디지털화됨에 따라 즉시 타일 데이터 저장소에 저장되고 지형적으로 구조화되었다.지구닛 경계를 넘는 선들은 자동으로 분리되었다.저장 좌표 참조 시스템(CRS)은 WGS 72 lat/long이었다.WAMS는 "습지 분석 지도 시스템: WAMS"에 자세히 설명되어 있다[Pywell and Nedzwiadek, 1980년].
1986년 지도 오버레이 및 통계 시스템(MOSS)에서뿐만 아니라 WAMS를 구현하고 사용하면서 얻은 운영 경험을 바탕으로 Autometric은 강화된 타일 및 인덱스 저장 및 액세스 구조를 구현한 UNIX 기반 상용 GIS를 출시했다.[5]델타맵(Later GenaMap).타일 구조 기능과 인덱싱 체계는 "DeltaMap: 다른 GIS뿐만 아니라"에 설명되어 있다.[6]WAMS가 위도/경도 1:24000 쿼드랭글에 기반한 고정 타일 시스템을 구현한 경우, 델타맵은 사용자가 모든 좌표 참조 시스템(CRS)에서 모든 크기의 타일을 정의할 수 있도록 허용했다.이런 방식으로, 희소성 데이터는 몇 개의 타일만 필요했지만, 밀집된 데이터는 훨씬 더 작은 타일을 사용할 수 있었다.R-트리는 벡터 타일의 색인화 방법으로 사용되었다.또한 이전의 타일링 구현과는 달리, 델타맵/제나맵은 2d 및 2.5d 벡터 및 피쳐 데이터, 위성 이미지, DEM과 같은 3D 그리드 및 주석을 포함한 모든 지리공간 데이터 유형에 대해 동일한 타일링 및 인덱싱 체계를 사용했다.1980년대 후반 Genasys는 타일 레이어의 "연속적이고 매끄러운" 처리를 위해 GenaMap을 더욱 강화했다.기본적으로 최종 사용자의 관점에서 타일은 보이지 않게 되었다.이 기능은 사용자가 데이터를 편집, 시각화, 쿼리 또는 분석하는지에 상관없이 사실이었다.
표준 및 접근 방식
2015년 초 현재 벡터 타일에는 지배적인 기준이 없다.접근방식은 URL 형식, 데이터 일련화 형식, 스타일링 정보의 포장 및 Web Mercator 이외의 투영에 대한 지원이 다를 수 있다.
프로토콜 버퍼(Mapbox)
맵박스는 공간 효율적인 데이터 직렬화를 위해 구글 프로토콜 버퍼(buffer)를 사용하는 벡터 맵 타일(vector-tile-spec)에 대한 개방형 표준을 정의했다.Web Mercator는 참조의 투영이지만, 벡터 타일을 사용하여 투영 및 타일 범위 구성으로 데이터를 나타낼 수 있다.[7]또한 "맵닉이 사용하는 내부 데이터의 직렬화된 버전"[8]을 사용하여 맵닉 렌더링 엔진과 연결된다.
2015년 3월, 지배적인 지리공간 소프트웨어 제조업체인 Esri는 서버 플랫폼과 클라이언트 플랫폼 모두에서 Mapbox의 벡터 타일 표준을 지원한다고 발표했다.[9]
맵니크 벡터 타일
이것은 Mapnik 렌더러1을 위해 개발된 초기 형식이었다.[10]
다른 형식
TailStache에 따른 접근방식은 다중 데이터 직렬화 형식을 허용하는 것이다. 2015년 초 현재 GeoJSON, ArcJSON, GeoBSON, Arc GeoServices BSON, GeoAMF, Arc GeoServices BSON을 지원한다.요청한 형식은 URL(예:http://example.com/tiles/mylayer/2/1/3.json
)
지원
서비스 및 애플리케이션
벡터 타일은 2010년[11] 12월부터 구글 맵스 안드로이드 클라이언트에서, 2013년부터 데스크톱 클라이언트에서 사용되고 있다.[12]OpenStreetMap 데이터 렌더링을 위한 벡터 타일은 2013년[1] 3월에 처음 제안되었으며, 가장 널리 사용되는 OpenStreetMap 데이터의 렌더러인 [13]Mapnik의 지원을 받고 있다.맞춤형 지도 제작 도구와 호스팅을 제공하는 상업적 공급업체인 맵박스는 지도 제작 도구인 맵박스 스튜디오를 벡터 타일 주위에 집중시켰다.[14]
인기 있고 매우 강력한 안드로이드 클라이언트인 osmAnd는 벡터 맵이라고 불리는 벡터 타일을 지원한다.[15]
서버
타일 서버 파이프라인 TailStache는 JSON의 몇 가지 맛을 기본적으로 지원한다.[16]Post를 변환하는 VecTiles라는[17] 플러그인 벡터 타일 제공자도 있다.Mapnik 벡터 타일 형식의 벡터 타일(Mapbox[18] 사양과 호환되지 않음) 또는 TopoJSON으로 GIS 데이터를 변환한다.
PGRestAPI(Chubbs Spatial Server라고도 함)는 독립 실행형 노드포스트에서 즉시 벡터 타일을 생성할 수 있는 JS 서버GIS 데이터 소스 및 Mapbox Studio와 같은 소스에서 사전 생성된 벡터 타일 제공.[19]
pg_tileserv는 오픈 소스 Post이다.골랑에서 작성된 GIS 전용 타일 서버로서 HTTP 타일 요청을 받아 SQL을 작성·실행한다.
2016년 2월 출시된 ESRI ArcGIS Server 10.4와[21] ArcGIS Pro 1.2에는[22] 벡터 타일 지원이 추가됐다.
클라이언트 라이브러리
리플릿 자바스크립트 라이브러리는 벡터 타일을 직접 지원하지 않지만, 벡터 타일, 리플릿을 위한 타사 플러그인이 있다.리플릿[23] 0.7.x 및 리플릿용 맵박스벡터티일.VectorGrid for Releft 1.0.x.[24]
맵박스만의 자바스크립트 라이브러리인 맵박스 GL JS를 사용할 수 있다.[25]
OpenLayers는 올 소스를 통해 벡터 타일을 지원한다.버전 [26]3의 VectorTile 객체.
외부 링크
참조
- ^ a b "the liberty of postgreslessness: tiled vectors in mapnik (tecznotes)". mike.teczno.com. Retrieved 2014-08-24.
- ^ a b "About Tiled Vectors". research.microsoft.com. Retrieved 2014-08-24.
- ^ Migurski, Michal (2013-04-01). "Geomeetup Slides 2013-04" (PDF).
- ^ "Introductory Readings In Geographic Information Systems". CRC Press. Retrieved 2016-04-26.
- ^ 모스: 역사적 관점 https://www.scribd.com/document/4606038/2004-Article-by-Carl-Reed-MOSS-A-Historical-perspective
- ^ Reed C N (1986) DELTAMAP: 단순히 또 다른 새로운 GIS- 제3회 국제 공간정보 취급 심포지엄의 진행은 아니다.Williamsville NY, 375-83페이지의 지리 데이터 감지 및 처리 위원회
- ^ "vector-tile-spec/2.1 at master · mapbox/vector-tile-spec · GitHub". github.com. Retrieved 2016-05-24.
- ^ "Vector Tiles Overview". Mapbox.
- ^ "Mapbox Vector Tile Specification adopted by Esri". Mapbox blog. 2015-03-17.
- ^ "Python: module TileStache.Goodies.VecTiles.mvt". tilestache.org. Retrieved 2015-11-20.
- ^ "Under the hood of Google Maps 5.0 for Android - Official Google Mobile Blog". googlemobile.blogspot.com.au. Retrieved 2014-08-24.
- ^ "Redesigned Google Maps hands-on: vector-based, more personal and coming soon to mobile". engadget.com. Retrieved 2014-08-24.
- ^ "mapbox/mapnik-vector-tile · GitHub". github.com. Retrieved 2014-08-24.
- ^ "Vector Tiles for MapBox Streets Mapbox". mapbox.com. Retrieved 2014-08-24.
- ^ "HowToVectorTileData - osmand - This article describes how to use key features - Global Mobile Map Viewing & Navigation for Offline and Online OSM Maps - Google Project Hosting". Retrieved 2014-08-24.
- ^ "TileStache.Vector".
- ^ "TileStache.Goodies.VecTiles.server".
- ^ "Protobuf.skip unimplemented types · Issue #15 · SpatialServer/Leaflet.MapboxVectorTile". GitHub. Retrieved 2015-11-20.
- ^ "PGRestAPI (aka Chubbs Spatial Server)". 2015-02-25.
- ^ "pg_tileserv for PostGIS".
- ^ "ArcGIS 10.4 is here!". 18 February 2016.
- ^ "What's new in ArcGIS Pro 1.2—ArcGIS Pro Documentation".
- ^ "Leaflet.MapboxVectorTile". GitHub. 2015-02-12.
- ^ "Leaflet.VectorGrid". GitHub. 2017-02-16.
- ^ "API Documentation". Mapbox.
- ^ "Open Layers 3 documentation".