转自(http://blog.163.com/mark-_-chen/blog/static/10820522620103910405771/

中国地图和卫星图都存则偏移量,这个是由中国规划局,确定的,一个偏移算法,实际上是没有什么特殊规律的,他的生成算法是有规律,不过这个规律你我都很难拿到,那我们怎么解决这个偏差呢,毕竟做地图开发的都存在卫星图和地图的切换,谁不想让切换以后的地图对上呢!
后来我发现google的地图服务,ditu.gogle开始的都没有偏差,maps.google开头的服务就有偏差,我就开始查找google的取偏移量算法,事前我还是图破解google手机版本的数据,没有成功,估计是使用了自己的压缩或加密算法,最后也没有找到规律,后来才尝试破解web版本的
不过web版本的接口我对于js不是特别熟悉,所以本次破解放弃了分析源代码的步骤,而是直接采用排除法
那就是把地图部分访问的全部地址,一个接一个封杀掉,查找那个气偏移做用的网址
http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=39.111195,117.148067
最后找到了就是这个,记住每次测试用清理浏览器缓存哦,使用fixfox的fildder和adblock就够了 然后就是
分析每次返回内容的规律,黄天不负有心人啊,我总算是搞定了,下面是我整理的接口

Google 中国地图偏移接口

1.      接口地址http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=39.111195,117.148067

(注:.cn和.com都可以,我用国内服务器就会选择.cn用美国服务器就会选择.com)

2.      返回内容中的有效部分:

3. (39.111195, 117.148067, 18, [9, -2, 18, -4, 37, -8, 74, -16, 149, -33, 298, -67, 596, -135, 1193, -270])

4.      Spn参数暂时未知实际意义,但是需要上发spn参数,任意两个小数用逗号分开

Vp参数纬经度值,用逗号分隔,z参数为地图缩放级别,无实际意义

5.      取回的部分中有效数字为[9, -2, 18, -4, 37, -8, 74, -16, 149, -33, 298, -67, 596, -134, 1192,
-268]
这个数组总共有8组数字,每两个为一组,分为别从11级到18级的地图和卫星图的偏移像素数量,我们前一组数字精确的等于后一组数字除二,我们为了得到最精确的偏移,故选择第18级的偏移量1193-2701193x方向上精度的偏移像素,-270y方向上维度偏移像素

6.      经纬度的偏移转换我们需要江经纬度39.111195117.148067转化为18级像素值25620917 55392414,然后分别加上偏移量-270,1193,然后再转化为经纬度39.11231854918217 117.15446412563324,即位偏移后的经纬度

数据经度
每0.01个经纬度一个偏移量

总共数据量(9557005)条

数据格式CSV文件
每一个经度一个文件

从73-134总共62个文件
总大小480MB

数据介绍
依次为  经度  纬度  此位置偏移像素X,Y放心(google地图的第18级偏移量,没向上一级除2)

此位置经纬度偏移
保留6位小数  定位用足够了


 

转(Google 全国 地图 纠偏数据 偏移数据 火星坐标修正 方案 )转(Google 全国 地图 纠偏数据 偏移数据 火星坐标修正 方案 )转(Google 全国 地图 纠偏数据 偏移数据 火星坐标修正 方案 )


 



 

用此方法全国可以定位精确到5米内,大城市基本无偏移

相关文章:

  • 2021-09-25
  • 2021-12-15
  • 2021-07-03
  • 2021-12-02
  • 2021-07-29
  • 2022-12-23
  • 2021-06-28
  • 2021-09-06
猜你喜欢
  • 2021-06-15
  • 2022-01-01
  • 2021-12-04
  • 2021-10-31
  • 2021-08-25
  • 2021-06-25
  • 2021-09-05
相关资源
相似解决方案