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

时间:2013-08-21 21:05:46

标签: postgresql postgis

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

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

1 个答案:

答案 0 :(得分:1)

PostGIS通常仅对使用真实GIS数据的人有用,可能有复杂的几何图形,投影等。如果您不需要这些,请使用built-in geometry capabilities


专门为您提问使用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);

将使用名为my_table的几何列,使用NAD83 / UTM zone 12N从投影坐标的1000米范围内获取geom的所有内容。