转载

【接口】百度坐标拾取器接口

iOS 系统自带的地理位置反编码还是太慢,毕竟请求国外的数据,相比,扔到国内就快多了。

最近有一个显示用户地理位置的需求,但是仅仅是这个需求,还没有足够的理由让我去集成三方地图的 SDK。系统的又太慢,所以在咨询 小锅 以后,他提供了百度的坐标拾取器。这是一个 web,客户端要用,还需要找到访问接口。

所以花了一点时间,抓到了请求接口,方便有需求的朋友访问。

因为绝大多数都只有坐标转位置的需求,而没有位置转坐标的。所以不提供位置转坐标的接口,如有需要,请评论,我单独提供。

接口信息

地址:

http://api.map.baidu.com/?qt=rgc&x=13407612.87&y=3550364.78&dis_poi=1

NOTE:

qt 和  dis_poi 是固定参数,后者表示返回周围的商家信息的数量(商家数量还需要配合其他接口参数,这里没需求,就没写)。

xy 参数分别表示转成 MC 坐标的经纬度(转 MC 坐标的方式在文末)

返回数据结构:

{   "content": {     "address": "浙江省嘉兴市桐乡市崇德中路47",  // 具体位置     "address_detail": {       "city": "嘉兴市",       "city_code": 334,       "country": "中国",       "country_code": 0,       "direction": "附近",       "distance": "26",       "district": "桐乡市",       "province": "浙江省",       "street": "崇德中路",       "street_number": "47"     },     "business": "",     "poi_desc": "",     "poi_region": [],     "point": {       "x": "13407612.87",  // 纬度MC转码后的值       "y": "3550364.78"    // 经度MC转码后的值     },     "surround_poi": []   }, // ------------------ 下面都是一些没用的返回值了,可以不用管 -----------------   "result": {     "error": 0,     "type": 44,     "qt": "rgc",     "x": "13407612.87",     "y": "3550364.78",     "dis_poi": "1",     "time": 0   },   "current_city": {     "sup_bus": 0,     "sup_business_area": 0,     "sup_lukuang": 0,     "sup_subway": 0   },   "hot_city": [     "北京市|131",     "上海市|289",     "广州市|257",     "深圳市|340",     "成都市|75",     "天津市|332",     "南京市|315",     "杭州市|179",     "武汉市|218",     "重庆市|132"   ] } 

转 MC 坐标

下面来说说如何将经纬度转 MC 坐标,我写了一个函数,可以直接使用:

https://github.com/saitjr/STConvertLL2MC

其中 MC 是一个结构体,使用 . 来进行访问。

调用方式:

MC result = convertLL2MC(116.444225, 39.985071); NSLog(@"%lf, %lf", result.x, result.y); // 经过转换以后,x 和 y 就能传给服务器了

参考:

http://www.71j.cn/archives/311

正文到此结束
Loading...