Jump to content
gugacamacho

AJUDA!! Preciso resolver este problema com variavel de form e function para calculo

Recommended Posts

Senhores,

 

Necessito muito da ajuda, estou com este codigo abaixo, quando insiro as variaveis para chamar a funcao, o calculo esta errado. por gentileza, se alguem pode me ajudar

<% 
'set rs = Conn.Execute("SELECT * FROM ctos ORDER by codigo")

Function DegRad(x)
	  'Degrees to Radians
	  DegRad = x * ((4 * Atn(1)) / 180)
End Function

Function GetGeodesicDistance(Lat1,Lon1,Lat2,Lon2,rScale)
	Dim er,pr,fl,F,G,L,S,C,W,R,D,H1,H2
	  er = 6378.1370000
	  pr = 6356.7523142
	  fl = (er - pr) / er
	  F = (DegRad(Lat1) + DegRad(Lat2)) / 2
	  G = (DegRad(Lat1) - DegRad(Lat2)) / 2
	  L = (DegRad(Lon1) - DegRad(Lon2)) / 2
	  S = Sin(G)^2 * Cos(L)^2 + Cos(F)^2 * Sin(L)^2
	  C = Cos(G)^2 * Cos(L)^2 + Sin(F)^2 * Sin(L)^2
	  W = Atn(Sqr(S / C))
	  R = Sqr(S * C) / W
	  D = 2 * W * er
	  H1 = (3 * R - 1) / (2 * C)
	  H2 = (3 * R + 1) / (2 * S)
	  Select Case rScale
		Case "statute"  dScale = 1.60934
		Case "nautical" dScale = 1.85200
		Case "metric"   dScale = 1.00000
		Case Else	   dScale = 1.60934
	  End Select
	  GetGeodesicDistance = (D * (1 + fl * H1 * Sin(F)^2 * Cos(G)^2 - fl * H2 * Cos(F)^2 * Sin(G)^2)) / dScale
End Function
%>
<div align="center">
  <form name="frm" method="post" action="mapa_v.asp">
    <label>Posição do cliente
    <input name="latitude" type="text" id="latitude" value=-28.401684> 
    <input name="longitude" type="text" id="longitude" value=-49.389643>
    </label>
    <label>
    <input type="submit" name="Submit" value="Enviar">
    </label>
  </form>
</div>
<%
dim Lati0, Long0, Lati1, Long1


lati0 = request.form("latitude")
long0 = request.form("longitude")

response.write GetGeodesicDistance(-28.401684,-49.389643,-28.394418,-49.395537, "metric") & " RESULTADO CORRETO<br><br><br>"

Lati1 = "-28.394418"
Long1 = "-49.395537"
response.Write(lati0) & ","
response.Write(Long0) & ","
response.Write(lati1) & ","
response.Write(Long1) & "<br><br><br>"
'Display calc
response.write GetGeodesicDistance(Lati0,Long0,Lati1,Long1, "metric") & "  RESULTADO DO CALCULO<br>"
%> 

 

Share this post


Link to post
Share on other sites

Com relação na formula não posso opinar não conheço a regra mas teste colocando todos os valores com vírgula e entre aspas ao invés de ponto e converta para Cdbl() quando fizer as contas...

Share this post


Link to post
Share on other sites

guga rodei a função aqui com esses parametros que passou...

GetGeodesicDistance(-28.401684,-49.389643,-28.394418,-49.395537, "metric")

retornou esse valor...  0,990992695478386 

qual valor volta para você?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By IgorBap
      Bom dia!
       
      Preciso escrever um código de algoritmo que realiza a conta de conversão de latitudes e longitudes em distância utilizando o Teorema de Pitágoras e não sei por onde começar.
      Encontrei esse calculo que poderá ser inserido.
       
      Triângulo Pitagórico

      Imaginemos 2 pontos P=(x1,y1) e Q=(x2,y2), obtemos a distância entre P e Q, traçando as projeções destes pontos
      sobre os eixos coordenados, obtendo um triângulo retângulo e usando o Teorema de Pitágoras.
      Pitagoras1.png (682 Bytes) Exibido 36730 vezes Assim, considerando 2 pontos de coordenadas (-22.902778, -43.206667) e (-23.548333, -46.636111)
      Calculando-se a distância entre eles, tem-se:
      Pitagoras2.png (2.14 KiB) Exibido 36729 vezes Pitagoras3.png (2.75 KiB) Exibido 36729 vezes A distância em graus resulta 3,4896744
      O raio da terra tem aproximadamente 6371km.
      Uma volta na terra tem 2 * pi * raio = 40030000m.
      Podemos, através de uma regra de 3 simples, obter a conversão do ângulo encontrado para uma distância em metros.
       

    • By gugacamacho
      Senhores, bom dia...
       
      Estou com um grande problema com este script para calcular distancia entre coordenadas, o erro se dá quando eu uso a informacao do formulario, ele nao le a coordenada correta, mas quando insiro de maneira estatica, funciona normal... preciso de muita a ajuda de todos.
      <%@ Language=VBScript %> <!--#include file="cnx_map.asp"--> <% 'set rs = Conn.Execute("SELECT * FROM ctos ORDER by codigo") Function DegRad(x) 'Degrees to Radians DegRad = x * ((4 * Atn(1)) / 180) End Function Function GetGeodesicDistance(Lat1,Lon1,Lat2,Lon2,rScale) Dim er,pr,fl,F,G,L,S,C,W,R,D,H1,H2 er = 6378.1370000 pr = 6356.7523142 fl = (er - pr) / er F = (DegRad(Lat1) + DegRad(Lat2)) / 2 G = (DegRad(Lat1) - DegRad(Lat2)) / 2 L = (DegRad(Lon1) - DegRad(Lon2)) / 2 S = Sin(G)^2 * Cos(L)^2 + Cos(F)^2 * Sin(L)^2 C = Cos(G)^2 * Cos(L)^2 + Sin(F)^2 * Sin(L)^2 W = Atn(Sqr(S / C)) R = Sqr(S * C) / W D = 2 * W * er H1 = (3 * R - 1) / (2 * C) H2 = (3 * R + 1) / (2 * S) Select Case rScale Case "statute" dScale = 1.60934 Case "nautical" dScale = 1.85200 Case "metric" dScale = 1.00000 Case Else dScale = 1.60934 End Select GetGeodesicDistance = (D * (1 + fl * H1 * Sin(F)^2 * Cos(G)^2 - fl * H2 * Cos(F)^2 * Sin(G)^2)) / dScale End Function %> <div align="center"> <form name="frm" method="post" action="mapa_v.asp"> <label>Posição do cliente <input name="latitude" type="text" id="latitude" value=-28.401684> <input name="longitude" type="text" id="longitude" value=-49.389643> </label> <label> <input type="submit" name="Submit" value="Enviar"> </label> </form> </div> <% dim Lati0, Long0, Lati1, Long1 lati0 = request.form("latitude") long0 = request.form("longitude") response.write GetGeodesicDistance(-28.401684,-49.389643,-28.394418,-49.395537, "metric") & " RESULTADO CORRETO<br><br><br>" Lati1 = "-28.394418" Long1 = "-49.395537" response.Write(lati0) & "," response.Write(Long0) & "," response.Write(lati1) & "," response.Write(Long1) & "<br><br><br>" 'Display calc response.write GetGeodesicDistance(Lati0,Long0,Lati1,Long1, "metric") & " RESULTADO DO CALCULO<br>" %> [Click e arraste para mover]  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.