gpt4 book ai didi

postgresql - Postgis ST_Distance_Sphere 给出大约 1.7 的过高结果

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

我是 Postgis 和空间方面的新手,我正在为非常简单的查询而苦苦挣扎。

我在 places 中有两条记录用于测试,其中列 addressLocation 是具有以下值的 POINT:

(51.122711,17.031819)
(51.122805,17.035522)

我正在尝试进行查询:

SELECT *
FROM places
WHERE ST_Distance_Sphere("addressLocation"::geometry, ST_MakePoint(51.122711, 17.033686)) <= 255;

51.122711, 17.033686 大约在这两个点之间的中心,Google map 上测量的距离约为 125 和 128 米。

问题是 (51.122805,17.035522)205 为限制得到结果,另一个以 210 为限制。

我正在查看 PostGIS 文档,但找不到对这种不准确的任何解释。

最佳答案

PostGIS 中的坐标必须表示为经度/纬度,而在 Google map 中坐标必须表示为纬度/经度。

您的查询是计算也门的距离:

Select ST_DistanceSphere(st_geomFromText('POINT(51.122711 17.031819)'),
st_geomFromText('POINT(51.122711 17.033686)'));
st_distancesphere
-------------------
207.60121386

而通过交换坐标,点在波兰,距离为:

Select ST_DistanceSphere(st_geomFromText('POINT(17.031819 51.122711)'),
st_geomFromText('POINT(17.033686 51.122711)'));
st_distancesphere
-------------------
130.30184168

关于postgresql - Postgis ST_Distance_Sphere 给出大约 1.7 的过高结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56773924/

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