关于天地图的瓦片组织规则在这篇博客里面已经讲解得很清楚了
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的完整底图了。至于具体的拼接方法,别人也已经总结过很多,在这里就不赘述了。
这是本人的第一篇博客。不论是批评指正或者问题疑惑,都欢迎大家在下方留言。