由地图经纬度获得地图瓦片编号
参考文章 http://blog.****.net/youngkingyj/article/details/23365849
已知经纬度(单位:度),求瓦片编号x,y:
z: [0-18] x,y: [0-]
在第z级别,x,y方向的瓦片个数均为:
http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Tile_servers 这里面有一些实现,经纬度得到瓦片编号等
https://www.cnblogs.com/jhlong/p/5394751.html 可以粗率算出瓦块大小,谷歌地图15级的时候瓦块长宽为1公里
http://blog.sina.com.cn/s/blog_969214bc0102vqds.html 里面有谷歌地图级别和瓦片长度代表的实际距离
级别 |
实际距离 |
像素 |
图上距离 |
图像分辨率 |
比例尺 |
空间分辨率 |
第2级 |
5000公里 |
70 |
2.47厘米 |
72dpi |
2亿 :1 |
71公里 |
第3级 |
2000公里 |
55 |
1.94厘米 |
72dpi |
1亿 :1 |
36公里 |
第4级 |
2000公里 |
115 |
4.06厘米 |
72dpi |
5千万 :1 |
17公里 |
第5级 |
1000公里 |
115 |
4.06厘米 |
72dpi |
2.5千万 :1 |
9公里 |
第6级 |
500公里 |
115 |
4.06厘米 |
72dpi |
1.2千万 :1 |
4公里 |
第7级 |
200公里 |
91 |
3.21厘米 |
72dpi |
6百万 :1 |
2公里 |
第8级 |
100公里 |
176 |
6.21厘米 |
72dpi |
160万 :1 |
568米 |
第9级 |
50公里 |
91 |
3.21厘米 |
72dpi |
155万 :1 |
549米 |
第10级 |
20公里 |
72 |
2.54厘米 |
72dpi |
80万 :1 |
278米 |
第11级 |
10公里 |
72 |
2.54厘米 |
72dpi |
40万 :1 |
139米 |
第12级 |
5公里 |
72 |
2.54厘米 |
72dpi |
20万 :1 |
69米 |
第13级 |
2公里 |
57 |
2.01厘米 |
72dpi |
10万 :1 |
35米 |
第14级 |
2公里 |
118 |
4.16厘米 |
72dpi |
5万 :1 |
17米 |
第15级 |
1公里 |
118 |
4.16厘米 |
72dpi |
2.5万 :1 |
8米 |
第16级 |
500米 |
118 |
4.16厘米 |
72dpi |
1.2万 :1 |
4米 |
第17级 |
200米 |
93 |
3.28厘米 |
72dpi |
2300 :1 |
2.15米 |
第18级 |
100米 |
93 |
3.28厘米 |
72dpi |
3000 : 1 |
1.07米 |
第19级 |
50米 |
93 |
3.28厘米 |
72dpi |
1500 : 1 |
0.54米 |
第20级 |
20米 |
74 |
2.61厘米 |
72dpi |
800 :1 |
0.27米 |
地图的地面分辨率与比例尺的关系 http://blog.****.net/zhushuaibing/article/details/40350247
(1)平面坐标系
Resolution,地面分辨率,类似Spatial
Resolution(空间分辨率),我们这里主要关注用象元(pixel size)表示的形式:一个像素(pixel)代表的地面尺寸(米)。以天地图为例,Level为1时,图片大小为256*256(4个Tile),那么赤道空间分辨率为:赤道周长/512。其他纬度的空间分辨率则为 纬度圈长度/512,极端的北极则为0。Level为2时,赤道的空间分辨率为 赤道周长/1024,其他纬度为 纬度圈长度除以1024。很明显,Ground
Resolution取决于两个参数,缩放级别Level和纬度latitude ,Level决定像素的多少,latitude决定地面距离的长短。
以LEVEL为1级的时候为前提,取屏幕分辨率为96DPI(像素/英寸)
地面分辨率:一像素代表地面的距离(米),单位为像素/米;
Resolution
= 实际距离/屏幕上的像素个数 = 实际距离(米)/512 (像素)
比例尺:屏幕上的距离代表的地面的距离,无单位,仅为一个数值
Scale
= 512(像素)/屏幕分辨率(像素/英寸) * 0.0254(米/英寸) /实际距离(米)
运算:天地图取屏幕分辨率为96(像素/英寸)
Resolution
* Scale = 1/96 * 0.0254 = 0.0254 /96
Scale
= 0.0254 / (96 * Resolution)
Scale
= 1 : (96 * Resolution / 0.0254)
(2)经纬度
经纬度跟平面的思路差不多,不过由于经纬度的表征距离的时候用的是度数,所以在换算的时候,需要把度数
换成米,其换算公司如下:
Scale = 1 : (96 * 2 * Math.PI
* 6378137 * resolution / 360 / 0.0254);