地图的电子围栏功能的技术选型

博客介绍了电子围栏功能的技术选型过程,对比了MySQL、Redis、Elasticsearch和MongoDB等方案。最终选择了MongoDB,因其支持多边形数据存储和高效查询,同时分析了高德地图的轨迹服务。文中提出了在实现中遇到的圆形与多边形搜索的难点及解决方案。
摘要由CSDN通过智能技术生成
需求说明

电子围栏

  1. 根据坐标筛选处附近的坐标
  2. 支持多边形数据存储
  3. 查找当前的坐标落在哪个几何图形内(圆,多边形)
现有解决方案
  • mysql 自定义函数计算
  • mysql geo索引
  • mongodb geo索引
  • postgresql PostGis索引
  • redis geo
  • ElasticSearch
  • 高德地图开放接口

最终选型结果mongodb

技术选型简要分析
mysql

搜索资料极少,看来很少有人选用

mysql 8 之前版本

但使用SQL语句进行查询的缺点也显而易见,每条SQL的计算量都会非常大,有时候要十几秒才能出结果,性能将会是严重的问题。

mysql 8

mysql 有专门支持位置的存储类型 geo 索引,但是检索依然感觉稍微复杂,并且效率还是有些问题。

redis
  1. 添加 获取 地理位置的坐标。

  2. 计算两个位置之间的距离。

  3. 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。

  4. 根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。

    缺点:不支持多边形,矩形 相关的搜索

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值