GPS轨迹可视化

作者: Yin1900 | 来源:发表于2018-06-11 20:41 被阅读8次

写在前面:所有数据记得选择对应的坐标系,例如百度地图和原始GPS坐标系就不同,需要转化再将它投射到地图上,否则就会造成偏差,导致"汽车从你家客厅穿过"


第一种是用python。

这里原理是用matplotlib里面的scatter画散点图,设置好横轴和纵轴的单位距离,然后把横轴和纵轴数据放在两个列表里面就行,具体可以看看matplotlib的官方文档,或者参照这篇博客,且看代码:

import matplotlib.pyplot as plt  

import os  

#定义读取txt的函数 返回一个列表 列表里包含经度  

def get_longitude(filename,i):  

fopen = open(filename,'r')  

    longitude = []  

for eachline in fopen:  

group = eachline.split(",")  

        longitude.append(float(group[i]))  

    fopen.close()  

return longitude  

#定义读取txt的函数 返回一个列表 列表里包含纬度  

def get_latitude(filename,i):  

fopen = open(filename,'r')  

    latitude = []  

for eachline in fopen:  

group = eachline.split(",")  

        latitude.append(float(group[i]))  

    fopen.close()  

return latitude  

#filename文件路径 size点的大小 color为点的颜色 i为自己定义 如果每一行前面有代表行数的数字,i为1否则i为0  

def draw_image(filename,size,color,i):  

latitude = get_latitude(filename, i)# 纬度  

longitude = get_longitude(filename, i+1)  # 经度  

    plt.scatter(longitude, latitude, size,color)  

plt.ylim(Ymin,Ymax)#Ymin和Ymax表示纵轴的最大值和最小值  

plt.xlim(Xmin,Xmax)#同上  

plt.plot(longitude,latitude,'b')#颜色的设置 'r' 红色 'm' 粉红'g' 绿色 'c' 青色'b' 蓝色 'w' 白色'y' 黄色 'k' 黑色  

    plt.show()  
image

这里的可视化的容易懂,但有个不好的地方就是背景不是地图,效果不太好。不过python有个库是可以在地图上标点的,叫BaseMap,但我这里没写的原因,一是当时没时间学,二是这个网上资料不多,不想看英文文档,就没写,这回我有空就去学一学,之后也写一篇博客,这里贴一篇可以参考的,感兴趣的小伙伴可以看看BaseMap

第二种可视化,就是用百度地图了,百度地图API提供了很多东西,只要注册申请密钥之后就能用。

值得注意的是,如果你要可视化的是海量数据,个人建议,还是用LBS麻点,百度地图API,在控制台里找数据管理那部分,然后上传数据,不过切记别把上传的格式搞错了,先把百度提供的模板下下来然后自己录入数据生成csv文件,然后再上传。最后还有一个要注意的地方就是,百度地图的坐标跟原始的GPS坐标是不同的,如果不转换的话,点标就标得不准,百度官方提供了转换方法原始GPS转百度坐标

上传数据成功后会有一个geotableId,然后就是显示了,这里可以直接在地图上看了

image

之前的geotableId在前端页面调用的时候会要用到

请看代码

// 百度地图API功能   

varmap = new BMap.Map("l-map");          // 创建地图实例   

varpoint = new BMap.Point(116.403694,39.927552);  // 创建点坐标   

map.centerAndZoom(point, 15);                 // 初始化地图,设置中心点坐标和地图级别   

varcustomLayer=new BMap.CustomLayer({   

    geotableId: 30960,//换成你自己的数据表geotableId   

    q: '', //检索关键字   

    tags: '', //空格分隔的多字符串   

    filter: '' //过滤条件   

});   

map.addTileLayer(customLayer);   

customLayer.addEventListener('hotspotclick',callback)

如果数据不多,可以用这个例子,多个点示例,不难,这里就不赘述了,效果还不错,但是要注意性能问题,点太多会造成浏览器卡顿甚至卡死

image

第三种方法,就是地图无忧,如果你不想理睬上面的那些代码,那么,地图无忧可以暂时解决一下你的问题,不过问题就是他不免费,试用是七天。不过他的便利之处就是他只用你上传数据文件(支持Excel和csv),样式等也可以自己随意设置,很方便。送上网址地图无忧,效果也很好

image.png

相关文章

  • GPS轨迹可视化

    写在前面:所有数据记得选择对应的坐标系,例如百度地图和原始GPS坐标系就不同,需要转化再将它投射到地图上,否则就会...

  • Processing + R

    ProcessingProcessing - GPS数据的可视化.jpg数据来源 微软 GPS trajector...

  • GPS轨迹记录器:myTracks

    myTracks mac版是Macos上一款GPS轨迹记录器, 主要记录GPS轨迹,实时统计用户在远足、骑车、跑步...

  • 轨迹去噪

    1. 定义 轨迹去噪:过滤掉轨迹中不需要的GPS点,保留需要的GPS点,然后组成新的子轨迹。 2. 算法描述 情况...

  • 轨迹分段

    1. 定义 轨迹分段:对去噪后的轨迹,根据驻留点信息或者相邻GPS点之间的时间间隔,将其划分成多个连续的GPS子序...

  • 徒步驴友入门教程_香巴拉穿越线

    户外gps轨迹记录 六只脚 路线记录 分享 ...

  • 地图GPS轨迹录制

    前言 在地图的使用中,尤其在导航场景下,进行GPS轨迹录制是十分必要并且有用的,本文会对于安卓系统下的轨迹录制部分...

  • 个性化旅游--从户外的轨迹,看旅游攻略的行程自动化

    一、 轨迹与循迹 1)轨迹 轨迹,其实是户外自助游的GPS导航,驴友们称之为【轨迹】。它记录了驴友们的运动路线,时...

  • mui手机GPS轨迹查看

    前端mui代码: #allmap{width: 100%;heig...

  • Dart GPS轨迹纠偏算法

    功能描述 因项目需求,需要时刻跟踪用户当前位置。定位成功,手机静止不动的情况下,定位也会跳来跳去,总在漂移。 附上...

网友评论

    本文标题:GPS轨迹可视化

    本文链接:https://www.haomeiwen.com/subject/hpfkeftx.html