如何用用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中标准模块importlib详解
Apr 16 Python
Python 爬虫图片简单实现
Jun 01 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
python的中异常处理机制
Aug 30 Python
windows下python安装小白入门教程
Sep 18 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
Python配置文件处理的方法教程
Aug 29 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
python pymysql库的常用操作
Oct 16 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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连接access数据库
2008/03/27 PHP
php include,include_once,require,require_once
2008/09/05 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
信息滚动效果的实例讲解
2017/09/18 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
js如何验证密码强度
2020/03/18 Javascript
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
ASP.NET Core中的配置详解
2021/02/05 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
农民工工资承诺书大全
2015/05/04 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers