Pular para o conteúdo

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)

#102064
fabiogalera
Participante

    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,YYZZ,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]