Foros del Web » Programando para Internet » PHP »

Distancia mínima entre un punto y un área en Google Maps

Estas en el tema de Distancia mínima entre un punto y un área en Google Maps en el foro de PHP en Foros del Web. Hola a todos: necesito vuestra ayuda con Google Maps. Concretamente necesito saber cómo obtener la distancia existente desde un determinado punto A y el punto ...
  #1 (permalink)  
Antiguo 12/11/2013, 07:15
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 10 meses
Puntos: 1
Distancia mínima entre un punto y un área en Google Maps

Hola a todos: necesito vuestra ayuda con Google Maps. Concretamente necesito saber cómo obtener la distancia existente desde un determinado punto A y el punto más próximo a dicho punto del área B. En otras palabaras, la distancia mínima entre un área y un punto.

Si me podéis ayudar os lo agradecería enormemente.
__________________
tu outlet online
GolfSencillo
  #2 (permalink)  
Antiguo 12/11/2013, 16:07
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Distancia mínima entre un punto y un área en Google Maps

No voy a meterme en google y hacer una búsqueda , porque seguramente eso lo has hecho ya, verdad?
Así que voy a tirar simplemente de lógica (aunque no puedo asegurarlo).El punto más cercano desde A , a una superficie B (que entiendo que está dada por una secuencia de puntos, Bp[]), debe estar en alguno de los segmentos que parten del punto de Bp[] más cercano a A.
Con lo cual, el problema se reduce a la distancia de un punto a una recta, cosa de la que google sabe mucho.
  #3 (permalink)  
Antiguo 15/11/2013, 10:39
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Cita:
Iniciado por dashtrash Ver Mensaje
No voy a meterme en google y hacer una búsqueda , porque seguramente eso lo has hecho ya, verdad?
Así que voy a tirar simplemente de lógica (aunque no puedo asegurarlo).El punto más cercano desde A , a una superficie B (que entiendo que está dada por una secuencia de puntos, Bp[]), debe estar en alguno de los segmentos que parten del punto de Bp[] más cercano a A.
Con lo cual, el problema se reduce a la distancia de un punto a una recta, cosa de la que google sabe mucho.
Te agradezco tu respuesta pero no tengo claro lo que me quieres decir. Básicamente tienes razón, una vez encontrado el punto más cercano a nuestro punto A la solución es fácil porque en miles de páginas te indica cómo calcular la distancia entre 2 puntos pero ¿Cómo encontramos el punto más cercano del área B al punta A?

Ese es el quiz de la cuestión y si alguien supiera cómo hacerlo me gustaría que me lo indicara.

Muchas gracias.
__________________
tu outlet online
GolfSencillo
  #4 (permalink)  
Antiguo 15/11/2013, 10:42
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Distancia mínima entre un punto y un área en Google Maps

La verdad me he quedado sorprendio, ya que no te explicas, y me suena a divague. Bájalo a tierra. Dinos que estas haciendo y que necesitas hacer o que necesitas que haga tu sitio.

De todas maneras, no se si PHP sea la solución si trabajas con la API 3 de Geocode de GOOGLE.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 15/11/2013, 10:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Cita:
Iniciado por brusjc Ver Mensaje
Hola a todos: necesito vuestra ayuda con Google Maps. Concretamente necesito saber cómo obtener la distancia existente desde un determinado punto A y el punto más próximo a dicho punto del área B. En otras palabaras, la distancia mínima entre un área y un punto.

Si me podéis ayudar os lo agradecería enormemente.
La pregunta es válida: ¿Cómo lo estás haciendo? ¿Es sólo arrays, scripts y demás, o estás usando una base de datos con tablas espaciales?

Poro otro lado, hay mucha información en la web (en su momento yo saqué hasta cómo crear ese tipo de funciones buscando en Google). ¿Has bsucado?
TEn en cuenta que mucho de eso son funciones trigonométricas... no hay otro camino.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 15/11/2013, 13:31
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Cita:
Iniciado por brusjc Ver Mensaje
Te agradezco tu respuesta pero no tengo claro lo que me quieres decir. Básicamente tienes razón, una vez encontrado el punto más cercano a nuestro punto A la solución es fácil porque en miles de páginas te indica cómo calcular la distancia entre 2 puntos pero ¿Cómo encontramos el punto más cercano del área B al punta A?

Ese es el quiz de la cuestión y si alguien supiera cómo hacerlo me gustaría que me lo indicara.

Muchas gracias.
Un momento.Dices que en miles de paginas explica como obtener la distancia entre dos puntos, pero que lo complicado es encontrar el mas cercano? Y no será el más cercano, aquel cuya distancia al otro punto, sea menor?Si dices que ya sabes encontrar la distancia, tu problema es cómo saber cuál es el menor de una lista de números?
  #7 (permalink)  
Antiguo 15/11/2013, 13:41
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Distancia mínima entre un punto y un área en Google Maps

El problema es que tenemos dos formas de ver... según YO... a ver

El punto más cercano con respecto al Mapa o GPS o a la forma de llegar...

