WMTS : 주어진 줌 레벨에서 지리적 위치 (위도, 경도)를 타일 인덱스로 변환 하시겠습니까?


15

주어진 지리적 위치 (위도, 경도) 및 줌 레벨에 대한 WMTS 타일의 인덱스 (x, y)를 얻는 방법을 알고 싶었습니다.

예를 들어 (48.675, 2.7)에 POI가 있고 줌 10에 해당하는 오픈 스트리트 맵 타일을 가져오고 싶습니다.

수학을 할 수 있습니까? 웹 서비스가 필요합니까? 정확성 : 프로그래밍 방식으로해야합니다.



Bing Maps Tiling Scheme 의 유용한 MSDN 기사 도 좋은 입문서를 제공합니다. 이 기사와 OSM 기사 모두 Web Mercator 투영법을 가정하지만 다른 투영 좌표계의 원리는 동일합니다.
kes

답변:


22

OSM 위키 페이지는 완벽합니다 : http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon..2Flat._to_tile_numbers_2

다음은 빠른 참조를 위해 추출 된 답변 (의사 코드)입니다.

타일 ​​번호에 주어진 경도 / 위도 / 확대 :

n = 2 ^ zoom
xtile = n * ((lon_deg + 180) / 360)
ytile = n * (1 - (log(tan(lat_rad) + sec(lat_rad)) / π)) / 2

하는 것으로 log()이 의사 코드 (많은 프로그래밍 언어에서 일반적인 수학 구문에서 종종 "LN ()",하지만 종종 "로그 ()")의 자연 로그를 의미합니다.

경도 / 위도에 주어진 타일 번호 :

n = 2 ^ zoom
lon_deg = xtile / n * 360.0 - 180.0
lat_rad = arctan(sinh(π * (1 - 2 * ytile / n)))
lat_deg = lat_rad * 180.0 / π

2
잠깐, OSM 미끄러운 형식은 WMTS 타일 형식입니까?
스파이

5
위 의 링크여러 언어로 구현되어 있습니다! (현재 27)
Cyrille 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.