校正IOS的gps坐标方法
来源:互联网 发布:淘宝端连接 编辑:程序博客网 时间:2024/06/06 00:36
用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开始查找校正后的经纬度
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]; //取出纬度值
}
{
MARGCItem* rgcInfo = [result.rgcItemArray objectAtIndex:0]; //返回的结果result是一个array来的,因为可以同时查找很多组经纬度值,不过我上面代码我只写了一组,所以只取第一个object就行了
currentLocation.longitude = [rgcInfo.x floatValue]; //取出经度值
currentLocation.latitude = [rgcInfo.y floatValue]; //取出纬度值
}
- 校正IOS的gps坐标方法
- 校正IOS的GPS坐标方法
- GPS坐标转换为百度坐标的方法总结——IOS篇
- 把Gps坐标转成百度坐标的java方法
- GPS坐标转换为百度坐标的方法
- GPS坐标转百度地图坐标的方法
- GPS坐标转百度地图坐标的方法
- EXCEL完成GPS坐标转换的简易方法
- 用EXCEL完成GPS坐标转换的简易方法
- GPS坐标单位(度分秒)的换算方法
- 计算两个GPS坐标的距离 方法一 - C#语言
- 计算两个GPS坐标的距离 方法二 - C语言
- 计算两个GPS坐标的距离 方法三 - C++语言
- 计算两个GPS坐标的距离 方法四 - Java语言
- 计算两个GPS坐标的距离 方法四 - Java语言
- 计算两个GPS坐标的距离 方法二 - C语言
- 计算两个GPS坐标的距离 方法一 - C#语言
- 计算两个GPS坐标的距离方法 - Java语言
- 关于Error making query:MySQL server has gone away
- android 录像和拍照功能
- tar.xz文件如何解压
- QT Creater
- linux常用的makefile模版编写
- 校正IOS的gps坐标方法
- 塔吉特读心术——用户数据分析的魔力【转】
- android android低版本工程(如1.5)放到高版本环境中(如2.2)
- 用python开发android应用(1)
- 后台应用不应做Android待机电池杀手
- 了解oracle对sql的处理过程
- 用duplex实现消息广播
- 打开 添加或删除程序 出现“rundll32.exe” 应用错误
- 在Android中调用图片、视频、音频、录音、拍照