O el punto mas cercano en línea recta... habria que definir bien a que se refiere con EL MAS CERCANO... Puede que existan dos farmacias Equidistantes en linea recta, pero una sea mas cercana porque el acceso por las calles es más rápido... por ejemplo...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #8 (permalink)  
Antiguo 15/11/2013, 14:15
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Cita:
Iniciado por loncho_rojas Ver Mensaje
El problema es que tenemos dos formas de ver... según YO... a ver

El punto más cercano con respecto al Mapa o GPS o a la forma de llegar...

O el punto mas cercano en línea recta... habria que definir bien a que se refiere con EL MAS CERCANO... Puede que existan dos farmacias Equidistantes en linea recta, pero una sea mas cercana porque el acceso por las calles es más rápido... por ejemplo...
...si no fuera porque la pregunta es la distancia de un punto a un área.Por qué vamos a suponer que la pregunta es otra?
  #9 (permalink)  
Antiguo 24/11/2013, 15:37
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia (España)
Mensajes: 132
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Parece que la pregunta genera demasiadas incertidumbres y me gustaría centrar el tema. Mi intención es marcar un área (B) en medio del campo, no en la ciudad, y un punto A en medio del campo, no en la ciudad. Lo que quiero hacer es saber la mínima distancia (en línea recta se entiende) entre el punto A y cualquier punto del área B.

No busco que me dé el camino más corto por carretera o similar, ni cruzando por un barrio o por una calle determinada, no. Lo que busco es la mínima distancia, aunque haya que atravesar un río a nado o el mar se encuentre entre ambas posiciones. Todo eso me da igual, solo busco la distancia mínima entre el área y el punto.

Una vez aclarado todo el embrollo que se ha creado os agradezco vuestra ayuda y espero que ahora me podáis ayudar a resolverlo.

Gracias de antemano a todos.
__________________
tu outlet online
GolfSencillo
  #10 (permalink)  
Antiguo 24/11/2013, 16:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Distancia mínima entre un punto y un área en Google Maps

SI lo quieres en Base de Datos, en 15 minutos tienes una respuesta, pero no sé si quieres soluciones de ese tipo.
En BBDD es algo relativamente fácil, teniendo tablas espaciales, con uso de funciones espaciales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 25/11/2013, 16:19
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Distancia mínima entre un punto y un área en Google Maps

Cita:
Iniciado por brusjc Ver Mensaje
Parece que la pregunta genera demasiadas incertidumbres y me gustaría centrar el tema. Mi intención es marcar un área (B) en medio del campo, no en la ciudad, y un punto A en medio del campo, no en la ciudad. Lo que quiero hacer es saber la mínima distancia (en línea recta se entiende) entre el punto A y cualquier punto del área B.
(...)
Si sirve la ayuda, yo partiría de ver la distancia entre dos puntos. ¿Soluciones?:
- Por Google Maps: libraries=geometry
Código Javascript:
Ver original
  1. var París = new google.maps.LatLng(48.856614, 2.352222);
  2. var SanFrancisco = new google.maps.LatLng(37.774929, -122.419416);
  3. var distancia = google.maps.geometry.spherical.computeDistanceBetween(París, SanFrancisco);
  4. alert ('La distancia es: '+ distancia+' m');
- Directamente por la fórmula del Haversine:
Código Javascript:
Ver original
  1. Number.prototype.toRad = function() {
  2.   return this * Math.PI / 180;
  3. }
  4. var lat1 = 48.856614;
  5. var long1 = 2.352222;
  6. var lat2 = 37.774929;
  7. var long2 = -122.419416;
  8. var R = 6371; // Radio medio de la tierra en kilómetros
  9. var dLat = (lat2-lat1).toRad();  // Funciones Javascript en radianes
  10. var dLong = (long2-long1).toRad();
  11. var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
  12.   Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
  13.   Math.sin(dLong/2) * Math.sin(dLong/2);
  14. var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  15. var d = (R * c).toFixed(3); // Distancia en km con tres decimales
  16. alert (d);

Aunque teóricamente ambos consideran la curvatura del planeta Tierra (spherical en Google, y la media -Radio medio de la tierra 6371 kilómetros en el segundo caso)- ), hay una diferencia de 10.030 kms. sobre casi 9.000 kms, (posiblemente por la consideración de la media de la tierra que está entre 6357 kms. en el radio polar y 6371 kms en el radio ecuatorial).

En tu caso (y ahora no te desarrollo código pero sí la idea) lo que se puede hacer es comparar mi punto (digamos que lat1 y long1 con los puntos de tu área.
Hacer que un área (polígono) sea una polilínea (trazado de una serie de puntos)es tan solo la especificación que le dados en google maps. Es cuestión de ir midiendo las distancias con cada punto y compararlas.

Claro está que, siendo la distancia entre a y (polígono) los puntos b, c, d, ... los puntos más cortos, c y d, puede haber un punto más cercado en su trayectoria. Esto creo que es "¿misión imposible?".

Espero que lo consigas. Tiene futuro la idea.

Etiquetas: distancia, google, maps, punto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:42.