gpt4 book ai didi

postgresql - 针对纬度/经度值的 Postgis 查询 ST_DWithin

转载 作者:行者123 更新时间:2023-11-29 14:17:21 25 4
gpt4 key购买 nike

我有名为 locations 的下表,其中包含以下列:

  • 纬度
  • 经度

现在我想查询从给定纬度/经度点开始的特定半径内的所有条目。

SELECT * FROM locations
WHERE ST_DWithin(
ST_MakePoint(longitude, latitude),
ST_MakePoint(-0.63098, 51.18291),
100
);

上面的查询解释了我有哪些数据作为输入以及我必须查询的数据。

有什么想法吗?

最佳答案

ST_DWithin 可以处理地理和几何类型。 ST_MakePoint 返回几何类型。当对几何体使用 ST_DWithin 时,它将使用空间引用系统定义的距离单位。

当您想要以米为单位进行比较时,您首先必须将值转换为地理类型。然后查询变为:

SELECT * FROM locations
WHERE ST_DWithin(
ST_MakePoint(longitude, latitude)::geography,
ST_MakePoint(-0.63098, 51.18291)::geography,
100
);

这里有一个解释更多关于地理和几何之间差异的答案:https://gis.stackexchange.com/questions/6681/what-are-the-pros-and-cons-of-postgis-geography-and-geometry-types

关于postgresql - 针对纬度/经度值的 Postgis 查询 ST_DWithin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com