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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。