關於天地圖的瓦片組織規則在這篇博客里面已經講解得很清楚了
https://www.cnblogs.com/The-SEA/p/4364074.html
https://www.cnblogs.com/liweis/p/9752634.html
天地圖的底圖是原點在左上角,滿足長寬比1:2的矩形地圖。而OSM(Open Street Map)等地圖則是正方形。百度地圖的原點位於整幅地圖的正中間。
這里主要使用了這篇博客 https://blog.csdn.net/u013323965/article/details/53154046 里的Java代碼下載天地圖瓦片。
我記錄一下自己在天地圖瓦片的下載和拼接過程遇到的問題。
一、天地圖的URL
網絡上大多數的博客都提到了,天地圖的URL的形式是:http://t0.tianditu.com/DataServer?T=vec_c&x=0&y=0&l=1
其中每個URL包含四個參數,分別是:
T=vec_c ; x = ? ; y = ? ; l = ?;
T代表底圖類型,x代表瓦片的列號(起始位0),y代表瓦片的行號(起始位0),l代表底圖的級別(起始位1,最大為20)。
參考官網的文檔,我們可以根據自己的需要,對URL中的地圖類型進行替換。
但在實際操作過程中發現,僅僅這樣一個URL還不夠完整。根據天地圖2019年新規,在實際應用時應當獲得其開發授權,所以所有的URL請求也會對權限有所要求。從下面這張圖,我們可以清晰地看到,在天地圖更新各個Level的瓦片時,請求URL的格式如:
http://t0.tianditu.com/DataServer?T=img_c&x=0&y=0&l=1&tk=密鑰
很明顯tk=2ce94f67e58faa24beb7cb8a09780552這個密鑰是可用的,所以我們只需要在Java源代碼中使用這個帶密鑰的URL就可以實現下載了。當然,如果要在自己的工程中調用天地圖API,大家還是需要去天地圖官網注冊並申請成為開發者的。
二、拼接天地圖瓦片
最后就是將下載好的天地圖瓦片拼接起來,我們就能得到各個Level的完整底圖了。至於具體的拼接方法,別人也已經總結過很多,在這里就不贅述了。
這是本人的第一篇博客。不論是批評指正或者問題疑惑,都歡迎大家在下方留言。