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 22 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
Python实现连接postgresql数据库的方法分析
Dec 27 Python
python监控键盘输入实例代码
Feb 09 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python+splinter自动刷新抢票功能
Sep 25 Python
django如何实现视图重定向
Jul 24 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
在keras下实现多个模型的融合方式
May 23 Python
Python趣味入门教程之循环语句while
Aug 26 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中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
js获取div高度的代码
2008/08/09 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
python使用thrift教程的方法示例
2019/03/21 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
人资专员岗位职责
2014/04/04 职场文书
食品销售计划书
2014/04/26 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
入党积极分子个人总结
2015/03/02 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android