如何用用Python将地址标记在地图上


Posted in Python onFebruary 07, 2021

本文就将讲解,给你一个地址,如何用Python进行可视化,只需要两步:

  • 将地址转成经纬度
  • 根据经纬度在地图上标记点

一、将地址转成经纬度

首先我们需要将地理位置转成经纬度这种统一格式,方便代码去识别。完成这一个需求可以使用爬虫通过在线的经纬度转换网站来实现,也可以使用一些专业的API比如百度、高德等,这里我们使用百度地图开放平台。

使用API并不是直接就能调用,首先需要去申请一个地图可视化的AK,打开百度地图开放平台

http://lbsyun.baidu.com/

登陆之后依次点击控制台


创建应用


选择浏览器端,按照指示创建一个地图可视化应用,以申请到AK结束

如何用用Python将地址标记在地图上

之后启动Jupyter Notebook,只要不到十行代码就能将地址转成经纬度,直接看代码,没有什么特别需要解释的,利用地址和AK构造查询URL,之后使用requests请求并取出经纬度,代码拿走就能用?

import pandas as pd
import requests

AK = "替换为你申请的AK" 

def get_position(name,AK):
  url = f'http://api.map.baidu.com/geocoding/v3/?address={name}&output=json&ak={AK}'
  res = requests.get(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)

我们来测试一下

如何用用Python将地址标记在地图上

可以看到,现在给它一个地址,就能返回经纬度,再返回地图验证一下经纬度,没有问题

如何用用Python将地址标记在地图上

当然如果需要一次性对多个地址处理,就可以使用pandas中的apply函数实现,此处不在赘述,另外需要注意的是,如果有大量地址需要处理就要再次去平台申请一个个人开发者,否则会有一定限制。我自己测试不难申请,填写基本信息并写一段200字小作文就行。

二、根据经纬度进行标记

现在有了经纬度就可以在地图上进行标记,工具有很多,我们选择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))
g.set_global_opts(title_opts=options.TitleOpts(title="pyecharts地图标点测试"))

g.render_notebook()

效果如下

如何用用Python将地址标记在地图上

现在,我们就学会了如何利用Python对将一个地址位置信息进行可视化,如果是一个组地理位置呢?只要写一个循环,依次将每个地址都转成经纬度并添加到地图中就可以了!这里就不再过多讲解,相信只要先把上面的代码理解、执行后,多思考一下就可以完成,拜拜~

以上就是如何用用Python将地址标记在地图上的详细内容,更多关于Python将地址标记在地图上的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
Python文件和目录操作详解
Feb 08 Python
使用graphics.py实现2048小游戏
Mar 10 Python
详解Python中的join()函数的用法
Apr 07 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
python计算两个地址之间的距离方法
Jun 09 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
对Python w和w+权限的区别详解
Jan 23 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
python 三种方法提取pdf中的图片
Feb 07 #Python
Python 转移文件至云对象存储的方法
Feb 07 #Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 #Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 #Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 #Python
Pandas数据分析的一些常用小技巧
Feb 07 #Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 #Python
You might like
CI框架安全类Security.php源码分析
2014/11/04 PHP
php实现websocket实时消息推送
2018/03/30 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
任意位置显示html菜单
2007/02/01 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Python装饰器用法实例分析
2019/01/14 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
python实现对变位词的判断方法
2020/04/05 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
入党自我评价优缺点
2014/01/25 职场文书
保护环境建议书
2014/03/12 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
会计专业求职信范文
2014/03/16 职场文书
介绍长城的导游词
2015/01/30 职场文书
小升初自荐信范文
2015/03/05 职场文书
个人工作决心书
2015/09/22 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
Python装饰器详细介绍
2022/03/25 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android