Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Diseño web (http://www.forosdelweb.com/f91/)
-   -   Distancia entre dos puntos (dados por longitud y latitud) (http://www.forosdelweb.com/f91/distancia-entre-dos-puntos-dados-por-longitud-latitud-514993/)

chefnelone 27/08/2007 06:05

Distancia entre dos puntos (dados por longitud y latitud)
 
Hola a todos
No se donde dejar este tema porque no encaja ningun tema
pero al igual alguien me puede ayudar

Como se hace para medir la distancia en metros o kilomentros entre dos puntos determinados por longintud y latitud

supongamos estos dos puntos

punto 1: LATITUD 18.33616 LONGITUD -66.472087

punto 2: LATITUD 40.922326 LONGITUD -72.637078

cuantos metros o km hay entre ellos?

gracias
saludos

bookmaster 27/08/2007 12:21

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Supongo que podria hacer lo siguiente.

Calculas la diferencia de distancia que hay de la siguiente manera:

(P2 - P1)*L=D

Traducción:
P1 = Punto 1
P2 = Punto 2
L = Longitud
D = Distancia

Tendrias que saber cuando vale L para poder realizar los calculos, por ejemplo,supongamos que 1 punto de Longitud son 100 Metros la formula seria
(P2 - P1) * 100 = Distancia entre un punto y el otro

Ahora el inconveniente que veo es el controlar los puntos negativos, ya que podria ser que de dieran distancias equivocadas.

Daniel Ulczyk 27/08/2007 13:15

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Cita:

Iniciado por chefnelone (Mensaje 2110772)

Como se hace para medir la distancia en metros o kilomentros entre dos puntos determinados por longintud y latitud

Entiendo que basando los cálculos en trigonometría esférica. En esta página tenés una buena explicación (en inglés).
Para resolverlo mediante herramientas online, tenés disponible el sitio de:
Arid Land Agricultural Research Center
Geody
Northern Arizona University

:adios:

Kelpie 28/08/2007 06:46

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Distancias I

La latitud y la longitud son distancias en grados al meridiano 0 y al ecuador.
La latitud (distancia al ecuador) puede ser Norte o Sur, pero siempre entre 0 y 90º

La longitud (distancia al meridiano 0) es más complicada y se puede expresar de varias maneras:
- Especificando Este u Oeste, en cuyo caso estará entre 0 y 180
- Empleando positivos para el Este y negativos para el Oeste, en cuyo caso estará entre -180 y 180
- Empleando la circunferencia completa, en cuyo caso estará entre 0 y 360, y siempre son Este

Dependiendo de cómo lo expreses lo harás de una manera u otra.

En todos los casos llegaras a representar el punto en un sistema cartesiano, definido por sus distancias en Km al eje X (Ecuador) y al eje Y (Meridiano 0).

A partir de ese momento, la distancia entre ellos es trivial:

D=SQR((X2-X1)^2+(Y2-Y1)^2), siendo

D: La distancia a calcular
X1-Y1: coordenadas del punto 1
X2-Y2: coordenadas del punto 2


Sigue...

Kelpie 28/08/2007 06:58

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Distancias II

Tomando el segundo caso de definición de la longitud, una manera de llegar a las coordenadas cartesianas de tus puntos sería:

La latitud: Suponemos ambos en latitud norte... (Para una latitud sur nos bastaría con cambiar el signo del resultado)

Podemos sacarla con una simple regla de tres:

Si 90º es 10000 Km (Más o menos un cuadrante terrestre)
18,33616º será ?

? será 18,33616x10000/90
? será 2.037,3511 Km

Y para 40,922326 obtenemos 4.546,9251 Km

La longitud: El proceso es similar. Cada grado de longitud nos da (40.000/360) unos 111,1111 Km...

Para -66.472087º obtenemos -7.385,7873 Km
Para -72.637078º obtenemos -8.070,7863 Km

Con todo ello, ya podemos expresar nuestros puntos en formato cartesiano:

P1=(-7385.7873,2037.3511)
P2=(-8070.7863,4546.9251)

Sigue...

Kelpie 28/08/2007 07:07

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Distancias III

Y ahora estamos en disposición de aplicar la fórmula:

P1=(-7385.7873,2037.3511)
P2=(-8070.7863,4546.9251)

X2-X1=-8070.7863 - (-7385.7873)=-684,999
Y2-Y1=2037.3511-4546.9251 = -2509,574

Elevando al cuadrado:

(X2-X1)^2= -684,999^2 = 469223,63
(Y2-Y1)^2= -2509,574^2 = 6297961,6

Sumamos:

469223,63+6297961,6=6767185,2

Y sacamos la raiz cuadrada:

SQR(6767185,2)=2601,381402

Luego a los puntos P1 y P2 les separan 2.601,381402 Km de vellón


Si no me he equivocado, que lo he escrito del tirón...

Kelpie 28/08/2007 07:17

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
Distancias y IV

En el cálculo se asume que la tierra es esférica (que no lo es) y con un radio aproximado de 6.366,2 Km.

El radio equivolumétrico de la tierra (el de una esfera que tuviera el mismo volumen que el planeta) viene andando por los 6.371 Km. Con ese radio, el cuadrante terrestre mediría 40.030 Km, y el avance por grado sería de 111,195 Km..

Todo ello para poner los valores en los cálculos que más le gusten a cada uno...

FIN

Pd. Vaya pedazo de rollo que he metido, pero solo con los conceptos claros se puede desarrollar un programa que las calcule...
Si tienes problemas con la programación mándame un mensajillo y te posteo el código..

Saludos

chefnelone 28/08/2007 12:08

Re: Distancia entre dos puntos (dados por longitud y latitud)
 
aqui encontre justo lo que estaba buscando y listo en php para usarlo modificandolo un poco

The above formula as a function:
< ?php

function getDistance($lat1, $long1, $lat2, $long2)
{
//$earth = 6371; //km change accordingly
$earth = 3960; //miles

//Point 1 cords
$lat1 = deg2rad($lat1);
$long1= deg2rad($long1);

//Point 2 cords
$lat2 = deg2rad($lat2);
$long2= deg2rad($long2);

//Haversine Formula
$dlong=$long2-$long1;
$dlat=$lat2-$lat1;

$sinlat=sin($dlat/2);
$sinlong=sin($dlong/2);

$a=($sinlat*$sinlat)+cos($lat1)*cos($lat2)*($sinlo ng*$sinlong);

$c=2*asin(min(1,sqrt($a)));

$d=round($earth*$c);

return $d;
}

// pull cords out of database

echo "Distance in miles from CB2 to SS4: ".getDistance(52.163, 0.133, 51.594, 0.715);
?>


La zona horaria es GMT -6. Ahora son las 11:46.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.