跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 一个关于 gps 坐标匹配算法的求助
未分類
11 7 月 2020

一个关于 gps 坐标匹配算法的求助

一个关于 gps 坐标匹配算法的求助

資深大佬 : chaohuang 9

需求 我有一堆 gps 坐标, 格式为{“latitude”:23.123, “longitude”: 113.123}

接口会传一个 gps 坐标(暂定为 a )进来, 需要从我这对坐标中匹配出里距离在 100 米(大概, 可以浮动)以内离得最近的坐标, 各位大佬有啥好办法么?

目前我的做法是取小数点 3 为存到 redis, 进来的坐标同样取 3 位, 然后取 redis 里匹配有没有对应的 key

大佬有話說 (17)

  • 資深大佬 : BBCCBB

    redis 里有个 geo 相关的函数貌似用来搞这个?

  • 資深大佬 : amorphobia

    https://en.wikipedia.org/wiki/Nearest_neighbor_search

    是这个问题么?

  • 資深大佬 : evill

    redis geo

  • 資深大佬 : humpy

    geohash

  • 資深大佬 : Mooshowl

    用 redis geo,原理跟附近的人是类似的

  • 資深大佬 : duwan

    可以存在 mysql 里面,建上空间索引。

    查询的时候根据查询的坐标,外扩 100 米,使用 mysql geo 函数查询出所有 100 米范围的点。

    然后在查询结果中挨个算距离找到最近的?

  • 資深大佬 : wangxiaoaer

    1 遍历:适合数据量不大。

    2 自建索引:按照 10 公里、1 公里、100 米为间距建立索引,搜索的时候从索引逐步缩小范围,当范围足够小,数据量不大就可以遍历了。适合数据量中等,而且变化不频繁的,否则你的索引要经常更新,那还不如下面的办法。

    3 PostgreSQL+PostGIS:创建空间索引就 OK 了,剩下的就是内置函数调用,不需要你设计什么算法去计算,而且即使数据增加,索引也会自动更新的。

  • 資深大佬 : baxtergu

    geohash 可解

  • 主 資深大佬 : chaohuang

    @baxtergu
    @wangxiaoaer
    @duwan
    @Mooshowl
    @humpy
    @evill
    @amorphobia
    @BBCCBB
    redis geo 应该是我想要的, 感谢各位大佬。

  • 資深大佬 : liuzhaowei55

    3 位的精度应该达不到 100 米的精度要求吧

  • 資深大佬 : janwarlen

    看成了 ghs,不好意思……

  • 資深大佬 : Jooooooooo

    搜一下 geohash

  • 資深大佬 : xiangyuecn

    取小数点 3 位是体育老师教的吗

  • 資深大佬 : la9998372

    取经纬度小数点三位,恐怕不能定位到误差是 100 米,经纬度差一度,距离相差 111km

  • 資深大佬 : dangyuluo

    想造轮子的话可以看下 spatial hash

  • 主 資深大佬 : chaohuang

    @liuzhaowei55 3 位差不多。

  • 主 資深大佬 : chaohuang

    @la9998372 我这里取的是经纬度相差 0.001

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具