《地图经纬度纠偏(所有地图通用技术方案)》由会员分享,可在线阅读,更多相关《地图经纬度纠偏(所有地图通用技术方案)(4页珍藏版)》请在金锄头文库上搜索。
1、地图经纬度纠偏-所有系地图纠偏Autonavi,高德系地图(google地图、mapabc地图、腾讯的soso地图等,在地图下方有autonavi.mapabc 版权信息的)百度地图高德为互联网/移动互联网用户和网站提供互联网地图(M)服务、地图API服务及基础地图服务。目前,MapABC地图网站已经成为中 国知名的地图网站及地图API的窗口。高德同时还为谷歌、腾讯、新浪、阿里巴巴、微软必应、京东商城等著名互联网网站提供基础地图服务支撑。而通过高德提供的地图API服务,已经有包括人人、搜房、赶集、拉手等3万多家互联网网站/移动互联网应用开发者构建起了自己的地图服务解决方案。根据中国的相关法规,
2、在国内发行的民用地图产品不允许使用真实坐标,必须加入一定偏移(出于国家安全考虑)。由于是相对偏移,并不会影响用户的使用。这种偏移是通过测绘部门的国家保密插件来实现的。所有语言通用法则:(目前国内最权威、最稳定的解决方法就是纠偏数据库)使用方法如下:地图经纬度偏移解决办法:gps纠偏数据库纠偏!中国地图经纬度偏移修正数据库,精度:0.01精度,数据量:9813676 条。使用方法:1、假设原始gps数据为(73.528888,39.368888)2、查询数据库:SELECT * FROM offset where lng=73.52 and lat=39.36,得出offsetlat、offse
3、tlng3、用原始的lat加上offsetlat,lng加上offsetlng,得出纠偏后的经纬度,可以直接在google地图上显示正确位置了。我们拥有以下数据库:纠偏数据库(google地图)精度为0.01:经纬度每变化0.01,取一次偏移值,共980万条,access文件约600mb,误差510米。精度为0.001:经纬度每变化0.001,取一次偏移值,共9亿条,csv文件共20gb,误差约2米。百度地图纠偏数据库精度0.01,共2800万条全国商户数据poimapabc地图全国兴趣点poi商户数据共1500多万条,包含地址、电话、经纬度、类别,CSV格式。baidu百度地图poi:全国超
4、过2000万条,永久免费更新如果需要以上数据库,请QQ我: 2640056519以下不需要大家再学习了!国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为地加偏处理,按照几行代码的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况有所不同。所有电子地图所有导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成“保密坐标“,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有GPS公司,只要需要汽车导航的,需要用到导航电子地图的,统统需要在软件中加入国家
5、保密算法,将Com口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作。目前中国的几家互联网地图公司(百度地图、搜狗地图、谷歌地图、Mapbar等)也模仿国家加密的做法,在国家加密的基础上又加入了自己的加密量,目的是防止竞争对手抓取、分析自家的数据。地图的偏移算法通常有几种:一种是线性偏移,这种偏移算法容易被破解,使用不多;另一种非线性,在不同的区域,偏移的值和方向各有不通(如偏移字典)。因此破解地图偏移最常见的一种做法是:同名点计算。即知道不同地图上相同点的坐标,再计算这些点坐标之间的差值。这种方法就依赖于同名点数量
6、和分布程度。经纬度的偏移转换,我们需要将经纬度39.111195,117.148067转化为18级像素值25620917 和 55392414,然后分别加上偏移量-270,1193,然后再转化为经纬度和,即位偏移后的经纬度(精度指的是当时偏移数据的间隔,而不是每条数据的精度,0.01版本可以达到18级5个像素以内的纠偏精度)以上方法经过本人测试,得到的经纬度和GPS仪器的位置完全吻合。不进行纠偏操作,误差范围大概有300-500米。低精度版本: (0.1 精度) 适合个人开发(可以免费提供)高精度版本: (0.01 精度) 适合商业应用(5米之内,有贴子说精度在1米,有点夸张了,再说GPS技术
7、也有误差(10米)。还有说是有纠偏算法的,既然在每个经纬度点的偏移量都不同,而且偏移量的变化也没什么规律,对于这种偏移算法的,我只能心底感慨一下了。0.01精度的有近1000W条数据。截图为证:数据格式:列abcd依次为:LNG*100 LAT* 100 OFFSET_X OFFSET_Y大家可能疑问,为什么要*100,为什么不直接把偏移经纬度算出来,而是存上偏移像素。我只好告诉大家,112.00是double类型(8字节)。而11200我可以只存int型(4字节)。同理偏移像素都是.0000级别的double了。按照存储算字节数,我想这种存法应该可以节省数据库大小,没准查询速度还快一些。存储成字符的,实在不推荐。所以说,有时候做的多未必好,呵呵解释得够详细了吧。