`
jacky-zhang
  • 浏览: 315895 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

(转)google地图纠偏

 
阅读更多
由于受到国家一些法律法规限制,所有的电子地图服务提供商都需要给地图数据加上偏移和加密,因此广受大家关注的google地图也不例外。但是作为一些用惯了免费服务的网友们,始终对google MAP上的标注偏移很头疼,我收集了一些资料,今天在这里和大家一起分享。

所谓的地图数据加密偏移,其实就是用一个偏移算法对地图的经纬度做一个加减偏移量,从而达到与实际地图不一致。这个偏移算法本身是没有什么规律可言的,每 家地图服务商都有一套自己的加密偏移算法,既然算法上没有什么规律可言,但是对于算法中生成的偏移量是否有规律呢?这个是可以肯定的,但是偏移算法中生成 的偏移量是有规律而言的。偏移量的规律很难得到,要是能拿到这个偏移量,就可以说是破解了某一个地图服务商的地图加密。

那我们怎么解决这个偏差呢!我在网上找到了一个强人破解google map偏移的方法

毕竟做地图开发的都存在卫星图和地图的切换,谁不想让切换以后的地图对上呢!后来我发现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,-270,1193为x方向上精度的偏移像素,-270为y方向上维度偏移像素

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

google的地图采用将地球圆表面投影成平面的方式进行贴图

假设zoom=15;

横坐标从左至右像素为0-256*2的15次幂,也就是每增加一级,地图大小横纵坐标加倍,256为一个标准图片的大小

显示-180度到+180的范围,经度越大x越大

纵坐标从上到下像素为0-256*2的15次幂,显示+85到-85度的范围,纬度越小y越大

我们先看一下经度的转换

经度的转换,我就不多说了,均匀分布,大家简单的看一下下面的公式就明白了

经度到像素X值

public static double lngToPixel(double lng, int zoom) {

return (lng + 180) * (256L << zoom) / 360;

}

像素X到经度

public static double pixelToLng(double pixelX, int zoom) {

return pixelX * 360 / (256L << zoom) – 180;

}

纬度到像素Y

public static double latToPixel(double lat, int zoom) {

double siny = Math.sin(lat * Math.PI / 180);

double y = Math.log((1 + siny) / (1 – siny));

return (128 << zoom) * (1 – y / (2 * Math.PI));

}

像素Y到纬度

public static double pixelToLat(double pixelY, int zoom) {

double y = 2 * Math.PI * (1 – pixelY / (128 << zoom));

double z = Math.pow(Math.E, y);

double siny = (z – 1) / (z + 1);

return Math.asin(siny) * 180 / Math.PI;

}

维度的这个转换,单纯去理解不是很好理解,我也没有太深入的了解,从公式来 看,采用了一种非线性变化,也就是靠近赤道的地方单位像素表现的纬度间距大,越靠近两极越小,可能是因为 经度在靠近两极的方向均匀变化,导致纬度也要进行拉伸,否则  靠近两极的地方,地理形状就该发生变化了,总之上面的转换公式大家还是可以研究一下 的,google维度的表示范围是-85到+85,这个可以求出来!

上面得到的像素XY是像素的坐标,并非是google地图取地图的那个XY那个XY是把像素所标除以256得到的商,也就是每张图片的大小

原文地址http://www.lbsgps.org/?p=332
分享到:
评论

相关推荐

    js版地图纠偏

    在实际应用中,开发者可能需要根据不同的地图平台调整算法,因为不同的平台可能使用不同的坐标系统,如谷歌地图使用的是WGS84,而百度和高德则使用GCJ-02。因此,js版地图纠偏库往往需要具备兼容性,能适应各种坐标...

    google地图gps纠偏数据,gps纠偏解决方法

    在本主题中,我们将深入探讨“google地图GPS纠偏数据”以及如何解决GPS纠偏问题。 GPS(全球定位系统)依赖于一组分布在地球轨道上的卫星来确定设备的位置。然而,由于多种因素,如信号反射、多路径效应、大气折射...

    Cesium 常用地图纠偏 百度、高德、Arcgis、腾讯地图纠偏

    Cesium 常用地图纠偏 百度、高德、Arcgis、腾讯地图纠偏 资源预览:http://dongnan185.com:8083/videos/jiupian.mp4 启动:npm i npm run serve

    谷歌地图纠偏

    安卓手机应用,谷歌地图纠偏,需要在xposed框架运行

    Google地图纠偏参数表.txt

    ### Google地图纠偏参数表解析 #### 一、概述 在地理信息系统(GIS)领域,地图纠偏是一项重要的技术手段,用于解决不同地图服务提供商之间的坐标系统差异问题。特别是当涉及到国内地图服务时,由于政策原因,百度...

    google地图gps纠偏数据库

    谷歌地图专用纠偏数据库 精度为0.01:经纬度每变化0.01,取一次偏移值,共980万条,access文件约600mb,误差5~10米。 精度为0.001:经纬度每变化0.001,取一次偏移值,共9亿条,csv文件共20gb,误差约2米 百度...

    谷歌腾讯百度地图纠偏数据库PART2

    谷歌/腾讯/百度地图纠偏数据库,精确到0.01度,中国陆地地区,SQL SERVER 2005备份文件,由于受允许上传的文件大小限制,只能传60M以内的,故拆分成2个文件,这是part2,使用方法参见:...

    谷歌地图坐标纠偏算法javascript版.docx

    谷歌地图坐标纠偏算法javascript版 从文件的标题、描述、标签和部分内容可以看出,这是一个关于GPS坐标纠偏算法的javascript实现,特别是用于Google Map和高德地图的坐标转换。 坐标纠偏算法的必要性 在GPS定位...

    googlemap谷歌地图gps纠偏数据库免费下载

    googlemap谷歌地图gps纠偏数据库免费下载 纠偏数据库(google地图) 精度为0.01:经纬度每变化0.01,取一次偏移值,共980万条,access文件约600mb,误差5~10米。 精度为0.001:经纬度每变化0.001,取一次偏移值,共9...

    0.1的gps地图纠偏偏移数据库

    在IT行业中,GPS(全球定位系统)地图纠偏是一个重要的技术领域,特别是在地理信息系统(GIS)和导航软件中。本文将深入探讨标题“0.1的GPS地图纠偏偏移数据库”所涉及的知识点,以及如何利用这样的数据进行地图纠偏...

    Gps谷歌地图纠偏插件

    为了解决GPS地图偏移的问题,我就开发了一个纠偏的动态库给开发者来使用,直接在.NET的工程项目中调用该转换方法即可,绝对好用,在谷歌和百度地图上,车辆行驶的轨迹和地图的道路是严丝合缝的吻合的. 具体使用办法 ...

    地图纠偏数据

    "中国境类GPS转Google纠偏数据"是指针对中国地区的GPS坐标进行转换,以匹配Google地图的坐标系统。Google地图采用的是WGS84坐标系统,而中国境内通常使用的是GCJ-02(国家大地坐标系2000)或BD-09(百度坐标系)坐标...

    谷歌百度地图纠偏数据库

    谷歌/腾讯/百度地图纠偏数据库,精确到0.01度,中国陆地地区,SQL SERVER 2005备份文件,由于受允许上传的文件大小限制,只能传60M以内的,故拆分成2个文件,这是part1,使用方法参见:...

    python3 GPS数据纠偏类(适用谷歌、高德、百度地图纠偏)

    本主题主要探讨的是如何在Python3环境下利用自定义类来实现GPS数据的纠偏功能,适用于谷歌、高德和百度地图。 首先,我们来看`GpsConvert.py`这个文件。这个文件中应该包含了Python3的类,用于实现GPS数据的纠偏...

    高德系地图纠偏适用于谷歌地图,soso地图,mapabc地图

    高德系网络地图纠偏access数据库,可以导入其他数据库中使用,字段前面2个是经纬度范围,中间2个是偏移像素每级缩放除以2,最后2个是偏移经纬度,提供的格式是度,需要度分的自己转,适用于googlemap,mapabc,腾讯...

    C#实现谷歌瓦片地图纠偏程序

    对谷歌瓦片地图进行纠偏,config里的配置参数一般来说是正数,如果不是合肥市地区,请修改参数,如果参数是负的,可能需要修改源码,没有考虑负数情况。处理速度I5-7200U是350张瓦片图每秒,100万张大约需要50分钟...

    谷歌地图加偏纠偏工具

    而“谷歌地图加偏纠偏工具”就是针对这类需求而设计的一款实用工具,它能够帮助用户处理经纬度坐标数据,使其更准确地对应到实际地理位置。 首先,我们需要理解“谷歌地图加偏纠偏”的概念。在地理信息系统(GIS)...

    百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现

    主要实现百度、高德、谷歌、火星、wgs84(2000)地图坐标相互转换纠偏的JS实现

    google离线瓦片纠偏

    google离线瓦片纠偏,采用python2.7 版本,PIL库进行处理,支持多线程处理。原理根据火星坐标与wgs坐标转换关系,找出偏移量,计算出对应瓦片编号下正确的图片位置,拼接相邻4个瓦片剪切出来保存。

    GoogleMap谷歌地图 GPS纠偏数据下载器

    GoogleMap 谷歌地图 GPS纠偏数据下载器 0.1精度 所谓0.1精度,就是每隔0.1度提供一个修正值,详情请参见我的博客: http://blog.csdn.net/hushoubo/article/details/7708804

Global site tag (gtag.js) - Google Analytics