PostgreSQL“地球距离”模块使用哪些单位?

时间:2009-10-23 21:16:39

标签: postgresql gis earthdistance

我猜它使用的单位是米(m),但我发现的documentation似乎并不清楚。这是对的吗?

如果是这样,只是为了验证,为了在英里/米之间进行转换,我认为这些功能应该可以解决问题:

public static function mi2m($mi) {  // miles to meters
    return $mi * 1609.344;
}
public static function m2mi($m) {  // meters to miles
    return $m * 0.000621371192;
}

4 个答案:

答案 0 :(得分:7)

文档似乎毫不含糊。大多数模块默认使用米。但是您可以通过修改单个函数earth将其更改为您喜欢的任何单位。据推测,所有其他函数都使用此函数,因此如果重写,则单位可以是任意的。

请注意,point <@> point运算符始终以英里为单位,无法调整

您的转换功能是正确的,但也很容易检查:

答案 1 :(得分:1)

  

地球的半径是从earth()函数获得的。它以米为单位给出

如果地球半径以米为单位,我猜你的数学会出错,除非你也使用米。

答案 2 :(得分:1)

文档 明确:F.8.1节的第2段说:“地球的半径是从earth()函数获得的。它以米为单位。“

答案 3 :(得分:-1)

如果你有以米为单位的输入,那么就像这样使用:

radius_in_metres/1.609