postgresql – postgis st_distance返回不正确的结果

我使用postgis来计算2个地理坐标之间的距离.

select st_distance(
  'POINT(15.651955 73.712769)'::geography,'POINT(14.806993 74.131451)'::geography) AS d;

它返回我53536.743496517米,大约等于54km,但实际距离是103km,我通过http://boulter.com/gps/distance/计算

我在查询中做错了吗?

解决方法

POINT()在经度,纬度中获取其参数.交换你的论点.

select st_distance(
  'POINT(73.712769 15.651955)'::geography,'POINT(74.131451 14.806993)'::geography) AS d;

st_distance
--
103753.197677054

我经常犯这个错误,因为我认为在纬度和经度方面,而不是经度和纬度.

相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个...
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8...
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读...
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中...
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的...
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹...