热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

校正IOS的gps坐标方法

用iosMapKit做过定位服务的人应该都知道用CLLocationManager获取的经纬度坐标在google地图上显示时与实际位置相差几百米,具体原因可查看我转载的一篇文章《WGS
用ios MapKit做过定位服务的人应该都知道用CLLocationManager 获取的经纬度坐标在google地图上显示时与实际位置相差几百米,具体原因可查看我转载的一篇文章《WGS84转火星坐标(ios篇)》。
        在我转载的那篇文章里有讲到两个方法,第二个是要用苹果私有API的而且也没有使用说明所以不推荐使用,而第一个方法是要调用高德地图的API的,方法应该是对的,不过那个sdk已经过时了,我试了发现返回经纬度都是0。文章中提供申请key的链接还是对的,不过那个链接里的sdk应该有问题,我在另外一个地方找到了最新的sdk。下载地址是: http://api.amap.com/Ios/download

下面贴下代码片段
1.下面这段代码就是初始化查询选项,高德API里可以查询公交路线等几个选项,我们要的是查偏移量,所以用的是MARGCSearchOption.

//用高德地图api校正获取的gps 数据
        MARGCSearchOption* searchOption = [[[MARGCSearchOption alloc]init]autorelease];
        searchOption.cOnfig= @"RGC"; //这个是默认的,函数声明的头文件有注释
        searchOption.authKey = MAPABC_KEY; //这个就是你申请的key
        searchOption.coors = [NSString stringWithFormat:@"%f,%f;",location.coordinate.longitude, location.coordinate.latitude];//这个可以同时查几组经纬度值,中间用分号隔开,参数location 是用 CLLocationManager获取的经纬度值
        [search gpsOffsetSearchWithOption:searchOption]; //传入searchoption开始查找校正后的经纬度


2.程序执行完  gpsOffsetSearchWithOption:searchOption方法后会调用一个MAsearchDelegate的代理方法,并且把调用结果返回来,所以你可以在这个代理方法里执行你的处理逻辑
.-(void) gpsOffsetSearch:(MARGCSearchOption *)gpsOffSearchOption Result:(MARGCSearchResult *)result
{
    MARGCItem* rgcInfo = [result.rgcItemArray objectAtIndex:0];  //返回的结果result是一个array来的,因为可以同时查找很多组经纬度值,不过我上面代码我只写了一组,所以只取第一个object就行了     
    currentLocation.lOngitude= [rgcInfo.x floatValue];        //取出经度值
    currentLocation.latitude = [rgcInfo.y floatValue];   //取出纬度值
 }

推荐阅读
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文介绍了在Visual C++环境中通过编程实现鼠标移动及点击的具体方法,包括获取鼠标当前位置、移动鼠标至指定位置并执行点击等操作。 ... [详细]
  • 本文介绍如何通过Java代码调用阿里云短信服务API来实现短信验证码的发送功能,包括必要的依赖添加和关键代码示例。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 在开发过程中,有时需要提供用户创建数据库的功能。本文介绍了如何利用 .NET 和 ADOX 在应用程序中实现创建 Access 数据库,并详细说明了创建数据库及表的具体步骤。 ... [详细]
author-avatar
Ymgif影像--阿雅XX_506
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有