码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 集成百度地图 位置偏移问题

时间:2014-11-04 14:44:24      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   color   ar   os   使用   

iOS 集成百度SDK 请参考 百度地图官方文档  ,这里不就多啰嗦了

本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图的SDK,位置各种不对,百度地图和其他地图,如高德,他们都有自己的偏移算法,网上也有很多譬如 火星坐标转换之类的,都不能达到准备显示的效果。

其实百度SDK 有他自己偏移算法,使用百度偏移转换就可以了

        BMKPointAnnotation *annotation = [[BMKPointAnnotation alloc]init];
        

CLLocationCoordinate2D coor;
        // 传人的需要显示的经纬度
        coor.longitude = [longitude floatValue];
        coor.latitude = [latitudes floatValue];

/**
 *坐标转换函数,从原始GPS坐标,mapbar坐标,google坐标,51地图坐标,mapabc坐标转换为百度坐标(51地图坐标需要显出10000)
 *@param coordinate 待转换的坐标
 *@param type 待转换的坐标系类型,GPS为原始GPS坐标,COMMON为google坐标,51地图坐标,mapabc坐标
 *@return 返回的NSDictionry中包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
 */

        NSDictionary *dict = BMKConvertBaiduCoorFrom(coor,BMK_COORDTYPE_GPS);

/**
 *base64加密后的坐标字典解密函数
 *@param dictionary 带解密的NSDictionry,该NSDictionry中应包含“x”,“y”字段,各自对应经过base64加密之后的x,y坐标
 *@return 解密之后的坐标
 */
        CLLocationCoordinate2D baiduCoor = BMKCoorDictionaryDecode(dict); // 转换为百度地图所需要的经纬度

annotation.coordinate = baiduCoor;//

更多细节,请参考百度地图官方文档。

 

iOS 集成百度地图 位置偏移问题

标签:des   style   blog   http   io   color   ar   os   使用   

原文地址:http://www.cnblogs.com/joshuageng/p/4073448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!