如何用用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实现端口转发器的方法
Mar 13 Python
基于ID3决策树算法的实现(Python版)
May 31 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
基于python实现学生信息管理系统
Nov 22 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python远程linux执行命令实现
Nov 11 Python
Python绘制分类图的方法
Apr 20 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
优秀通讯员事迹材料
2014/01/28 职场文书
保护环境建议书
2014/03/12 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
先进班集体申报材料
2014/12/26 职场文书
2015年党员承诺书
2015/01/21 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android