gpt4 book ai didi

php - Postgis - st_distance

转载 作者:可可西里 更新时间:2023-11-01 01:08:30 26 4
gpt4 key购买 nike

我在 postgis 中遇到 st_distance 函数的问题。它返回错误的结果——对于小距离,误差不大——10 米,也许 20 米,但对于更大的距离,我的结果与例如谷歌地图结果之间的差异太大——700 米,最高 2 公里或更高。我正在使用 srid = 4326。第二件事 - 也许这就是问题 - 说我有 4 公里远的地方。 Postgis 说距离大约 0.0417 {{some_units}}。现在我只是将结果乘以 100 并得到或多或少准确的结果。我可以向这个函数传递一些参数,表示“以公里/米为单位的返回值”吗?

附言。 postgres版本是9.0.1

最佳答案

您应该使用地理数据类型。

使用几何数据类型使用的函数,您将获得与存储数据相同的单位。在您的情况下为度数。

度不能以任何简单的方式转换为米。要从未投影的引用系统获得以米为单位的结果,计算需要在围绕地球地壳的“大圆”上进行计算。您正在使用的计算只是使用毕达哥拉斯定理来计算平面上的距离。

因此,PostGIS 不会给出错误的结果。您可以转向基于米的空间引用系统,具体取决于您的数据是否覆盖了那么大的区域,因此地球的四舍五入是一个问题,如果是这样,您应该改用地理数据类型并使用 srid 4326。

HTH

尼克拉斯

关于php - Postgis - st_distance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com