在postgresql查询中的两个位置使用计算值

时间:2014-07-17 06:15:14

标签: postgresql

我想计算两个lat-long之间的距离,并显示该值。 我也想使用该值(四舍五入到最接近的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

请注意:这不是实际的查询,而是设计出来的问题。

1 个答案:

答案 0 :(得分:2)

试试这个: -

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;