python——基于gmplot实现调用谷歌地图进行GPS轨迹可视化

因为需要做一个GPS数据的地图轨迹绘制,基于gmplot可以很好的绘制出,所以我们开始吧!

安装gmplot模块

pip install gmplot

获取GPS开源数据集

Microsoft Research Asia的GeoLife GPS Trajectories Dataset。 该数据集包含在3年内收集的182个用户的GPS轨迹。
在这里插入图片描述

下载解压即可。

调用gmplot模块读取GPS数据并实现地图轨迹绘制

可以在gmplot的github网站汇总查看API的使用用法。

import numpy as np  
import matplotlib.pyplot as plt   
import pandas as pd  
import os  
import gmplot

#定义数据文件的路径
user = "005"
userdata = './class/ITS/Geolife_Trajectories/Data/{}/Trajectory/'.format(user)

filelist = os.listdir(userdata)  #返回指定路径下所有文件和文件夹的名字,并存放于一个列表中
names = ['lat','lng','zero','alt','days','date','time']
df_list = [pd.read_csv(userdata + f,header=6,names=names,index_col=False) for f in filelist]  
# f为文件索引号,header为列数,names为列表列名,index_col为行索引的列编号或列名

df = pd.concat(df_list, ignore_index=True) #表格列字段不同的表合并

# 删除未使用的列
df.drop(['zero', 'days'], axis=1, inplace=True) #drop函数默认删除行,列需要加axis = 1

# 每隔1~5秒记录一次数据,这种情况太频繁了。 将它减少到每分钟
df_min = df.iloc[::12, :] #每隔12行取一次
df_min.head(10)  #查看前5行
print ('Total GPS points: ' + str(df_min.shape[0]))  #df.shape():查看行数和列数

# 声明地图的中心,以及我们希望地图放大多少倍
gmap = gmplot.GoogleMapPlotter(df_min.lat[0], df_min.lng[0], 11)
gmap.plot(df_min.lat, df_min.lng)  #描绘轨迹点
gmap.draw("./class/ITS/user.html")   #显示图
print("over")

打开生成的user.html,就是绘好轨迹的地图啦。

在这里插入图片描述

参考文章:

猜你喜欢

转载自blog.csdn.net/qq_45779334/article/details/114660112
今日推荐