V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Hystrix13
V2EX  ›  问与答

根据经纬度匹配最近的商家

  •  
  •   Hystrix13 · 2021-11-17 15:21:45 +08:00 · 1463 次点击
    这是一个创建于 1107 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Java 项目中根据用户的经纬度为其匹配最近的商家,有成熟案例或者 API 吗?不喜勿喷谢谢!

    12 条回复    2021-11-18 10:08:07 +08:00
    lower
        1
    lower  
       2021-11-17 15:34:03 +08:00
    有人跟我一样这样硬算的么?
    mysql 5.7 支持:
    round(st_distance_sphere ( POINT ( x, y ), POINT ( #{x}, #{y} )) ) as distance
    yggd
        2
    yggd  
       2021-11-17 15:50:18 +08:00
    anonydmer
        3
    anonydmer  
       2021-11-17 15:55:17 +08:00
    图简单直接使用个内置 geo distance 计算功能的数据库就好了,比如 mongo db
    Hystrix13
        4
    Hystrix13  
    OP
       2021-11-17 16:04:11 +08:00
    @yggd 非常硬核我的哥
    getoffworkontime
        5
    getoffworkontime  
       2021-11-17 18:48:27 +08:00
    上 gis 数据库, GeoHash
    cxh116
        6
    cxh116  
       2021-11-17 18:52:43 +08:00
    新版 redis 默认也支持 geo 了
    lagoon
        7
    lagoon  
       2021-11-17 18:55:39 +08:00
    嗯?国内还是国外啊。。。
    whoosy
        8
    whoosy  
       2021-11-17 19:08:54 +08:00
    redis geohash
    sadfQED2
        9
    sadfQED2  
       2021-11-17 19:15:30 +08:00 via Android
    MySQL 的话存 GeoHash 值,然后加索引,前缀匹配查询

    Redis 的话有 geohash 索引

    Postgersql 的话有 postgis

    Es 的话也有地理位置索引

    方案大概就这些吧
    Jooooooooo
        10
    Jooooooooo  
       2021-11-17 19:36:18 +08:00
    搜 redis geohash, 很成熟的技术
    Hystrix13
        11
    Hystrix13  
    OP
       2021-11-18 09:45:23 +08:00 via Android
    @sadfQED2 谢谢我的哥
    BigMountain
        12
    BigMountain  
       2021-11-18 10:08:07 +08:00
    用 Redis Geo 数据结构

    功能很强大
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:10 · PVG 02:10 · LAX 10:10 · JFK 13:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.