百度坐标拾取器接口

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

《百度坐标拾取器接口》有6个想法

  1. 你好楼主, 我需要到web或百度地图点击一个地点之后, 将这个点转换为坐标回调给我的app, 请问应该怎么实现呢

发表评论

电子邮件地址不会被公开。