【问题标题】:How can I get distance between two points on Earth from PostGIS?如何从 PostGIS 获取地球上两点之间的距离?
【发布时间】:2015-09-21 16:58:57
【问题描述】:

我从 PostGIS 距离查询中得到了一个意外的值,我不知道为什么。我正在尝试找出地球上两点之间的距离。

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

...返回827757.672533206,或大约 827.7 公里。

但是,如果我使用我正在使用的开源库或使用几个在线计算器中的任何一个来计算这个距离,我会得到 538.6 公里。显然有些不对劲。

我做错了什么?

【问题讨论】:

  • 我正在使用 PostGIS 2.1.7 和 PostgreSQL 9.4.1
  • 作为一致性规则,PostGIS 和许多其他 GIS 软件使用的轴顺序始终是笛卡尔 (X Y) 或 (long lat)。
  • 例如SELECT ST_AsLatLonText(ST_Point(50.7678,6.091499)); 返回 6°5'29.396"N 50°46'4.080"E

标签: postgresql postgis


【解决方案1】:

结果正确,输入不正确。 ST_Point 接受输入为(lon,lat),而您将其验证为(lat,lon)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多