python 经纬度,python通过经纬度画地图

  python 经纬度,python通过经纬度画地图

  1.检查API接口描述。

  注意:回调函数还没有研究。

  2.自己申请ak(类似百度地图服务器的钥匙,请勿泄露)

  注意:在调试阶段,可以随意填写应用名称。

  3.1在浏览器中输入以下url(替换为您自己的ak)并验证返回参数

  页面显示

  show location show location({ status :0, result :{ location :{ LNG :116.3084202915042, lat: 40.057033345938}, precision: 1, confidence: 80

  注意:返回的格式不是json格式(json格式直接以花括号开头)

  介绍一个基于Chrome的小插件——FeHelper,可以自动美化代码,如下图。

  3.2使用python进行验证

  注意:需要移除示例的key回调参数,以返回到标准的json格式,否则json.loads()函数将报告错误。

  1导入请求2导入请求3导入打印4

  5 URL= http://API . map . Baidu . com/geocoder/v2/?地址=北京市海淀区上地十街10号Output=JSON ak=piqgckmztubvw 29 gibt 1 bdwdjwztm * * #隐藏我AK的后三位

  6 res=requests.get(url)7

  8 _ JSON _ data=JSON . loads(RES . text)9 pprint . pprint(JSON _ data)#格式打印以提高可读性

  结果

  注意:可以使用pprint格式化打印结果。

  3.3继续研究

  1 #查询一个城市的具体位置,随便。

  2 URL= http://API . map . Baidu . com/geocoder/v2/?地址=北京市海淀区上地十街10号Output=JSON AK=piqgckmztubvw 29 gibt 1 bdwdjwztm * *

  3 URL= http://API . map . Baidu . com/geocoder/v2/?地址=海淀区市上地十街10号=北京Output=JSON AK=piqgckmztubvw 29 gib t1 bdwdjwztm * *

  4 #查询一个城市或一个省

  5 URL= http://API . map . Baidu . com/geocoder/v2/?address=Beijing output=JSON AK=piqgckmztubvw 29 gibt 1 bdwdjwztm * *

  4.用户输入位置,输出经纬度(这里有个大洞!)

  当使用requests.get(url)方法时,提交的url中的中文将被编码(即使您的python和网页是用utf-8编码的),url中的中文将显示如下

  http://api.map.baidu.com/geocoder/v2/?address=Beijing output=JSON AK=piqgckmztubvw 29 gibt 1 bdwdjwztm * * *

  它需要urllib.parse.unquote()来解码,但是解码后虽然输出的url是正确的,但是再次使用requests.get()时就不正确了。

  注意这个方法不能用在params中(params是字典格式,整体不支持;单单对字典里的汉字做这些是没有用的,因为字典里都是正确的。执行requests.get()时,只对url进行编码)

  解决方案:

  而不是问。get (URL,params),使用格式。

  URL= http://API . map . Baidu . com/geocoder/v2/?address={ } output=JSON AK=piqgckmztubvw 29 gib t1 bdwdjwztm * * * 。格式(地址)

  5.根据需求输出经纬度。

  所有代码

  1 #-*-编码:utf-8 -*-

  2 百度服务文档参考http://lbsyun.baidu.com/index.php? title=webapi/guide/web service-geocoding

  3 import requests 4 import JSON 5 import pprint 6 importurllib . parse 7

  8 #查询一个城市的具体位置,随便。

  9 # URL= http://API . map . Baidu . com/geocoder/v2/?地址=北京市海淀区上地十街10号Output=JSON AK=piqgckmztubvw 29 gibt 1 bdwdjwztm * *

  10 # URL= http://API . map . Baidu . com/geocoder/v2/?地址=海淀区市上地十街10号=北京Output=JSON AK=piqgckmztubvw 29 gib t1 bdwdjwztm * *

  1 #查询一个城市

  12 # URL= http://API . map . Baidu . com/geocoder/v2/?address=Beijing output=JSON AK=piqgckmztubvw 29 gibt 1 bdwdjwztm * *

  13

  4address=input(请输入地址:)15

  16 par={17 address:address,18 output:json ,19 AK : piqgckmztubvw 29 gibt 1 bdwdjwztm * * * ,20 } 21 URL= http://API . map . Baidu . com/geocoder/v2/ 22 RES=requests . get(URL,Par)23 print(res.url)# Chinese被重新编码24 URL 1=URL lib . parse . un quote(RES . URL)25 print(URL 1)

  29

  30 url2=http://api.map.baidu.com/geocoder/v2/?address={ } output=JSON AK=piqgckmztubvw 29 gib t1 bdwdjwztm * * * .格式(地址)31打印(URL 2)32 res2=请求。获取(URL 2)33打印(res2)34 JSON _ data=JSON。负载(res2。正文)35页。pprint(JSON _ data)36经度=JSON _ data[ result ][ location ][ LNG ]37纬度=JSON _ data[结果][位置][纬度]38打印(经度,纬度)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: