我想计算两个经纬度之间的距离,并显示该值。 我也想使用那个值(四舍五入到最近的 KM)
注意:人为的例子
这是我的
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, id from locations limit 10
现在这个工作得很好..我得到以米为单位的距离
但是我想得到以米和公里为单位的距离(这个问题很简单)
这是我认为可行的
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, distance/1000 as distance_in_km, id from locations limit 10
这会返回一个错误..
列“距离”不存在
它的箭头指向查询中的第二个“距离”。
我真正想避免的是同时计算全值和四舍五入到 KM
请注意:这不是实际的查询,而是为呈现问题而设计的查询。
最佳答案
试试这个:-
SELECT distance, distance/1000 as distance_in_km from
(
SELECT
ST_Distance(
ST_GeogFromText(
'SRID=4326;POINT(' || longitude || ' ' || latitude || ')'
),
ST_GeogFromText('SRID=4326;POINT(1 1)')
) AS distance, id from locations limit 10
) t;
关于postgresql - 在 postgresql 查询中的两个位置使用计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796120/