欢迎来到 SO。
您的问题可能在其他地方。ST_Distance
使用 SRS 32613 使用两个几何图形返回以米为单位的距离:
SELECT ST_Distance('SRID=32613;POINT(508654.55672303465 4390740.143711988)',
'SRID=32613;POINT(508654.55672303480 4390740.143711988)');
st_distance
----------------------
1.74622982740402e-10
(1 row)
它也可以使用ST_Transform
SELECT ST_Distance(
ST_Transform('SRID=4326;POINT(-104.89910 39.66643)',32613),
ST_Transform('SRID=4326;POINT(-104.89907 39.66643)',32613));
st_distance
------------------
2.57321026907276
(1 row)
演示:db<>fiddle
您是否正在混合坐标对的顺序?请记住,它是经度,纬度,而不是相反。如果几何图形正确,请发布两个几何图形的 WKT 文字,以便我们重现您的环境。另一种选择是使用geography
而不是geometry
,它会自动返回以米为单位的结果,但您需要在 lon/lat 坐标系中转换以 32613 编码的几何图形以使投射工作,例如 4326。
编辑:仔细阅读@JGH 的答案——他可能已经找到了真正的问题。您可能使用了错误 SRS 的坐标!