FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Distancia entre dos puntos
Saludos a todos
Necesito saber cómo calcular la distancia(km) entre dos puntos especificados por latitud y longitud. He visto algunos ejemplos en C# y Java, pero nada en C++. Muchas gracias de antemano.. |
#2
|
||||
|
||||
#3
|
||||
|
||||
En su momento utilicé esta con bastates buenos resultados.
No es de mi autoría, pero no recuerdo de dónde salió para poner el link. La he tenido que buscar en el código del proyecto.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Gracias a ambos por responder, mirando el enlace que puso el Sr. Casimiro me aclara unas cuantas cosas, pero la solución final la dan en PHP, la cual probé y funciona perfectamente. Lo de restar las longitudes y latitudes, elevarla y luego sacarle la raíz cuadrada, lo probare a ver qué tal su precisión
Alguien pudiera traducir el código que puso el Sr.Neftali a c++!!!. |
#5
|
||||
|
||||
Mira a ver si esta traducción a C++ Builder te sirve.
Código PHP:
|
#6
|
||||
|
||||
Cita:
La función de la distancia, de nuevo, en el sistema euclideano, no es más que ¡el Teorema de Pitágoras aplicado en dos dimensiones! Ahora bien si vas a hacerlo por esta vía tal función debe ser revisada. Teóricamente es como dices: Sqrt((x2-x1)^2 + (y2-y1)^2)) pero... en el mundo de las computadoras donde aplica la aritemética de punto flotante las cosas deben encararse un pelín diferente. Tanto para números pequeños como grandes esa fórmula dará underflow y/o overflow respectivamente. En su lugar se emplea la función Hypot, cuya implementación previene ese problema. Está demás decir que la mayoría de los lenguajes ya cuentan con esta función implementada. Ahora bien, tengo entendido que lo ideal sería que emplearas el desarrollo por medio de la geometría esférica (una geometría NO euclideana). Desconozco si es que el desarrollo propuesto por Neftali y el que te recomendaron que revises en el link con código en PHP aplica esto. Lo que si me permito hacer un buen llamado de atención. Existen varios sistemas de coordenadas... tienes las geodésicas (como Gauss Kruger), y las geográficas (Longitud/Latitud). Ahora bien... Hay diferentes sistemas de medición... y de donde ponen el punto de origen... Un sistema pone el 0 en UTM, mientras que otros se manejan con el falso este y falso sur... Es decir no cuentan con S, O. Simplemente tienen N y E. En diferentes partes del mundo emplean diferentes sistemas. ¡Yo que vos acudo a un agrimensor! Saludos, |
#7
|
||||
|
||||
Perdón por colocar código Delphi.
Ya me ha pasado más de una vez, que no me fijo en el título del foro.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
El codigo que tradujo escafandra funciona perfectamente, gracias por la ayuda!.
Ahora lo que me preocupa es que he probado el resultado y existe diferencia con respecto a otros calculos. Por ejemplo utilizando esta formula en excel me da 304.306 km: =ACOS((SENO(3.1415926*Latitud/180)*SENO(3.1415926*Latitud2/180)+COS(3.1415926*Latitud/180)*COS(3.1415926*Latitud2/180)*COS((Longitud-Longitud2)*3.1415926/180)))*180/3.1415926*1.852*60 con el codigo c++ me da:299.91 |
#9
|
||||
|
||||
La única diferencia entre los dos cálculos es el radio terrestre. Dado que la Tierra no es una esfera perfecta, según donde te muevas el radio es distinto.
En el método que expuso Neftali se considera el radio medio como R = 6.378.137 metros En el segundo método R = 6.366,707 Km (180/M_PI*1.852*60) En general se considera el radio R = 6.371Km. Si te interesa una traducción a C del método que expones para Excel, esta sería la traducción: Código PHP:
Saludos. |
#10
|
|||
|
|||
Ustedes son lo máximo en este foro!!!, gracias por la ayuda!.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Calcular kms entre 2 puntos google | toni.vi | Internet | 1 | 02-03-2012 13:10:16 |
Ángulo entre dos puntos | kotai | Varios | 6 | 02-10-2008 17:52:37 |
Distancia kilométrica entre dos ciudades | ElDuc | Varios | 5 | 25-07-2008 21:39:21 |
Como puedo medir la distancia de dos puntos (pixeles) ? | JuanErasmo | Gráficos | 1 | 14-12-2007 00:54:35 |
Distancia entre palabras (Algoritmo de Levenshtein) | Héctor Randolph | Trucos | 4 | 27-07-2007 22:28:34 |
|