【发布时间】:2017-05-27 10:42:12
【问题描述】:
在 Postgres 9.1 中,下面的代码会产生错误
ERROR: input is out of range
CONTEXT: SQL function "gc_dist1" statement 1
如何在 9.1 中修复它?
create or replace function gc_dist1(_lat1 float8, _lon1 float8, _lat2 float8, _lon2 float8)
returns float8 as $$
select ACOS(SIN(radians($1))*SIN(radians($3))+COS(radians($1))*COS(radians($3))*COS(radians($4)-radians($2)))*6371;
$$ language sql immutable;
select gc_dist1(24.6269989013672,59.3357849157094,24.6269989013672,59.3357849121094);
【问题讨论】:
-
对于地理距离计算,您可以使用 PostgreSQL 中的
earthdistance模块 -- 或者,对于更完整的功能集:PostGIS
标签: sql postgresql plpgsql postgresql-9.1 radians