有一个点 WGS84(121.123456,31.123456) 通过Mercator投影到平面坐标
分别如下:
Level=01 ::428::209
Level=02 ::857::419
Level=03 ::1713::838
Level=04 ::3426::1675
现在的问题是如果知道 level=4,3426,1675有没有快速的办法知道
level=3(x3,y3)?
level=2(x2,y2)?
level=1(x1,y1)?
Level=0(x0,y0)?
其中有一个方法是:将Level=4,3426,1675这个点,转为为原始经纬度,然后在分别转,这个没有问题。
另外一个方法是根据当前点的坐标转换到其它比例尺下,比如:
x3 = x4/2 = 3426/2 = 1713;
x2 = x3/2 = 1713/2 = 856,通过公式计算应该是857,这里是+1?
我测试了一下,在其它比例尺下有时候是+1,有时候-1 问题是:什么时候该+1,什么时候该-1?
以下是不同级别下的坐标
Level=01 ::428::209
Level=02 ::857::419
Level=03 ::1713::838
Level=04 ::3426::1675
Level=05 ::6852::3350
Level=06 ::13704::6700
Level=07 ::27409::13401
Level=08 ::54818::26801
Level=09 ::109636::53602
Level=10 ::219271::107204
Level=11 ::438543::214408
Level=12 ::877086::428816
Level=13 ::1754171::857632
Level=14 ::3508343::1715265
Level=15 ::7016685::3430529
Level=16 ::14033370::6861058
Level=17 ::28066740::13722116
Level=18 ::56133481::27444233
Level=19 ::112266961::54888466
有关投影转换时参照这个来做的
http://www.cnblogs.com/beniao/archive/2010/04/18/1714544
穷人只有30分了!
------解决方案--------------------------------------------------------
方法一转回地理坐标(也就是经纬度坐标)是通过了三角函数运算的,如果直接除以等级数(方法二)得到的是平面上的拉伸,而经纬度的等级是曲面上的,其实表面上看是+1或者-1这个现象,是因为取整了,如果不是取整,并不是1的误差,而是不同的小数。个人见解