民用地图经纬度纠偏-高德系地图纠偏

2023-10-24 15:40

本文主要是介绍民用地图经纬度纠偏-高德系地图纠偏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

民用地图经纬度纠偏-高德系地图纠偏

发表于:2012年06月20日  13:51 0

Autonavi,高德系地图(google地图、mapabc地图、腾讯的soso地图等,在地图下方有?autonavi.?mapabc 版权信息的)

 

高德为互联网/移动互联网用户和网站提供互联网地图(Mapabc.com)服务、地图API服务及基础地图服务。目前,MapABC地图网站已经成为中 国知名的地图网站及地图API的窗口。高德同时还为谷歌、腾讯、新浪、阿里巴巴、微软必应、京东商城等著名互联网网站提供基础地图服务支撑。而通过高德提供的地图API服务,已经有包括人人、搜房、赶集、拉手等3万多家互联网网站/移动互联网应用开发者构建起了自己的地图服务解决方案。

 

上面一段是高德网站原文复制,但绝不是为了打广告。。。。。只是提示有哪些地图是使用了高德的基础地图服务。

 

根据中国的相关法规,在国内发行的民用地图产品不允许使用真实坐标,必须加入一定偏移(出于国家安全考虑)。由于是相对偏移,并不会影响用户的使用。这种偏移是通过测绘部门的国家保密插件来实现的。

国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为地加偏处理,按照几行代码的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况有所不同。

所有电子地图所有导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“保密坐标“,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有GPS公司,只要需要汽车导航的,需要用到导航电子地图的,统统需要在软件中加入国家保密算法,将Com口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作。

目前中国的几家互联网地图公司(百度地图、搜狗地图、谷歌地图、Mapbar等)也模仿国家加密的做法,在国家加密的基础上又加入了自己的加密量,目的是防止竞争对手抓取、分析自家的数据。

地图的偏移算法通常有几种:一种是线性偏移,这种偏移算法容易被破解,使用不多;另一种非线性,在不同的区域,偏移的值和方向各有不通(如偏移字典)。因此破解地图偏移最常见的一种做法是:同名点计算。即知道不同地图上相同点的坐标,再计算这些点坐标之间的差值。这种方法就依赖于同名点数量和分布程度。

 

上面都是废话,下面给出一网上有一强人破解了地图偏移的方法:

Google 中国地图偏移接口

接口地址:http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=39.111195,117.148067(注:.cn和.com都可以,我用国内服务器就会选择.cn用美国服务器就会选择.com)

返回内容中的有效部分 (39.111195, 117.148067, 18, [9, -2, 18, -4, 37, -8, 74, -16, 149, -33, 298, -67, 596, -135, 1193, -270]),Spn参数暂时未知实际意义,但是需要上发spn参数,任意两个小数用逗号分开Vp参数纬经度值,用逗号分隔,z参数为地图缩放级别,无实际意义

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

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

(精度指的是当时偏移数据的间隔,而不是每条数据的精度,0.01版本可以达到18级5个像素以内的纠偏精度)

以上方法经过本人测试,得到的经纬度和GPS仪器的位置完全吻合。不进行纠偏操作,误差范围大概有300-500米。

低精度版本: (0.1 精度) 适合个人开发(可以免费提供)

高精度版本: (0.01 精度) 适合商业应用(5米之内,有贴子说精度在1米,有点夸张了,再说GPS技术也有误差(10米))。

还有说是有纠偏算法的,既然在每个经纬度点的偏移量都不同,而且偏移量的变化也没什么规律,对于这种偏移算法的,我只能心底感慨一下了。

 

0.01精度的有近1000W条数据。截图为证:

民用地图经纬度纠偏-高德系地图纠偏

 

民用地图经纬度纠偏-高德系地图纠偏

列abcd依次为:LNG*100 LAT* 100 OFFSET_X OFFSET_Y

 

大家可能疑问,为什么要*100,为什么不直接把偏移经纬度算出来,而是存上偏移像素。我只好告诉大家,112.00是double类型(8字节)。而11200我可以只存int型(4字节)。同理偏移像素都是.0000级别的double了。按照存储算字节数,我想这种存法应该可以节省数据库大小,没准查询速度还快一些。。。。。存储成字符的,实在不推荐。所以说,有时候做的多未必好,呵呵


转自:http://qing.weibo.com/tj/5f84cd6e33001ntr.html

这篇关于民用地图经纬度纠偏-高德系地图纠偏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/276180

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

MMO地图传送

本篇由以下四个点讲解: 创建传送点 传送点配置 编辑器扩展:传送点数据生成 传送协议与实现 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置(这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本,让传送门在编辑器下面还能绘制出来

mysql5.6根据经纬度查询距离二

在MySQL 5.6中,您可以使用Haversine公式来根据经纬度查询距离。以下是一个示例SQL查询,它计算出所有点与给定点(经度lon和纬度lat)的距离,并按距离排序: SELECT id, (2 * 6378.137 * ASIN(SQRT(POW( SIN( PI( ) * ( $lng- `long` ) / 360 ), 2 ) + COS( PI( ) * $lat / 180

【go语言计算两个经纬度距离】根据经纬度计算两点之间距离

一、需求分析: 输入两个经纬度,计算它们之间的距离 lat1,lng1 := 32.060255,118.796877lat2,lng2 := 39.904211,116.407395 二、计算公式 //C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)

ArcGIS Pro SDK (十三)地图创作 3 特殊图层

ArcGIS Pro SDK (十三)地图创作 3 特殊图层 文章目录 ArcGIS Pro SDK (十三)地图创作 3 特殊图层1 高程表面图层1.1 创建具有地表图层的场景1.2 创建新的高程表面1.3 将自定义高程表面设置为 Z 感知图层1.4 将高程源添加到现有高程表面图层1.5 从地图中获取高程表面图层和高程源图层1.6 查找高程表面图层1.7 移除高程表面图层1.8 从曲面获

激光SLAM如何动态管理关键帧和地图

0. 简介 个人在想在长期执行的SLAM程序时,当场景发生替换时,激光SLAM如何有效的更新或者替换地图是非常关键的。在看了很多Life-Long的文章后,个人觉得可以按照以下思路去做。这里可以给大家分享一下 <br/> 1. 初始化保存关键帧 首先对应的应该是初始化设置,初始化设置当中会保存关键帧数据,这里的对应的关键帧点云数据会被存放在history_kf_lidar当中,这个数据是和

产品地图经典案例,为盲人设计一款闹钟

在产品设计的旅程中,复杂程度往往超乎你的想象。从理解产品设计的初衷,到制定具体目标,再到解决实际问题,这一过程涉及许多环节。以下是如何通过即时设计在线白板高效绘制产品地图,以便更好地进行产品设计的具体示例——为盲人设计一款闹钟。 即时设计在线白板是一个高效便捷的可视化工具,可以帮助团队更好地协作和整理思路。我们将通过实际案例来展示如何使用它绘制产品地图。https://js.design/?so

cesium 使用异步函数 getHeightAtPoint,获取指定经纬度点的地形高度。

这个函数使用 CesiumJS 库的 sampleTerrain 方法来获取地形数据。下面是代码的详细解释: async getHeightAtPoint(LngLat) {// 将经纬度转为 Cartographic 对象let cartographics = [Cesium.Cartographic.fromDegrees(LngLat[0], LngLat[1])];// console.