baidu经纬度坐标与google经纬度坐标转换

首先介绍一些有关坐标系的知识:


 1.国际经纬度坐标标准为WGS-84(同时也是iOS自带定位系统使用的坐标系)

 2.国内使用的则是以WGS-84为基准,进行首次加密的坐标系为GCJ-02(高德使用的坐标系是GCJ-02

 3.百度坐标在GCJ-02的基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。

百度坐标拾取器:http://api.map.baidu.com/lbsapi/getpoint/index.html

高德坐标拾取器:http://www.gis520.com/gis/tools/LngLatPicker/


其他坐标系转百度的第一种方法:

使用下面那个url可以将原始坐标或者谷歌的坐标转换成baidu的坐标

http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=116.308992&y=40.059225,将得到的base64字符,还原就是真实的经纬度。

请求接口中有四个参数:
其中,from和to对应的值分别是:0真实坐标;2google坐标;4baidu坐标。
from:被转换的坐标体系
to:转换到这个坐标体系
x:经度
y:纬度
接口应答中有三个key,
应答格式如:{"error":0,"x":"MTE2LjMyMTYyMzg4MjIz","y":"NDAuMDY2NDE2Mjc4NzMx"}

base64可以转码


其他坐标系转百度的第二种方法:

使用百度api中的BMKConvertBaiduCoorFrom方法

/**

 *坐标转换函数,从原始GPS坐标,mapbar坐标,google坐标,51地图坐标,mapabc坐标转换为百度坐标(51地图坐标需要显出10000

 *@param coordinate待转换的坐标

 *@param type待转换的坐标系类型,GPS为原始GPS坐标,COMMONgoogle坐标,51地图坐标,mapabc坐标

 *@return 返回的NSDictionry中包含“x”“y”字段,各自对应经过base64加密之后的xy坐标

 */

UIKIT_EXTERNNSDictionary* BMKConvertBaiduCoorFrom(CLLocationCoordinate2D coordinate,BMK_COORD_TYPE type);


得到的结果可以使用以下方法解密

/**

 *base64加密后的坐标字典解密函数

 *@param dictionary 带解密的NSDictionry,该NSDictionry中应包含“x”“y”字段,各自对应经过base64加密之后的xy坐标

 *@return 解密之后的坐标

 */

UIKIT_EXTERN CLLocationCoordinate2D BMKCoorDictionaryDecode(NSDictionary* dictionary);


第三种方法:各种坐标系之间的转换,个人觉得还可以,推荐一下第三方的

TQLocationConverter



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值