WMTS: แปลงตำแหน่งทางภูมิศาสตร์ (lat, long) เป็นดัชนีย่อยที่ระดับการซูมที่กำหนดหรือไม่


15

ฉันต้องการทราบวิธีรับดัชนี (x, y) ของไทล์ WMTS สำหรับตำแหน่งทางภูมิศาสตร์ (ละติจูด, ลองจิจูด) และระดับการซูมที่กำหนด

สำหรับตัวอย่างฉันมีจุดที่น่าสนใจอยู่ที่ (48.675, 2.7) ฉันต้องการได้รับไทล์แผนที่เปิดถนนที่สอดคล้องกันสำหรับการซูม 10

ฉันสามารถทำคณิตศาสตร์ได้ไหม? ฉันต้องการบริการเว็บหรือไม่? ความแม่นยำ: ฉันต้องทำสิ่งนี้โดยทางโปรแกรม



บทความ MSDN ที่มีประโยชน์ในโครงการเรียงแผนที่ Bing Mapsยังให้ข้อมูลเบื้องต้นที่ดี ทั้งบทความนี้และบทความ 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 ()" ในไวยากรณ์คณิตศาสตร์ทั่วไป แต่มักจะ "log ()" ในภาษาการเขียนโปรแกรมจำนวนมาก)

กำหนดหมายเลขไทล์เป็นลองจิจูด / ละติจูด:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.