使用Python调用谷歌地图并记录运动轨迹进行可视化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Python调用谷歌地图并记录运动轨迹进行可视化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3340字,纯文字阅读大概需要5分钟。
内容图文
??本篇博文主要介绍了如何使用python来调用谷歌地图,并对北京的一个轨迹数据集进行可视化展示。该数据集包含在3年内收集的182个用户的GPS轨迹。我在这个演示中使用了用户001的数据。
??博文会给出具体可执行代码,小伙伴只需按照文中所说进行操作,即可成功实现如下图所示的结果。后面就看大家需要怎么进一步利用了。
由于谷歌地图的限制,只提供个人学习使用,因此会有如上水印。
PS:从左下角的轨迹上来看,该用户是不是还坐飞机出差了一次,哈哈。
操作步骤:
一、下载数据集
??我使用的数据来自Microsoft Research Asia的GeoLife GPS Trajectories Dataset(下载链接)。 该数据集包含在3年内收集的182个用户的GPS轨迹。
点击下载链接后,我们直接Download即可。
二、安装gmplot模块
cmd命令行输入:
pip install gmplot
最后提示success即可。
这我也是在网上找了很久的资料,很多博客都没有具体说明,这里卡了很久,希望能帮到大家。我是在github上找到了提示的,倒数第二行有说明。
gmplot的github源码,这个大家简单参考下就行了,这一次我们用不到:
https://github.com/vgm64/gmplot
三、编写代码
??我们读取用户001的轨迹数据。 每个数据点都有纬度,经度,高度,日期和时间信息,如下表所示。 我们可以在地图上绘制这些GPS数据,以大致了解该用户的活动区域。具体代码如下,代码可以执行,我是在spyder上执行的,大家也可以用其他python工具。
??注意:以下代码我们只需要修改两处路径即可,分别是读取的数据集路径(第8行),和最后要生成的html文件存放的路径(倒数第二行),我们得到html后用谷歌浏览器打开就是我们最开始看到的那个地图轨迹了。
实现代码:
import numpy as np #Python的一种开源的科学计算库
import matplotlib.pyplot as plt #Python可视化库
import pandas as pd #Python数据分析模块
import os #统一的操作系统接口函数
import gmplot
#定义数据文件的路径
user = '001'
userdata = 'E:/Geolife Trajectories 1.3/Data/' + user + '/Trajectory/'
# Enable inline plotting 启用内联绘图
#%matplotlib inline matplotlib内联
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) #表格列字段不同的表合并
# delete unused column 删除未使用的列
df.drop(['zero', 'days'], axis=1, inplace=True) #drop函数默认删除行,列需要加axis = 1
# data is recorded every 1~5 seconds, which is too frequent. Reduce it to every minute
# 每隔1~5秒记录一次数据,这种情况太频繁了。 将它减少到每分钟
df_min = df.iloc[::12, :] #每隔12行取一次
df_min.head(10) #查看前5行
print ('Total GPS points: ' + str(df_min.shape[0])) #df.shape():查看行数和列数
# declare the center of the map, and how much we want the map zoomed in
# 声明地图的中心,以及我们希望地图放大多少倍
gmap = gmplot.GoogleMapPlotter(df_min.lat[0], df_min.lng[0], 11)
gmap.plot(df_min.lat, df_min.lng) #描绘轨迹点
gmap.draw("C:/Users/john/Desktop/user.html") #显示图
print("over")
四、运行结果
??我们直接运行上面的代码,会得到一个html文件,用谷歌浏览器打开。
??注意:很多小伙伴可能访问不了谷歌地图,那么我们就需要安装一款谷歌插件,操作过程可以参考:
https://www.cnblogs.com/jincieryi1120/p/10704704.html
实现结果:
最后:
??欢迎下方评论或点赞支持,感谢!
友情链接:
最具参考原文:
Inferring home and work locations using GPS trajectories and DBSCAN
参考借鉴博文:
https://blog.csdn.net/qq_38684480/article/details/85123777
https://blog.csdn.net/qq_27636147/article/details/88078538
内容总结
以上是互联网集市为您收集整理的使用Python调用谷歌地图并记录运动轨迹进行可视化全部内容,希望文章能够帮你解决使用Python调用谷歌地图并记录运动轨迹进行可视化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。