zoukankan      html  css  js  c++  java
  • python实现百度地图API获取某地址的经纬度

    申请百度API

    1、打开网页 http://lbsyun.baidu.com/index.php?title=首页

     选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号及邮箱认证。

      

      激活后可看到后台页面,现在可以开始创建应用了,这里请求校验方式有两种,一种是白名单IP,另一种是SN校验(旁边有计算的说明),我选择SN校验:

      

      成功后会获得自己的AK和SK,接下来说明如何计算sn

      计算SN(python3.x) 

     

    from urllib import parse
    import hashlib
    
    def get_urt(address):
    
        # 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=你的ak
        queryStr = '/geocoder/v2/?address=%s&output=json&ak=你的ak' % address
    
        # 对queryStr进行转码,safe内的保留字符不转换
        encodedStr = parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")
    
        # 在最后直接追加上yoursk
        rawStr = encodedStr + '你的sk'
    
        #计算sn
        sn = (hashlib.md5(parse.quote_plus(rawStr).encode("utf8")).hexdigest())
        
        #由于URL里面含有中文,所以需要用parse.quote进行处理,然后返回最终可调用的url
        url = parse.quote("http://api.map.baidu.com"+queryStr+"&sn="+sn, safe="/:=&?#+!$,;'@()*[]")   
        
        return url
    

      该url可直接进行进行访问,返回的是json格式,如下

    {"status":0,"result":{"location":{"lng":116.50104690641698,"lat":39.79092147361288},"precise":1,"confidence":80,"level":"地产小区"}}
    
  • 相关阅读:
    Samba网络配置
    嵌入式汇编程序
    GDB常用命令
    Everything搜索结果显示0 Object
    关于值类型和引用类型
    Main()

    利用python脚本自动下载ICML会议接受的文章
    如何从mac下的photos导出照片
    Erlang语言研究综述
  • 原文地址:https://www.cnblogs.com/liao-sir/p/8367683.html
Copyright © 2011-2022 走看看