Я написал следующий код (потратив несколько часов , пытаясь получить правильное цитирование):
CREATE FUNCTION ast3angsep(double precision, double precision, double precision, double precision) RETURNS double precision AS $$
SELECT ST_Distance( ST_GeographyFromText('SRID=4326;POINT('||$1||' '||$2||')'), ST_GeographyFromText('SRID=4326;POINT('||$3||' '||$4||')') )/6370986.0/PI()*180.0;
$$
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
Эта функция работает, но, к сожалению, ее точность УЖАСНА. Кажется, должен быть гораздо более простой способ сделать это. Я просто хочу передать значения в функцию и передать их функциям ST. Я был совершенно не в состоянии найти способ сделать это без предварительного преобразования их в строку, что, вероятно, является причиной потери точности.
Я делаю это полностью облажался?