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关于百度地图坐标偏移的处理

时间: 2024-12-10 11:16:05

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

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

iOS 集成百度SDK 请参考 百度地图官方文档 ,这里不就多啰嗦了 本文介绍的是在百度地图上根据经纬度,自定义气泡时,气泡位置的偏移,在我们天朝这种事是很常见的,也见怪不怪了,在项目中使用的百度地图的SDK,位置各种不对,百度地图和其他地图,如高德,他们都有自己的偏移算法,网上也有很多譬如 火星坐标转换之类的,都不能达到准备显示的效果. 其实百度SDK 有他自己偏移算法,使用百度偏移转换就可以了 BMKPointAnnotation *annotation = [[BMKPointAnnota

openlayers3应用“四’”:百度地图坐标纠偏续

续前一篇,上一篇提到百度地图纠偏的基本思路,经过经过一天的努力,实现了百度地图坐标偏移参数的提取,步骤以及实现效果如下: 1.数据来源:四川省的省道矢量数据 2.提取坐标偏移参数的过程如下: A.将四川省地图范围按一定的范围划分成多个相同的网格 B.为网格准备纠偏数据:读取四川省省道矢量数据,并将矢量数据分配到划分的网格 C.加载百度在线或者离线地图,绘制矢量数据,使用页面上的按钮,将省道图形移动到正确的位置,记录偏移参数. D.采用查表法对地图进行"纠偏":将需要添加到地图上的坐标,

微信JS-SDK坐标位置转换为百度地图坐标

微信JS-SDK开发过程中,使用getLocation获取坐标位置,如何将微信获取的坐标直接应用到百度地图中,显示以下效果: 说明:红色图标是从微信转换过来的位置,蓝色图标是周边位置.首先从微信开发流程讲解. 1.微信JS-SDK开发文档 首先进入官网的帮助文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 可对文档进行详细的研读,要获取位置信息,分以下步骤:

php 将其他地图位置坐标 转换成 百度地图坐标

PHP关于其他坐标转换为百度地图坐标 百度地图api格式:         http://api.map.baidu.com/geoconv/v1/coords=116.440488,39.920026;114.21892734521,29.575429778924&output=xml&from=3&to=5&ak=你的ak 当然,在这里如果想把原坐标点改为传入的位置,可以写成 http://api.map.baidu.com/geoconv/v1/?coords={$l

iOS开发百度地图常见问题及解决办法

1.64bit模拟器不能正常工作 解决:请将Xcode5 的 Project -> Edit Active Target -> Build Settings -> Linking -> Other Linker Flags 中的"-ObjC"修改为"-all_load" 2.程序死在 _mapView = [[BMKMapView alloc] init]; 解决:很可能是由于没有在appDelegate里面初始化_mapManager 3.

百度地图坐标获取器

直接把百度地图坐标获取器放到dom里面有时会 引起js失效:用iframe标签就会涉及到父窗口的操作 代码如下 父窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv=&

微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法

原文:微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法 腾讯地图坐标转百度坐标 案例:本次开发的系统是一个商家联盟积分系统.在全国各地都有商家联盟的网点. 要求实现的功能 a.微信粉丝通过微信号就能查看附近的商家 b.我的联盟系统统计在2公里之内的商家网点 c.并标出商家和粉丝位置的距离是多少米. d.在商家的详细介绍页面设置百度地图接入步行.公交.驾车一键导航功能 那么现在问题来了: 问题1:在做微信O2O开发的过程中,通过微信地理位置功能事件获得的是腾讯地图坐标.而我们的导航

根据城市名获取百度地图坐标API

最近项目中百度地图的相关操作当没有坐标的时候默认通过城市名称获取中心点,不过感觉有点慢到网上搜索了一下也没类似的城市对应的价格的数据库.所以自己就建了一个.现公开出来供大家使用接口调用方法 http://2.ibtf.sinaapp.com/map/?city=北京返回json串 {"x":"116.403874","y":"39.914889"} 注1.城市名请用UTF-8编码否则会出错2.如返回 please reload

从百度地图API中抠出来的一个js方法,计算百度地图坐标距离

从百度地图api(http://developer.baidu.com/map/jsdemo.htm#a6_1)中抠出来的一个js方法,计算百度地图坐标距离 可读行还没还原,能用就行~ function fD(a, b, c) { for (; a > c;) a -= c - b; for (; a < b;) a += c - b; return a; }; function jD(a, b, c) { b != null && (a = Math.max(a, b));