Какие модули использует модуль «earthdistance» PostgreSQL? - PullRequest
2 голосов
/ 24 октября 2009

Я предполагаю, что используемые им единицы измерения - метры (м), но это не ясно из документации , которую я нашел. Это правильно?

Если это так, просто для того, чтобы проверить, чтобы преобразовать мили / метры, я полагаю, что эти функции должны помочь:

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 ]

7 голосов
/ 24 октября 2009

Документация кажется однозначной. Большая часть модуля использует счетчики по умолчанию. Но вы можете изменить это на любые единицы, которые вам нравятся, изменив одну функцию, earth. Предположительно, все остальные функции используют эту функцию, поэтому ваши юниты могут быть произвольными, если это переопределено.

Обратите внимание, что оператор point <@> point всегда работает в милях, и это нельзя изменить .

Ваши функции преобразования верны, но это также легко проверить:

1 голос
/ 24 октября 2009

В документации ясно ясно: параграф 2 раздела F.8.1 гласит: «Радиус Земли получается из функции earth (). Дается в метрах ».

1 голос
/ 24 октября 2009

Радиус Земли получается из функции earth (). Дается в метрах

Если радиус Земли в метрах, я думаю, что ваша математика будет неправильной, если вы также не используете метры.

0 голосов
/ 31 мая 2017

Если у вас есть ввод в метрах, используйте его так:

radius_in_metres/1.609
...