• 高德地图api实现地址和经纬度的转换(python)


    利用高德地图web服务api实现地理/逆地址编码

    api使用具体方法请查看官方文档

    文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo/

    1.利用python第三方库requests实现

    Requests库文档地址:http://www.python-requests.org/en/master/

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 利用高德地图api实现地址和经纬度的转换
     5 '''
     6 import requests
     7 
     8 def geocode(address):
     9         parameters = {'address': address, 'key': 'cb649a25c1f81c1451adbeca73623251'}
    10         base = 'http://restapi.amap.com/v3/geocode/geo'
    11         response = requests.get(base, parameters)
    12         answer = response.json()
    13         print(address + "的经纬度:", answer['geocodes'][0]['location'])
    14 
    15 if __name__=='__main__':
    16         #address = input("请输入地址:")
    17         address = '北京市海淀区'
    18         geocode(address)

    2.基于http协议利用标准库http.client实现

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 '''
     4 利用高德地图api实现地址和经纬度的转换
     5 '''
     6 
     7 
     8 import http.client
     9 import json
    10 from urllib.parse import quote_plus
    11 
    12 base = '/v3/geocode/geo'
    13 key  = 'cb649a25c1f81c1451adbeca73623251'
    14 
    15 def geocode(address):
    16         path = '{}?address={}&key={}'.format(base, quote_plus(address), key)
    17         #print(path)
    18         connection = http.client.HTTPConnection('restapi.amap.com',80)
    19         connection.request('GET', path)
    20         rawreply = connection.getresponse().read()
    21         #print(rawreply)
    22         reply = json.loads(rawreply.decode('utf-8'))
    23         print(address + '的经纬度:',reply['geocodes'][0]['location'])
    24 
    25 if __name__=='__main__':
    26         #address = input("请输入你的地址:")
    27         address = '北京市朝阳区'
    28         geocode(address)

    3.利用基于传输层上socket实现

     1 #!/usr/bin/env python3
     2 #-*- coding:utf-8 -*-
     3 
     4 import socket
     5 from urllib.parse import quote_plus
     6 
     7 request_text = """
     8 GET /v3/geocode/geo?address={}&key=cb649a25c1f81c1451adbeca73623251 HTTP/1.1
    
     9 Host: restapi.amap.com:80
    
    10 User-Agent: search4.py
    
    11 Connection: close
    
    12 
    
    13 """
    14 
    15 def geocode(address):
    16         sock = socket.socket()
    17         sock.connect(('restapi.amap.com', 80))
    18         request = request_text.format(quote_plus(address))
    19         sock.sendall(request.encode('ascii'))
    20         raw_reply = b''
    21         while True:
    22                 more = sock.recv(4096)
    23                 if not more:
    24                         break
    25                 raw_reply += more
    26         print(raw_reply.decode('utf-8'))
    27 
    28 if __name__=='__main__':
    29         #address = input("请输入地址:")
    30         address = '北京市朝阳区'
    31         geocode(address)
  • 相关阅读:
    hdu 2490 队列优化dp
    poj 1836 LIS变形
    hdu 3410 单调栈
    51nod 1437
    51nod 1215 单调栈/迭代
    51nod 1102 单调栈
    51nod 1272 思维/线段树
    51nod 1279 单调栈
    SpringMVC收藏
    今天接触枚举类型,感觉是C里面应该才有的东西
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/6241561.html
Copyright © 2020-2023  润新知