【发布时间】:2020-05-27 16:37:48
【问题描述】:
我第一次使用 PostGIS,无论我在距离查询中使用的距离如何,我都会返回所有结果。我的数据如下所示:
Id GeoLocation
8eb63480-4d63-11ea-b06a-8c1645ef6ad2 POINT (52.6323202 1.2947649)
a0f2dde6-4d64-11ea-b06a-8c1645ef6ad2 POINT (52.6294342 1.2936336)
a0f2dde7-4d64-11ea-b06a-8c1645ef6ad2 POINT (52.6277909 1.2909079)
a0f2dde8-4d64-11ea-b06a-8c1645ef6ad2 POINT (52.6260535 1.2952051)
当我对一个应该在一英里以外的点进行查询时:
SELECT * FROM "Locations" WHERE ST_DWithin("GeoLocation", 'POINT(52.6219322 1.2630061)', 1);
我得到了所有的行。我的理解是距离参数应该以米为单位,所以我不应该得到任何结果。
可能是坐标格式问题吗?我错过了什么?
【问题讨论】:
-
dwithin使用与几何 CRS 相同的单位,因此在您的示例中使用度数。所有要素都在给定坐标的 1 度范围内。投射到地理或使用不同的投影来使用米。
标签: postgresql postgis