Postgis ST_DIstance 查询返回不准确的结果

Postgis ST_DIstance query returning inaccurate results

我正在使用以下查询从 postgresql 数据库中检索记录

@services = Service.select("*, ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326)) as st_distance").order("st_distance").limit(10)

在我的应用中实施 "get directions" 方面后,我注意到上述查询 return 的距离和 google 地图中的方向不准确。

重要的是要注意,考虑到到目的地的道路可能不是一条直线,我确实预计会有轻微的差异,但似乎不准确是另一种方式,例如第一个 returned 项目在这个查询中说它 216km 距离 google 地图说 181km,第 10 个说 247km 与 google 地图相比 203km...距离越远越不准确...第 46 项 returned 如果我选择 return 许多人说 424km298km.

非常感谢有关此主题的任何指导或帮助...

使用的坐标示例纬度:53.199426 经度:-8.132368 在数据库中,我请求距 Lat:53.300929 经度:-6.179949 的距离...这是带查询的 216 公里和带查询的 181 公里google

POINT坐标按经度、纬度顺序排列。

这个:

@services = Service.select("*, ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lat lon)', 4326)) as st_distance").order("st_distance").limit(10)

应该是:

@services = Service.select("*, ST_Distance(services.lon_lat, ST_GeomFromText('POINT (lon lat)', 4326)) as st_distance").order("st_distance").limit(10)