Какие единицы измерения использует модуль PostgreSQL “earthdistance”?

StackOverflow https://stackoverflow.com/questions/1615934

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

public static function mi2m($mi) {  // miles to meters
    return $mi * 1609.344;
}
public static function m2mi($m) {  // meters to miles
    return $m * 0.000621371192;
}
Это было полезно?

Решение

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

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

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

Другие советы

  

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

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

Документация ясна : в параграфе 2 раздела F.8.1 говорится: & # 8220; Радиус Земли получается из функции earth (). Он указывается в метрах. & # 8221;

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

radius_in_metres/1.609
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top