python在openstreetmap地图上绘制路线图的实现


Posted in Python onJuly 11, 2019

利用python进行经纬度轨迹展示

嘿!各位好久不见,距离第一次发博客已经过去两年多了,本人也从本科生变成了研究生,好了书归正传,最近在做一个关于航班滑行路径轨迹的项目,目的是将航班的经纬度数据在地图上显现出来并生成一条路径,以方便日后的滑行路径优化与分析。本文所用的语言为python,使用的是folium包,数据在flightaware网站上可以找到,使用这个包之前还是需要先进行pip install folium

folium的基本用法

  • folium.Map([纬度,经度],zoom start,width,height,control_scale,no_touch)   #zoom start为地图的初始缩放尺寸,数值越大地图放大程度就会越大,width为像素或百分比(int或者str两种形式),height地图高度,control_scale为是否需要在地图上显示比例尺,默认为false,no_touch为是否禁止触碰地图或拖拽地图,默认为不禁止。这些功能都是可自己选择的,一般来说只需要经度纬度和zoom_start就好了
  • folium.Marker([纬度,经度]).add_to(m)   #在地图上设置一个标志符号
  • folium.PolyLine(location = [[纬度1,经度1],[纬度2,经度2]...],weight,color,opacity).add_to(m)   #在地图上划线将所输入坐标连接起来

python利用folium绘图代码

在装好folium包以后呢,我们就可以使用起来啦,代码如下所示:

from folium import plugins
import folium
import os
m = folium.Map([39.1289, 117.3539], zoom_start=10) #中心区域的确定
location =[[39.1289, 117.3539], [39.1277262, 117.3542938], [39.1277275, 117.3543001], [39.1277262, 117.3542938], 
   [39.1277275, 117.3543001], [39.1277262, 117.3542938], [39.1277262, 117.3542938], 
   [39.1271896, 117.3541359], [39.127121, 117.354126], [39.127121, 117.354126], 
   [39.1269348, 117.3541107], [39.1268692, 117.3541061], [39.1263994, 117.3540649], 
   [39.1257591, 117.3540165], [39.125608, 117.3540192], [39.1251984, 117.3539717], 
   [39.1250038, 117.3539568], [39.1246886, 117.3539276], [39.1246033, 117.3539269], 
   [39.1244316, 117.353912], [39.1242828, 117.353912], [39.1241112, 117.3538971], 
   [39.1238623, 117.3538666], [39.1233153, 117.3538361], [39.1232643, 117.3538374], 
   [39.1230354, 117.3537478], [39.1229895, 117.353714], [39.1228638, 117.3535239], [39.122818, 117.3534493], 
   [39.1227334, 117.353241], [39.1226985, 117.3531494], [39.122652, 117.3530273], [39.122652, 117.3529968], 
   [39.1225821, 117.352829], [39.1225239, 117.3526764], [39.1224861, 117.3525835], [39.1224774, 117.3525391], 
   [39.1224657, 117.3525238], [39.1224174, 117.3523745], [39.1221886, 117.3517625], [39.1221771, 117.3517327], 
   [39.1221399, 117.3516388], [39.1221199, 117.3515834], [39.1220169, 117.3512998], [39.1219769, 117.3512115], 
   [39.1219482, 117.3511057], [39.1219188, 117.3510437], [39.121814, 117.3507996], [39.1217791, 117.3507385], 
   [39.1217558, 117.350708], [39.1215935, 117.3505982], [39.121558, 117.3505859], [39.1213417, 117.3506131], 
   [39.1211014, 117.3507475], [39.121011, 117.3507996], [39.1209528, 117.3508301], [39.120883, 117.3508759], 
   [39.1208481, 117.3509064], [39.1207352, 117.3509714], [39.1204834, 117.3511356], [39.120369, 117.3511953], 
   [39.120369, 117.3511953], [39.1202774, 117.351255], [39.1186409, 117.3522551], [39.1185321, 117.3523254], 
   [39.1182976, 117.3524641], [39.1181374, 117.3525686], [39.1173566, 117.3530426], [39.1171188, 117.3531955], 
   [39.1168213, 117.3533746], [39.1163325, 117.3536682], [39.115867, 117.3539581], [39.1156691, 117.3540802], 
   [39.1156342, 117.3540955], [39.1156342, 117.3540955], [39.1144981, 117.3547927], [39.113551, 117.3553772], 
   [39.113551, 117.3553772], [39.1125069, 117.3559869], [39.1120846, 117.3557129], [39.1120846, 117.3557129], 
   [39.1119118, 117.3553002], [39.1118546, 117.355136], [39.111782, 117.3549652], [39.1115456, 117.3542404], 
   [39.1115958, 117.3540649], [39.1115958, 117.3540649], [39.1128411, 117.3532562], [39.1131786, 117.3530426], 
   [39.113807, 117.3526459], [39.113807, 117.3526459], [39.1191902, 117.3493593], [39.1197308, 117.3490295], 
   [39.1206386, 117.3484802], [39.1208713, 117.3483276], [39.1214676, 117.347971], [39.1214676, 117.347971], 
   [39.1214676, 117.347971], [39.1214676, 117.347971]] #输入坐标点(注意)folium包要求坐标形式以纬度在前,经度在后
route = folium.PolyLine( #polyline方法为将坐标用线段形式连接起来
 location, #将坐标点连接起来
 weight=3, #线的大小为3
 color='orange', #线的颜色为橙色
 opacity=0.8 #线的透明度
).add_to(m) #将这条线添加到刚才的区域m内
m.save(os.path.join(r'C:\Users\Desktop', 'Heatmap1.html')) #将结果以HTML形式保存到桌面上

成果展示(这个应该是要在联网的情况下进行的,有时候图像加载的有一些慢)

python在openstreetmap地图上绘制路线图的实现

Python 相关文章推荐
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
python生成器generator用法实例分析
Jun 04 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
Python中使用Queue和Condition进行线程同步的方法
Jan 19 Python
python机器学习之决策树分类详解
Dec 20 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 Python
python实现小程序推送页面收录脚本
Apr 20 Python
基于python连接oracle导并出数据文件
Apr 28 Python
python 读取.nii格式图像实例
Jul 01 Python
Python自动化工具之实现Excel转Markdown表格
Apr 08 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 #Python
python实现微信自动回复机器人功能
Jul 11 #Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 #Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 #Python
PowerBI和Python关于数据分析的对比
Jul 11 #Python
pow在python中的含义及用法
Jul 11 #Python
Python简单处理坐标排序问题示例
Jul 11 #Python
You might like
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
Python的log日志功能及设置方法
2019/07/11 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
艺术设计专业个人求职信
2014/04/10 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
项目验收申请报告
2015/05/15 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis