iOS 系统自带的地理位置反编码还是太慢,毕竟请求国外的数据,相比,扔到国内就快多了。
最近有一个显示用户地理位置的需求,但是仅仅是这个需求,还没有足够的理由让我去集成三方地图的 SDK。系统的又太慢,所以在咨询 小锅 以后,他提供了百度的坐标拾取器。这是一个 web,客户端要用,还需要找到访问接口。
所以花了一点时间,抓到了请求接口,方便有需求的朋友访问。
因为绝大多数都只有坐标转位置的需求,而没有位置转坐标的。所以不提供位置转坐标的接口,如有需要,请评论,我单独提供。
接口信息
地址:
http://api.map.baidu.com/?qt=rgc&x=13407612.87&y=3550364.78&dis_poi=1
NOTE:
qt
和 dis_poi
是固定参数,后者表示返回周围的商家信息的数量(商家数量还需要配合其他接口参数,这里没需求,就没写)。
x
和 y
参数分别表示转成 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