首页 > 移动平台 > 详细

iOS关于百度地图坐标偏移的处理

时间:2014-06-20 18:58:31      阅读:497      评论:0      收藏:0      [点我收藏+]

iOS关于百度地图坐标偏移的处理

定义一个宏来转换

#define CBCoorConvert(coor) BMKCoorDictionaryDecode(BMKBaiduCoorForGcj(coor))

使用

- (id)initWithJson:(NSDictionary *)json
{
    if (self = [super initWithJson:json]) {
        self.mileageNew = [json objectForKey:@"newMileage"];
        
        CLLocationCoordinate2D coor;
        coor.latitude = [self getLat];
        coor.longitude = [self getLon];
        self.baiduCootdinate = CBCoorConvert(coor);
    }
    return self;
}

 

baidu api介绍:

/**
 *坐标转换函数,从原始GPS坐标,mapbar坐标转换成百度坐标
 *@param coorWgs84 待转换的原始GPS坐标,或者mapbar的坐标
 *@return 返回的NSDictionry中包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
 */
UIKIT_EXTERN NSDictionary* BMKBaiduCoorForWgs84(CLLocationCoordinate2D coorWgs84);

/**
 *坐标转换函数,从google坐标,51地图坐标,mapabc坐标转换为百度坐标(51地图坐标需要显出10000)
 *@param coorGcj 待转换的google坐标,51地图坐标,mapabc坐标
 *@return 返回的NSDictionry中包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
 */
UIKIT_EXTERN NSDictionary* BMKBaiduCoorForGcj(CLLocationCoordinate2D coorGcj);

/**
 *base64加密后的坐标字典解密函数
 *@param dictionary 带解密的NSDictionry,该NSDictionry中应包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
 *@return 解密之后的坐标
 */
UIKIT_EXTERN CLLocationCoordinate2D BMKCoorDictionaryDecode(NSDictionary* dictionary);

 

百度定位SDK可以返回三种坐标系,

分别是:

bd09百度墨卡托坐标系),

bd09ll百度经纬度坐标系),

gcj02默认 国测局经纬度坐标系 )

其中bd09ll能无偏差地显示在百度地图上。

转换是连接百度的服务进行的,并不是本地进行转换的,

Reference:http://qiansheep.blog.163.com/blog/static/3506872020139171153881/

 

 

 

iOS关于百度地图坐标偏移的处理,布布扣,bubuko.com

iOS关于百度地图坐标偏移的处理

原文:http://www.cnblogs.com/changbiao/p/3796301.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!