entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Caminos mínimos ordenados de un mapa

Hola, tengo pensado hacer una aplicación web dinámica donde yo guarde la localización de un usuario y en mi base de datos tenga la localización de otros N usuarios en diferentes lugares del mapa (un país) y cuando este seleccione por ejemplo buscar edad > 15 entonces le salgan la lista de los usuarios de edad > 15 pero en orden de los que más cerca vivan de él hasta que el usuario último sea el que más lejano se encuentre en el mapa.
Alguien podría decirme si el api de google maps de alguna forma me da esta funcionalidad o algo parecido que yo pueda utilizar para mi proyecto. Así como a que bibliografía o Apis debería dirigirme para implementar estos algoritmos?
Saludos Dairon

0voto

Leonardo-Tadei comentado

Querés ordenar las distancias como si fuera en línea recta sobre un mapa o querés ordenar las distancias para recorridos en auto o a pie?
En línea recta los cálculos son simples y no hace falta ninguna API, pero sí te haría falta para recorridos en auto a pie, porque los trayectos pueden dar rodeos que terminen alterando el orden...

0voto

dairon comentado

Estuve pensando en declarar un nodo padre como la capital del pais en valor 0km y a partir de ahi ir asignando valor de distancia a cada lugar donde viva un usuario de acorde a la distancia de la capital a donde el viva y entonces cuando haga las busqueda sacar primero la consulta que haga el usuario que lanza la petición y luego hacer unas rectas o algo de matemática básica para asignarle el id de los usuarios y la distancia de cada uno hacia el que hace la petición, entonces ir sacando los menores o iguales y mostrandolo, es una idea previa. Pero me gustaría saber si google en sus api me facilita esto.
Saludos Maestro Leonardo-Tadei

0voto

Leonardo-Tadei comentado

Hola Dairón!

gracias por la aclaración, pero no respondés a mi duda: distancia en línea recta o en automóvil o a pie???

0voto

dairon comentado

debe ser en automóvil porque son para muchos km

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola Dairón,

para saber la distancia en automóvil (u otro medio de locomoción) así como la duración del viaje, la API de Google Maps tiene una "matriz de distancia" que devuelve estos resultados:

https://developers.google.com/maps/documentation/distancematrix/?hl=es

Como hay un límite de consultas y de cantidad de puntos, si tu aplicación la va a superar, tenés que implementar algún mecanismo que cachee los datos para no volver a preguntar cada vez datos conocidos, sobre todo si son ubicaciones fijas.

Si la distancia hubiese sido en línea recta, podrías calcularla directamente con los valores de latitud y longitud de cada ubicación con dos o res cálculos simples sin necesidad de la API, pero esto te daría un error grande comparado con un recorrido en auto en algunos casos: por ejemplo, dos personas que vivan una frente a otra cruzando un río; el camino en línea recta es corto, pero en auto, implica ir hasta el puente más cercano y luego volver por la otra orilla, lo que es un recorrido mucho más largo.

Saludos cordiales!

0voto

dairon comentado

Gracias maestro @Leonardo-Tadei, entré al link y me da error

That’s an error.
Your client does not have permission to get URL
/maps/documentation/distancematrix/ from this server. That’s all we
know.

Tendré que esperar que le quiten el bloqueo a mi pais para poder acceder al API de Google, pero era la información que necesitaba saber, he de hacerlo una vez que pueda.
Saludos Dairon

0voto

Leonardo-Tadei comentado

Cómo estás obteniendo actualmente las posiciones? Te devuelve la API de Google Maps la latitud y longitud de las ubicaciones que pasás o las obtenés con la API de geolocación de HTML directamente?

0voto

dairon comentado

Ni idea maestro, :) lo sabré cuando lo comience a hacer, es que tengo buena imaginación e ideas para hacer proyectos completos, tengo 7 proyectos en mente. Entonces antes de comenzar a hacerlos o cuando los estoy planeando y diseñando en hojas escribo las tecnologías, lenguajes y apis que debo estudiar para llevarlos a la realidad entonces busco información y guardo los link o los documentos relacionados con lo que tendré que aprender. exactamente ahora estoy estudiando ECMA-262 para terminar de comprender el javaScript.
Saludos Dairon

0voto

white comentado

Hola @dairon, fijate en el enlace que dejo @Leonardo, el error que muestras es por una petición mal enviada, debes especificar la salida. un ejemplo sería:

http://maps.googleapis.com/maps/api/distancematrix/json?origins=La+Habana,+Cuba&destinations=Santiago+d+Cuba&mode=driving&language=es-ES&sensor=false

0voto

dairon comentado

oh @white muchas gracías, que estraño si entro a esta direccion http://maps.googleapis.com/ me sale error porque mi pais esta en la lista negra sin embargo si entro directo a la dirección que me das si puedo ver los resultados.

0voto

Leonardo-Tadei comentado

Si no tenés todavía tecnologías decididas, antes de "casarte" con Google te sugiero mirar OpenStreeMap

www.openstreetmap.org

Es un mapa hecho por la gente, por lo que se puede mejorar por cualquiera agregando nombres de calles y demás cosas que hacen mejor a un mapa.

0voto

dairon comentado

siempre me gusta mirar varias opciones y estudiarlas para poder utilizarlas con vista futuristas

0voto

dairon comentado

Maestro Tadei ahora mismo lo estoy mirando y tiene buena pinta lo estudiaré más a fondo.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta