Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrique

[Resolvido] Calcular distancia em metros de 2 locais

Recommended Posts

Fala ae pessoal, tenho um script que calcula a distancia em Kilometragem, por exemplo...

 

eu mando ele dar a distancia entre as cordenadas de resende e rio de janeiro e ele me retorna que é de aproximadamente 132 kilometros, até ae beleza mais eu gostaria de pegar o valor da distancia em metros.

 

Já tentei entender este code mais não consegui, por isso venho aqui pedia a ajuda dos amigos.

 

Segue abaixo o code

 

<%
const pi = 3.14159265358979323846

Function distance(lat1, lon1, lat2, lon2, unit)
  Dim theta, dist
  theta = lon1 - lon2
  dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta))
  dist = acos(dist)
  dist = rad2deg(dist)
  distance = dist * 60 * 1.1515
  Select Case ucase(unit)
	Case "K"
	  distance = distance * 1.609344
	Case "N"
	  distance = distance * 0.8684
  End Select
End Function


'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::  This function get the arccos function from arctan function	:::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function acos(rad)
  If Abs(rad) <> 1 Then
	acos = pi/2 - Atn(rad / Sqr(1 - rad * rad))
  ElseIf rad = -1 Then
	acos = pi
  End If
End function


'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::  This function converts decimal degrees to radians			 :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function deg2rad(Deg)
	deg2rad = cdbl(Deg * pi / 180)
End Function

'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::  This function converts radians to decimal degrees			 :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function rad2deg(Rad)
	rad2deg = cdbl(Rad * 180 / pi)
End Function

'response.write distance(-22.462652, -44.455553, -22.903539, -43.209587, "M") & " Miles<br>"

response.write Round(distance(-22.462652, -44.455553, -22.903539, -43.209587, "K")) & " Kilometros<br>"

'response.write distance(32.9697, -96.80322, 29.46786, -98.53506, "N") & " Nautical Miles<br>"

%>

Quem ae souber como ajudar eu ficarei grato!

 

Desde já agradeço,

Patrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grosseiramente falando. No Case que define a saida caso seja "K" é só multiplicar por 1000.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era exatamente isso Mano Salgado de Frango, heheheheeh deu certinho nunca tinha trabalhado com isso na minha vida, você mais uma vez salvou meu dia!

 

Obrigado, tu é o cara!

 

[]'s e post Resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.