› Fóruns › Banco de dados Oracle › Cálculo de distância entre 2 pontos (através de coordenadas) › Cálculo de distância entre 2 pontos (através de coordenadas)
Nussa, irei lembrar os tempos de faculdade.
Bom, não possui propriamente uma função para calcular isso, acredito que somente no Spatial.
O que você precisaria fazer é transformar tudo em grau:
GRAU + MINUTO60 + SEGUNDO3600, tanto para latitude quanto longitude
Dai voce tera:
Ponto 1: XX,XX Latitude YY,YY Longitude
Ponto 2: WW,WW Latitude ZZ,ZZ Longitude
Utilize a fórmula de cálculo geométrico:
6371ACOS(COS(PI()(90-WW,WW)/180)COS((90-XX,XX)PI()/180)+SEN((90-WW,WW)PI()/180)SEN((90-XX,XX)PI()/180)COS((YY,YY–ZZ,ZZ)*PI()/180))
6371 = Raio da terra em KM, portanto a distância será medida em KM.
Para milhas use 3959, que é x 1,6. (Milhas X km).
obs: função do cosseno é cos(x), do seno é sin(x), agora não sei se o Oracle possui constante do PI ou possui função para converter graus para radianos, você pode usar pi = 3.141618 que está bem próximo do valor.[/b]