Postgis 纬度经度半径

问题描述 投票:0回答:1

我有两张表A和B。 A 包含实体的纬度和经度值。 B 包含纬度、经度、点和半径值。

我需要让 SQL 选择从 A 表中选择 B 表半径内的所有行。有人能给我看一个 sql select 的例子吗?非常感谢。

geolocation postgis latitude-longitude radius
1个回答
0
投票

也许你可以这样做:

SELECT 
    a.*
    , b.id
FROM
    a
JOIN
    b
ON
    ST_DWithin(b.point, ST_MakePoint(a.long, a.lat), b.radius)

考虑到:

  • 此查询不会删除 a 上的重复行。那些距离超过 b 上一行的那些
  • 机器人表的坐标预计在同一个网格中
  • b.radius 预计与您正在使用的 srid 相同的距离单位
© www.soinside.com 2019 - 2024. All rights reserved.