GPS 方案总结

gps,方案,总结 · 浏览次数 : 20

小编点评

**GPS方案概述** 该方案使用 Redis 和 MySQLRedis 来实现设备或用户实时定位,并存储历史轨迹。 **主要技术:** - **Redis**:用于存储和查询地理位置数据。 - **MySQLRedis**:与 Redis 集成的 MySQL 客户端,用于与 MySQL 数据库交互。 - **Geo数据类型**:用于存储地理位置数据。 - **SPATIAL INDEX**:用于建立索引,提高ospatial 数据的查询效率。 **流程:** 1. **设备或用户发送 GPS 数据**到 Redis 中。 2. **Redis 将数据写入 MySQLRedis 中**。 3. **设置 MySQL 中的 Geo 数据类型**。 4. **建立 SPATIAL INDEX**,以提高ospatial 查询。 5. **定期从实时查询表中检索最近 30 天的轨迹数据**。 6. **备份轨迹数据到另一张表**,用于备用。 7. **根据时间戳查询历史轨迹**。 **具体实现:** ```python import redis import mysql.connector import geopy.geometry # 连接到 Redis 和 MySQL 数据库 redis_client = redis.Redis() mysql_conn = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="your_database_name", ) cursor = mysql_conn.cursor() # 建立 SPATIAL INDEX cursor.execute( "CREATE EXTENSION IF NOT EXISTS spatia.geometry" ) # 插入地理位置数据 redis_client.set("position", geopy.geometry.Point(39.984702, 116.318417)) # 获取最近 30 天的轨迹数据 data = redis_client.get("position") # 关闭数据库连接 mysql_conn.close() ``` **其他选项:** - 可以使用其他存储地理位置数据格式的数据库,例如 Elasticsearch。 - 可以使用 Geospatial 库进行更复杂的地理分析,例如计算两个路线的交点。 - 可以使用 Kibana 等工具进行地理数据可视化。

正文

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

数据分析Geospatial analysis

可视化,Kibana的支持,这是使用ES的一个亮点,如果想快速集成GPS信息的监控,可以选择ES。

下面是官方的可视化效果图:

ES的函数查询ES Geo query

与GPS 方案总结相似的内容:

GPS 方案总结

# GPS 方案 搜集网络上关于GPS的方案。 ## redis + mysql redis 用来做设备或用户实时定位的查询。 mysql存储历史轨迹。存储时分两部分,一张表做实时查询用。一张表做备份用。如果需求为最多查询一个月的历史轨迹,那么实时查询表就只存储一个近一个月的轨迹数据。剩下的数据存到

Java socket 获取gps定位

1.Java socket 获取gps定位的方法 在Java中使用Socket来直接获取GPS定位信息并不直接可行,因为GPS数据通常不是通过Socket通信来获取的。GPS数据通常由设备(如智能手机、GPS接收器)上的GPS硬件模块生成,并通过操作系统或专门的GPS软件库来访问。 然而,如果我们的

[转帖]SC命令详解

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!http://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=644php SC命令详解(一个颇有用的command)做为一个命令行工具,SC.exe能

【译】使用 GitHub Copilot 作为你的编码 GPS

GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程。在我们的视频系列中,Bruno Capuano 探讨了这个智能编码伙伴如何帮助您更有效地编写代码,同时保持质量和准确性。 Copilot:是助手,而不是替代品 Bruno 强调