[firebase-br] calculo de distancia entre coordenadas
bzottis em ig.com.br
bzottis em ig.com.br
Seg Ago 11 09:47:46 -03 2014
Pessoal, estou tentando fazer um SQL que me retorne a distancia entre
dois pontos através de coordenadas,
na internet achei essa function em MySQL e estou tentando converter para
um aprocedure FB mas esta dando erro na quantidade de casas decimais.
alguém saberia como resolver?
desde já agradeço.
a procedure é essa:
SET TERM ^ ;
CREATE OR ALTER PROCEDURE CALCULA_DISTANCIA (
lat1 double precision,
long1 double precision,
lat2 double precision,
long2 double precision)
returns (
distancia double precision)
as
declare variable v2r double precision;
declare variable vlong double precision;
declare variable vlat double precision;
declare variable vtmp_sin double precision;
declare variable vtmp_cos double precision;
declare variable vtmp_sin2 double precision;
declare variable a double precision;
declare variable c double precision;
begin
--V2r = 0.017453292519943295769236;--VALOR CORRETO
V2r = 0.01745329251994329576;-- ASSIM DA CERTO
vlong = (long2 - long1) * v2r;
vLat = (lat2 - lat1) * v2r;
vTmp_Sin = sin(vLat/2.0);
vTmp_cos = cos(lat1 * v2r);
vTmp_Sin2 = sin(vlong / 2.0);
a = (vTmp_Sin * vTmp_Sin) + (vTmp_cos * vTmp_cos) * (vTmp_Sin2 *
vTmp_Sin2);
c = 2.0 * atan2(sqrt(a), sqrt(1.0 - a));
distancia = 6368.1 * c;
suspend;
end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE CALCULA_DISTANCIA TO SYSDBA;
Mais detalhes sobre a lista de discussão lista