[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