JavaScript - Ayuda como usar más de 8 Waypoints API Google Maps

   
Vista:

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por JONATHAN (3 intervenciones) el 17/07/2014 23:06:51
Hola, estoy intentando dibujar una ruta que contiene 96 puntos de coordenadas. lo más exacta posible. El problema es que la versión gratuita está limitada a 10 puntos (Inicio, 8 waypoints y fin).

The Directions API has the following limits in place:

Users of the free API:
2,500 directions requests per 24 hour period.
Up to 8 waypoints allowed in each request. Waypoints are not available for transit directions.
10 requests per second.

He intentado hacerlo de dos formas:

1) Dividiendo los 96 puntos entre 8 pero la ruta no es muy exacta.






2) Con un for modifico la variable request e intento dibujar los primeros 20 puntos (para probar y luego adaptarlo a todos los puntos).

directionsService.route(request, function(response, status) (dos veces)

Tampoco me pasa por todos los puntos:





Mi pregunta es si es posible hacer varios request (10 puntos (Inicio, 8 waypoints y fin)) ya que según las limitaciones del API, es posible realizar 10 request con 8 waypoints por segundo, pero no me funciona.

Muchas gracias por la ayuda, Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por xve (1595 intervenciones) el 18/07/2014 08:41:00
Hola Jonathan, hasta donde yo se, no es posible... no se si hay alguna manera de darle la vuelta, pero yo no la encontré en su día. El cliente termino pagando, pero creo recordar que era una cantidad muy pequeña, casi insignificante.

Siento no poder ser de mas ayuda!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por JONATHAN (3 intervenciones) el 18/07/2014 10:07:44
Hola Xve,

He encontrado un link donde hablan de como usar mas de 8 waypoints, pero no lo tengo del todo claro.

http://www.c-sharpcorner.com/uploadfile/8911c4/how-to-draw-infinite-route-with-more-than-10-locations-on-go/

Muchas gracias por tu ayuda,.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de txema

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por txema (18 intervenciones) el 21/07/2014 15:49:07
Hola JONATHAN:

Lo que te dice xve es lo correcto. Y cito textual desde developers.google.com
El número máximo de hitos permitido es ocho, además del origen y del destino. Los clientes del API de Google Maps for Business pueden utilizar hasta 23 hitos, además del origen y del destino. En las rutas de transporte público no se admiten hitos.

en Servicio de rutas tienes toda la documentación donde verás que utiliza Rutas, Tramos y Pasos.

Respondiendo a tu pregunta ... si es posible hacer varios request (10 puntos (Inicio, 8 waypoints y fin)) ...
La respuesta es si ... PERO

Desde mi experiencia y en un trabajo reciente llegué a:
- Crear una ruta con Inicio, 8 waypoints y fin.
1
function calcRuta() {/*digo */} 
- Recoger los hitos e ir creando etapas
- Llamar a nueva ruta tomando como Origen y Destino el origen y destino de cada etapa. Esto es: Etapa 1:Origen el inicial y Destino el primer hito; Etapa 2: Origen el hito 1º y Destino el hito 2º; ... (function calcTramoRuta(j) { /* Código */ } donde (j) corrresponde al valor desde for que recorre el array de los tramos.

El PERO es que no puedes visualizar la ruta completa sino la general y etapa a etapa.
El trabajo es tedioso y complejo.
No llegué a probar si puedo visualizar uno y otro mapa en la misma página. Con otras experiencias Google Maps en V3 crea problemas de carga del mapa (además de acumular las peticiones del mismo).

La otra solución, que supongo conoces, es crear una polilínea. Claro que aquí no tendremos el detalle de la ruta a seguir (directionsDisplay.setDirections(response)).

De la página que muestras, si te fijas, hace una prolongación de la ruta para llevarla a más de 10 puntos mediante dos arrays.
Dudo que pueda recoger directionsDisplay al completo. Por lo que sería como una polilínea con los Tramos y Pasos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por JONATHAN jonathangarcgarc@gmail.com (3 intervenciones) el 26/07/2014 20:38:26
Hola txema,

Antes que nada muchas gracias por la ayuda y disculpa que no contestara antes.

Al final lo he hecho pero seleccionando 8 puntos de manera que quede lo mas preciso posible para esta ruta en concreto ya que no me ha funcionado haciendo varios request. Después de intentar buscar una solución en la web por varios días no encontré nada que me ayudara con este problema, supongo que al ser de pago no es sencillo que pueda funcionar gratis de esta forma.

Gracias y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de txema

Ayuda como usar más de 8 Waypoints API Google Maps

Publicado por txema (18 intervenciones) el 26/07/2014 21:31:57
Hola JONATHAN

Es cierto que no encontrarás nada en la web. Y lo digo por experiencia. Los desarrollos complejos suelen ser muy específicos a lo que estemos haciendo.

Ignoro si lo que haces es construir una ruta a partir de un mapa en blanco (suma de direcciones consecuticas a partir de un origen y destino) o si en el código de la página (sea mediante JSON o array) construyes la ruta. De cualquier modo, repasando los valores de request (seguro que lo sabes pero refrescamos los conceptos hacia terceros) podemos construir la ruta acercándonos a lo que queramos:
1
2
3
4
5
6
7
8
9
10
11
var request = {
    origin: origen,  // lo recogemos de una variable declarada
    destination: destino,  // lo recogemos de una variable declarada
    waypoints: waypoints,  // array que contiene los puntos intermedios
    travelMode: google.maps.TravelMode.DRIVING,  // En este caso, en coche
    unitSystem: google.maps.UnitSystem.METRIC,  // En contraposición al sistema IMPERIAL
    optimizeWaypoints: true, // optimiza los waypoints de la ruta hacia el camino más corto
    provideRouteAlternatives: true, // genera rutas alternatinas
    avoidHighways: false,  // contrapuesto a true que evita autovías 
    avoidTolls: false  //  contrapuesto a true que evita peajes 
  };

Tirando de imaginación (como me tocó hacer en su momento), y siendo que en waypoints recojo en array los puntos intermedios, podemos generar las etapas, como te señalaba más arriba en mi entrada anterior).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar