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教程之messagebox使用示例分享
Mar 07 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
面向对象学习之pygame坦克大战
Sep 11 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 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 团购折扣计算公式
2011/11/24 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php include类文件超时问题处理
2015/02/06 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python关键字and和or用法实例
2015/05/28 Python
python实现中文分词FMM算法实例
2015/07/10 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
C# .NET面试题
2015/11/28 面试题
求职信写作要突出重点
2014/01/01 职场文书
外贸业务员工作职责
2014/01/06 职场文书
小学清明节活动总结
2014/07/04 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android