如何用用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结合opencv实现人脸检测与跟踪
Jun 08 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
python编程实现希尔排序
Apr 13 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
Python语言快速上手学习方法
Dec 14 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
python pytest进阶之fixture详解
Jun 27 Python
python写日志文件操作类与应用示例
Jul 01 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
Python生成随机验证码代码实例解析
Jun 09 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
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
浅谈php的优缺点
2015/07/14 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
js实现点击烟花特效
2020/10/14 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
简单实现python画圆功能
2018/01/25 Python
python的socket编程入门
2018/01/29 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
基于python3实现倒叙字符串
2020/02/18 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
大数据分析用java还是Python
2020/07/06 Python
Python实现手绘图效果实例分享
2020/07/22 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
python openssl模块安装及用法
2020/12/06 Python
佳能法国商店:Canon法国
2019/02/14 全球购物
超市国庆节促销方案
2014/02/20 职场文书
授权委托书样本
2014/09/25 职场文书
中秋节祝酒词
2015/08/12 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
市级三好生竞选稿
2015/11/21 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
基于redis+lua进行限流的方法
2022/07/23 Redis