Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por 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.
       

    • Por 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]  
×

Informação importante

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