GPS 方案总结
GPS 方案
搜集网络上关于GPS的方案。
redis + mysql
redis 用来做设备或用户实时定位的查询。
mysql存储历史轨迹。存储时分两部分,一张表做实时查询用。一张表做备份用。如果需求为最多查询一个月的历史轨迹,那么实时查询表就只存储一个近一个月的轨迹数据。剩下的数据存到另一张表做备份。当然备份的方式有很多,你可以新建一张表存,或者csv存,或者存到其他数据库。
对于只查询历史轨迹的需求,那么在mysql中将经纬度存储成 decimal 类型即可。查询时根据时间戳进行查询(对时间戳建立索引,提高查询效率,当进行备份后,要重新构建索引)。
如果有类似查询两个点之间距离,当前点的方圆3公里内有哪些其他点位,查询球形曲面两点之间距离,存储一条路线,存一个区域,计算两个路线的交点等等几何上的计算。mysql支持的函数是相对较多的。
关于Geo数据类型mysql spatial-types,各种数据库(mongodb,ES)支持的类型都一模一样,都是point,linestring,polygon,multi······。
mysql对于Geo优化:建立索引SPATIAL INDEX
关于Geo的相关的函数:spatial-function
插入一个point记录:INSERT into geo_test(position) VALUES(ST_GeomFromText('POINT(39.984702 116.318417)'));
时序数据库
关于时序数据库存储GPS轨迹数据,各种好处:
mongodb
也支持Geo,数据类型与mysql一模一样,支持的函数相对于mysql较少
ES
数据类型支持ES Geo
可视化,Kibana的支持,这是使用ES的一个亮点,如果想快速集成GPS信息的监控,可以选择ES。
下面是官方的可视化效果图:

ES的函数查询ES Geo query
GPS 方案总结的更多相关文章
- 和菜鸟一起学android4.0.3源码之硬件gps简单移植【转】
		
本文转载自:http://blog.csdn.net/mwj19890829/article/details/18751447 关于Android定位方式 android 定位一般有四种方法,这四种方 ...
 - iPad Air 2全然评測:可怕的三核CPU、六核GPU
		
在了解了三核心A8X的基本情况后.我们再来通过測试数据,全面地了解一下iPad Air 2的性能表现,包含CPU.GPU.存储.电池.屏幕.摄像头.导航等等. [CPU性能測试:三核太可怕了] 移动处 ...
 - air530GPS数据通过air202上传阿里云
		
写硬件博客真是太难了 GPS/北斗 导航模块 Air530开发板G1学习日记 上面这个博客详细介绍了如何测试使用Air530模块根据稳重[Air530 和Air 202 进行配合使用,实现2G GPR ...
 - 一种基于路网图层的GPS轨迹优化方案
		
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...
 - 一种抛弃GPS的中近距离高精度无线同步新方案
		
目前,对于需要做同步数据采集的项目,大家不约而同的选用GPS作同步源,用GPS的秒脉冲作同步基准.对于是1000米内的多采集点的应用来说,这是一种浪费. 目前福州慧聚通信技术有限公司推出一款无线同步数 ...
 - 轨迹系列6——车载GPS对接方案汇总小结(809、自定义协议、前置库、WS)
		
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 最近在不同项目中对接了多个车载GPS厂商服务终端,绝大多数厂商 ...
 - 轨迹系列1——一种基于路网图层的GPS轨迹优化方案
		
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...
 - 车载多传感器融合定位方案:GPS +IMU+MM
		
导读 高德定位业务包括云上定位和端上定位两大模块.其中,云上定位主要解决Wifi指纹库.AGPS定位.轨迹挖掘和聚类等问题:端上定位解决手机端和车机端的实时定位问题.近年来,随着定位业务的发展,用户对 ...
 - 轨迹系列5——验证轨迹GPS坐标转换为本地坐标的四/七参数是否准确的一种方案
		
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 目前对多个项目轨迹不准确的情况做了排查,发现导致轨迹偏移百分 ...
 - java大并发数据保存方案
		
做了几年.net,如今终于要做java了. 需求: 线下终端会定时上传gps位置到服务端,服务端收到数据保存到mysql数据库,当线下终端过多时,问题出现了,首当其冲的是数据库连接池经常会崩溃,单个t ...
 
随机推荐
- 手撕Vue-数据驱动界面改变上
			
经过上一篇的介绍,已经实现了监听数据的变化,接下来就是要实现数据变化后,界面也跟着变化,这就是数据驱动界面改变. 想要实现数据变化之后更新UI界面,我们可以使用发布订阅模式来实现,先定义一个观察者类, ...
 - 使用protobuf生成代码import包找不到
			
protobuf使用import导入包找不到 前言 解决方案 protobuf使用import导入包找不到 前言 使用protobuf生成go代码,发现protobuf中一个import引用找不到 p ...
 - 大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解
			
大语言模型的预训练[2]:GPT.GPT2.GPT3.GPT3.5.GPT4相关理论知识和模型实现.模型应用以及各个版本之间的区别详解 1.GPT 模型 1.1 GPT 模型简介 在自然语言处理问题中 ...
 - 17.3 实现无管道反向CMD
			
WSASocket无管道反向CMD,与无管道正向CMD相反,这种方式是在远程主机上创建一个TCP套接字,并绑定到一个本地地址和端口上.然后在本地主机上,使用WSASocket函数连接到远程主机的套接字 ...
 - Redis订阅模式在生产环境引起的内存泄漏
			
内存泄漏 内存泄漏指的就是在运行过程中定义的各种各样的变量无法被垃圾回收器正常标记为不可达并触发后续的回收流程,主要原因还是因为对可回收对象引用没有去除,导致垃圾回收器通过GC ROOT可达性分析时认 ...
 - webpack重新打包清空dist文件夹的问题
			
1.5.20.0以上版本才支持output属性里的clean:true 5.20.0+ 5.20以下版本清除dist文件内容一般使用插件 clean-webpack-plugin, 5.20版本以后o ...
 - 使用Miniconda安装R语言环境
			
使用Miniconda安装R语言 下载Miniconda3-latest-Linux-x86_64.sh 静默安装 sh Miniconda3-latest-Linux-x86_64.sh -b -p ...
 - .NetCore 三种生命周期注入方式
			
.NetCore彻底诠释了"万物皆可注入"这句话的含义,在.NetCore中到处可见注入的使用.因此core中也提供了三种注入方式的使用,分别是: AddTransient:每次请 ...
 - 移动端跨平台动效工具Lottie, PAG的使用
			
动效工具Lottie Lottie 是 Airbnb 开源的一套跨平台的完整的动画效果解决方案,设计师可以使用 Adobe After Effects 设计出漂亮的动画之后,使用 Lottic 提 ...
 - Markdown Rules 详解
			
使用VSCode编写Markdown文件时,建议安装插件markdownlint,它可以帮助自己更加规范的写文章. 下面是所有的markdown语法错误信息以便纠错. Rules文档 Markdown ...