elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Programar distancia entre dos puntos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programar distancia entre dos puntos  (Leído 4,124 veces)
rr5773

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Programar distancia entre dos puntos
« en: 18 Septiembre 2015, 14:32 pm »

Muy buenas,

tengo un problema que aunque creo que es simple de resolver no logro dar con ello.

Estoy programando la fórmula en línea recta sobre plano (distancia = 100* raiz((lat1-lat2)^2+(lon1-lon2)^2) y para ciertos casos me da una distancia mayor que la distancia por carretera según google maps, lo cual no tiene ningún sentido. Concretamente expongo un ejemplo:

Distancia entre Zamora y Soria según Google maps: 305 km.

Coordenadas de los dos puntos (las he revisado a propósito):

Latitud de Zamora: 41,50368
Longitud de Zamora: -5,743778
Latitud de Soria:41,7636
Longitud de Soria: -2,464921

Distancia según la fórmula anterior: 328 km

¿Podrían ayudarme?

Ya de paso comento que tambieén lo estoy comparando con la fórmula de Haversine y hay casos en los que también dicha fórmula me sale una distancia mayor que la distancia por carretera, e incluso casos en los que la distancia de Haversine es menor que la distancia sobre un plano, cuando debido a la curvatura de la tierra debería de ser mayor.

Muchas gracias de antemano.

Saludos

Mod: Pregunta y contenido del post recuperados de Google Cache.


« Última modificación: 19 Enero 2017, 19:39 pm por el-brujo » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programar distancia entre dos puntos
« Respuesta #1 en: 18 Septiembre 2015, 23:33 pm »

sabes que las coordenadas no son puntos sobre un plano sino grados sobre una esfera... no puedes hacer "linea recta sobre plano" porque es "linea tangente sobre esfera"...

es decir... supongamos distancia entre 2 coordenadas... lat:0º, long 20º y lat 0º, long 40º

según tu metodo



sería


sin embargo, si lo medimos en lat:80º, long:0º y lat 90º, long 80º


claramente tus numero indican que la segunda es más grande... pero si lo vemos en el mapa

la primera


la segunda


e planeta es una esfera por lo que la segunda es más corta realmente que la primera

en tal caso tienes que calcularlo como angulos sobre una esfera


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: .
« Respuesta #2 en: 11 Diciembre 2015, 12:37 pm »

Para el usuario @[brr5773[/b]

Toda información proporcionada es util aunque a ti te resulte tal vez menos util que otra información que hayas encontrado.

Eso no es motivo ni excusa para que hayas dejado tu comentario vacío y quieras que sea eliminado, piensa en el esfuerzo que los demás hayan podido haber invertido para responderte con imágenes y demás datos como en este caso hizo @Engel Lex. No voy a eliminar el post por respeto a eso mismo, de echo te pido que tengas la consideración de enviarme a mi u otro moderador global la pregunta que hiciste (aunque sea solo la pregunta) para volverla a poner donde estaba, ya que ahora nadie entenderá cual es el propósito de este post.

Por favor, ahora que ya lo sabes no hagas esto más (ya que sería motivo de baneo); recuerda que lo que no te sirve a ti, a otro le servirá.

Tema cerrado.

Saludos!
« Última modificación: 31 Enero 2017, 16:18 pm por el-brujo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines