Hola, buenos días a todos,
tengo que construir un generador de rutas que utilice el api de google maps para una aplicación de escritorio que estamos desarrollando, tenemos una serie de puntos en una ciudad y queremos conseguir la ruta más corta (por distancia) para pasar por todos estos puntos.
En principio no interesa mostrar los puntos en un mapa, simplemente quiero el orden en el que hay que pasar por cada uno de los puntos.
He intentado varias soluciones y , aunque soy capaz de extraer la distancia de un único punto, a la hora de hacer consultas sucesivas al servicio de google no me devuelven ninguna información.
Voy a intentar explicar como lo hago:
- He creado una página con un par de funciones javascript que utilizo para declarar un map de google, no muestro el map, solamente la distancia en una etiqueta.
- En la aplicación, un WebBrowser oculto, para conseguir la distancia le digo que vaya a la url de mi página, pasandole por parámetro en la url las direcciones de dos puntos.
- Cuando se carga la distancia en la página le digo al webbrowser que cambie el titulo, de esta forma por medio de un evento puedo recoger la distancia en una variable en mi aplicación de escritorio, a partir de aquí ya puedo jugar con ella (en mi caso se va a BBDD)
Este proceso se sigue cada vez que se da de alta una nueva dirección, y funciona correctamente,la idea es tener almacenada la distancia de todos los puntos al orígen (que es siempre el mismo) de forma que de inicio ya se conoce cuál es el primer punto de la ruta.
El problema viene cuando quiero calcular la ruta, intento seguir el mismo método que antes pero dentro de un bucle, calculando la distancia del primer punto de la ruta (que ya tenemos) a todos los demás, para obtener el siguiente punto.
Sé que para el cálculo de la ruta en sí hay fórmulas y algoritmos más eficientes, pero de momento sólo necesitamos una cosa muy muy básica.
El problema está que este bucle (intento crear una matriz de distancias) se recorre perfectamente, pero sólo obtengo la distancia a uno de los puntos.
Mi sospecha es que el WebBrowser va a su bola, Google a la suya y la aplicación a la suya.
¿Alguien tiene alguna idea de cómo afrontar este problema? Aunque requiera descartar mi idea por completo, quizás hay algún servicio o alternativa mejor que Google ya que su API está pensada para entornos Web y ni siquiera para algo como lo que yo quiero hacer (de hecho lo que hago infringe los términos de Google ya que es obligatorio que exista un mapa).
Perdón por la parrafada, muchas gracias por vuestra atención.