2015-07-03 75 views
4

我收到来自PostGIS距离查询的意外值,我不知道为什么。我试图找到地球上两点之间的距离。如何通过PostGIS获得地球上两点之间的距离?

SELECT ST_Distance(
    ST_Point(50.7678,6.091499)::geography, 
    ST_Point(52.525592,13.369545)::geography 
) as distance; 

...返回827757.672533206或约827.7km。但是,如果我使用一个开源库来计算这个距离,或者使用任何一个在线计算器,我会得到538.6公里。有些东西显然是不对的。

我在做什么错?

+0

我使用PostGIS 2.1.7和PostgreSQL 9.4.1 –

+1

作为一致性规则,PostGIS和许多其他GIS软件使用的轴顺序始终为笛卡尔(X Y)或(长拉特)。 –

+0

例如'SELECT ST_AsLatLonText(ST_Point(50.7678,6.091499));'返回6°5'29.396“N 50°46'4.080”E –

回答

4

结果是正确的,输入不是。 ST_Point在您验证为(lat,lon)时接受输入为(lon,lat)