在PostgreSQL中使用PostGIS进行简单的距离计算值得吗



我正在构建一个Rails应用程序,该应用程序需要能够在2D平面上指定点的特定距离内从数据库中选择记录。目前,该表存储了两个点(xy,均为整数),简单的数学运算可以为ab(两个点)和r(半径或距离)-WHERE ((x - :a)^2 + (y - :b)^2) < :r^2的输入提供所有"匹配"。

PostGIS提供了处理距离(ST_Distance)的功能,但似乎是为更高级的用例而设计的使用PostGIS库进行如上所述的简单距离计算有什么重要好处吗

PostGIS通常只对处理真实世界GIS数据的人有用,这些数据可能具有复杂的几何图形、投影等。如果您不需要这些,那么只需使用内置的几何图形功能。


使用PostGIS专门针对您的问题,使用ST_DWithin。查询看起来像这样:

SELECT *
FROM my_table,
  (SELECT ST_SetSRID(ST_MakePoint(388279.5, 4959511.8), 26912) AS poi) AS f
WHERE ST_DWithin(geom, poi, 1000);

其将使用名为CCD_ 9的几何列从CCD_。

最新更新