本⽂将讲解,给你⼀个地址,如何⽤Python进⾏可视化,只需要两步:
将地址转成经纬度
根据经纬度在地图上标记点
01.将地址转成经纬度
⾸先我们需要将地理位置转成经纬度这种统⼀格式,⽅便代码去识别。完成这⼀个需求可以使⽤爬⾍通过在线的经纬度转换⽹站来实现,也可以使⽤⼀些专业的API⽐如百度、⾼德等,这⾥我们使⽤百度地图开放平台。十一月的英文
使⽤API并不是直接就能调⽤,⾸先需要去申请⼀个地图可视化的AK,打开百度地图开放平台
登陆之后依次点击控制台创建应⽤选择浏览器端,按照指⽰创建⼀个地图可视化应⽤,以申请到AK结束
之后启动Jupyter Notebook,只要不到⼗⾏代码就能将地址转成经纬度,直接看代码,没有什么特别需要解释的,利⽤地址和AK构造查询URL,之后使⽤requests请求并取出经纬度,代码拿⾛就能⽤
import pandas as pd
import requests快递什么时候开始停运2021
AK = "替换为你申请的AK"
def get_position(name,AK):
url = f'api.map.baidu/geocoding/v3/?address={name}&output=json&ak={AK}'
res = (url)
val = res.json()
retval = {'地址':name,'经度':val['result']['location']['lng'],'纬度':val['result']['location']['lat'],'地区标签':val['result']['level'],'是否精确查':val['result']['precise']}
longitude = retval['经度']
五一提前上高速免费吗latitude = retval['纬度']
return(longitude,latitude)
我们来测试⼀下
可以看到,现在给它⼀个地址,就能返回经纬度,再返回地图验证⼀下经纬度,没有问题
当然如果需要⼀次性对多个地址处理,就可以使⽤pandas中的apply函数实现,此处不在赘述,另外需要注意的是,如果有⼤量地址需要处理就要再次去平台申请⼀个个⼈开发者,否则会有⼀定限制。我⾃⼰测试不难申请,填写基本信息并写⼀段200字⼩作⽂就⾏。
02.根据经纬度进⾏标记
现在有了经纬度就可以在地图上进⾏标记,⼯具有很多,我们选择pyecharts,并使⽤Geo地理坐标系,其实很简单就是先创建⼀个指定地图后根据经纬度往地图上添加点即可。
我们还是以上⾯的Apple西湖地址为例, 先导⼊相关库,之后使⽤Geo().add_schema(maptype="杭州")实例化⼀个杭州地图,再将我们的经纬度添加进去,最后使⽤.render_notebook()直接在notebook中渲染
from pyecharts.charts import Geo
from pyecharts import options
from pyecharts.globals import GeoType
g = Geo().add_schema(maptype="杭州")
g.add_coordinate(addr, longitude, latitude)
data_pair = [(addr,1)]
g.add('',data_pair, type_=GeoType.EFFECT_SCATTER, symbol_size=20)
g.set_series_opts(label_opts=options.LabelOpts(is_show=False))win10激活码
社会语录g.set_global_opts(title_opts=options.TitleOpts(title="pyecharts地图标点测试"))
效果如下:
转成经纬度并添加到地图中就可以了!这⾥就不再过多讲解,相信只要先把上⾯的代码理解、执⾏后,多思考⼀下就可以完成,拜拜~
发布评论