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 相关文章推荐
pyqt4教程之实现windows窗口小示例分享
Mar 07 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Python网络编程详解
Oct 31 Python
解决python大批量读写.doc文件的问题
May 08 Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
python调用webservice接口的实现
Jul 12 Python
解决python多行注释引发缩进错误的问题
Aug 23 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
matplotlib更改窗口图标的方法示例
Feb 03 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 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
js星星评分效果
2014/07/24 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
javascript表单正则应用
2017/02/04 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
python创建和使用字典实例详解
2013/11/01 Python
python Django模板的使用方法
2016/01/14 Python
详解python开发环境搭建
2016/12/16 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python中可以声明变量类型吗
2020/06/18 Python
python Selenium 库的使用技巧
2020/10/16 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
违反课堂纪律检讨书
2014/01/19 职场文书
材料加工工程求职信
2014/02/19 职场文书
见习报告格式要求
2014/11/04 职场文书
超级礼物观后感
2015/06/15 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS