文章目录

  • ​​安装gmplot模块​​
  • ​​获取GPS开源数据集​​
  • ​​调用gmplot模块读取GPS数据并实现地图轨迹绘制​​

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

安装gmplot模块

pip install gmplot

获取GPS开源数据集

Microsoft Research Asia的​​GeoLife GPS Trajectories Dataset​​。 该数据集包含在3年内收集的182个用户的GPS轨迹。

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

下载解压即可。

调用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​​,就是绘好轨迹的地图啦。

参考文章:

  • ​​使用Python调用谷歌地图并记录运动轨迹进行可视化​​