0
我写了下面的代码(花几个小时试图获得引用正确后):的PostgreSQL + PostGIS的功能,让角分离 - 为一对(纬度,经度)指出
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函数。我完全无法找到一种方法来做到这一点,而不先将它们转换为字符串,这可能是精度损失进入的地方。
我这样做完全搞砸了吗?