真机测试 CLLocationManager 定位不准确

iOS 码拜 9年前 (2015-05-07) 756次浏览 0个评论
 

– (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
 
        location = [newLocation coordinate];
        curLat =[NSString stringWithFormat:@”%f”,location.latitude];//get latitude
        curLng =[NSString stringWithFormat:@”%f”,location.longitude];//get longitude 
 
 定位不准确,有1公里左右的偏差
真机测试
}

5分
你是怎么判断出不准确的?是和地图比较么?国内的地图的坐标都是经过加密的,肯定和地图没办法匹配了
30分
请搜索 

火星坐标系统

就可以知道原因了。

国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照几行代码的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系统。   
所有的电子地图所有的导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送 到国家测绘局,将真实坐标的电子地图,加密成“火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的,统统需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹配,GPS也就可以正常工作。
所以,所有的导航电子地图公司,像四维图新、瑞图、易图通、高德等等,都需要将自己的电子地图拿到国家测绘局进行加密处理,而所有的导航软件公司,都需要将自己的导航软件中加入国家测绘局提供的加密算法的代码。而这一段代码,就是国家的机密,不是公开的,每次去国家测绘局加密处理都需要预约并在封闭的环境中进行,编译完成后需要是在主程序的exe中,而不能编译在外部dll等文件中。
当然,国家的保密插件,是需要收费的,早期的时候,一个导航仪就需要10块钱的保密插件许可费,恩,保密插件也不是白用的,毕竟国家花了很多的钱和人力和物力才做出来的保护国家安全的保密东西怎么可以随便送你用呢,收点钱也就算是正常也算是在预料之中啦。现在的话,好像已经下放到地图数据公司了,就是看这个地图数据公司的经营状况,大概会出货多少份电子地图,然后一次性收取地图数据公司多少钱,可能是多少百万,然后这个钱呢,你们数据公司就自己找你们的导航软件公司的客户收吧,算在每一台设备中的许可费,恩,国家的办事效率变高了,一次直接从导航电子地图公司收费比逐个收取导航软件公司的钱要来的容易和不那么麻烦。
现阶段,有些人或者组织,为了自己的利益,将导航软件和导航地图进行破解,并发现了导航电子地图中存在的地图偏差,所以就采取人为的手段,将地图反加密,将虚假的坐标转换成标准的WGS84坐标,最笨的方法就是线性的平移,大概偏差的距离为500米,基本上能够反回来,但误差较大,特别是南北距离加大的情况下,而聪明一点的方法,用matlab等工具计算出其中的曲线,然后反转回来。多么的可怕那,这是触犯国家法律的行为,国家的安全就这样被你们破坏了,这是一个刑事问题,而不是简单的破解软件破解地图的经济犯罪问题了。请大家务必务必遵守国家的法律,不要干出这样的傻事出来,出了事谁都保不了你,毕竟你将成为国家的敌人。
最后,说说保密插件带来的弊端,好处不容忽视,国家为了安全考虑,保密了就安全了,但弊端是,制造了人为的障碍,非常的不好用,比如导航软件出来的坐标,不能和Google Earth等国际软件匹配,Google Earth和Map在国内基本上就是废物。进一步带来的导航问题是,寻宝、分享等许多好玩的GPS活动,都无法在大陆地区展开,这一点真的让人很无奈。当然,也有一些时候,由于导航软件的保密插件问题,导致不能导航等等。保密插件,是一个让人哭笑不得的东西,就如同国际的WGS84坐标对我们的54坐标或者80坐标,就如同最近的国家部门准备开发“影像中国”反制google earth的泄密问题。等等种种,法律不可逾越,但我们也不希望人为的制造麻烦,或者为了更深入的经济利益。
5分
[你的locaionmanager对象 setDesiredAccuracy:kCLLocationAccuracyBest];不过谷歌地图的确会做偏移,这个是国家规定,没办法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明真机测试 CLLocationManager 定位不准确
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!