javaluo
V2EX  ›  问与答

高德是否有将地址转换为经纬度的http接口

  •  
  •   javaluo · Nov 22, 2013 · 4762 views
    This topic created in 4644 days ago, the information mentioned may be changed or developed.
    百度是有这个接口的,geocoding可以将例如 北京西站或者北京市朝阳区xx大街1号这样的地址转换为经纬度,而且是http的,请问高德有这个接口么?

    翻了高德API的官网,只有Android,iOS,JavaScript的API,没发现http的。
    4 replies    2017-12-21 11:17:03 +08:00
    julyclyde
        1
    julyclyde  
       Nov 22, 2013
    问题是javascript的API也总得通信吧。扒开源代码看看呗
    wangyongbo
        2
    wangyongbo  
       Nov 23, 2013
    你要自己看看 这些sdk的源码,javascript 的里面 估计也是去调用一个 http接口。用以下,然后打开 chrome f12 ,看看 网络流量,应该比较容易看到。
    javaluo
        3
    javaluo  
    OP
       Nov 23, 2013 via Android
    @wangyongbo 感谢两位 我试试看
    corningsun
        4
    corningsun  
       Dec 21, 2017
    好多年的帖子了~~

    现在已经有了

    ```
    def gaode_geocoder(address):
    """
    高德 API: http://lbs.amap.com/api/webservice/guide/api/georegeo

    """
    key = "your api key"
    url = "http://restapi.amap.com/v3/geocode/geo?address=%s&output=JSON&key=%s" % (address, key)

    s = requests.Session()
    # 使用系统代理
    s.trust_env = True

    r = s.get(url, timeout=5)
    # 请求结果转换为 json 对象
    rep_json = r.json()
    r.close()
    s.close()

    return rep_json

    def test_gaode():
    address = u"上海市浦东新区东方万国企业中心"

    geocoder = gaode_geocoder(address)
    # 返回值为 0 或 1,0 表示请求失败; 1 表示请求成功。
    if geocoder['status'] == '1':
    # "location": "116.484546,39.990064",
    location = geocoder['geocodes'][0]['location']
    gaode_lng = location.split(',')[0]
    gaode_lat = location.split(',')[1]
    print "address=%s, lng=%s, lat=%s" % (address, gaode_lng, gaode_lat)
    else:
    print "ERROR: status=%s, info=%s" % (geocoder['status'], geocoder['info'])

    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3256 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:08 · PVG 19:08 · LAX 04:08 · JFK 07:08
    ♥ Do have faith in what you're doing.