gpt4 book ai didi

postgresql - postgis:ST_两个地理之间的距离。语法错误

转载 作者:行者123 更新时间:2023-11-29 12:50:22 25 4
gpt4 key购买 nike

我正在尝试在我的 table 上运行它

select ST_Distance (
select location from utenti where user_id=464,
select location from utenti where user_id=474604
);

具有这种类型的位置列 location geography(POINT, 4326)

我收到一个语法错误,我不明白为什么。

我怎样才能实现我的目标?

例如,如果我为每个用户在两个查询中选择该列,我会得到这样的数据“0101000020E61000001435F98F528125402AE5B512BAA34540”

和运行:

select ST_Distance(%s, %s);

它有效,但距离似乎不正确。嗯

最佳答案

正如上面评论中所指出的,您可以将查询重写为:

SELECT ST_Distance(a.geom, b.geom) FROM utenti a, utenti b WHERE a.user_id=464 AND b.user_id=474604; 

但是 这将为您提供以度数为单位的距离(因为这就是您存储的点数)。因此,您需要将函数更改为:

SELECT ST_Distance_Sphere(a.geom, b.geom) FROM utenti a, utenti b WHERE a.user_id=464 AND b.user_id=474604; 

ST_Distance_sphere将考虑地球的一些曲率并返回以米为单位的距离。如果您需要绝对的准确性并且不担心速度,您可以使用 st_distance_spheroid 来解释地球的所有曲率。 .

关于postgresql - postgis:ST_两个地理之间的距离。语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55443848/

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