利用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包以后呢,我们就可以使用起来啦,代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
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形式保存到桌面上
|
成果展示(这个应该是要在联网的情况下进行的,有时候图像加载的有一些慢)
原文链接:https://blog.csdn.net/AAAAAAAKing/article/details/83278441