Integración Google Geocoding: definiendo la lógica

Clase 34 de 38Curso de Desarrollo de APIs con Sails.js

Resumen

¿Cómo manejar distancias y tiempos de viaje con Yavé y Google Max?

En el mundo de la programación y desarrollo de software, específicamente cuando trabajamos con rutas y mapas, es fundamental gestionar eficientemente las distancias y los tiempos de viaje. A través de una relevante integración con Google Max, aprenderemos cómo utilizar esta poderosa herramienta para calcular estas métricas esenciales. Claro está, necesitarás tener a mano tu propia Yavé para interactuar correctamente con la API y evitar cualquier restricción en el uso.

¿Cómo integrar la librería Google Max en tu proyecto?

Integrar Google Max a tu proyecto es uno de los pasos más cruciales para manejar distancias y tiempos de viaje efectivamente. Aquí te explicamos cómo hacerlo. Primero, asegúrate de contar con tu propia Yavé. Accede al index.html de tu proyecto y añade la librería antes de cerrar la etiqueta <head>. Luego, realiza lo siguiente en tu archivo de código principal:

// Importar la librería
const googleMapsClient = new google.maps.DirectionsService();

¿Cómo calcular distancias y tiempos de viaje entre puntos de parada?

Al disponer de puntos de parada predeterminados, es necesario calcular las distancias y tiempos de viaje entre estos. Utilizaremos un método que maneja toda la lógica necesaria para ello.

  1. Preparar puntos intermedios: Extrae solo los puntos intermedios, excluyendo el inicio y final, ya que estos los procesaremos de otro modo.

    const wayPoints = routeWayPoints.slice(1, -1).map(wp => ({
      location: wp,
      stopover: true,
    }));
    
  2. Crear la solicitud al servicio de direcciones:

    • Origen y destino: Obtén el primero y el último punto respectivamente.
    • Modo de viaje: Establece que será conducido.
    const request = {
      origin: wayPoints[0],
      destination: wayPoints[wayPoints.length - 1],
      waypoints: wayPoints,
      travelMode: 'DRIVING',
      drivingOptions: {
        departureTime: new Date(),
      },
      trafficModel: 'BEST_GUESS',
      unitSystem: google.maps.UnitSystem.METRIC,
    };
    
  3. Llamar al API de Google Max para calcular distancias: Utiliza el objeto DirectionsService para enviar la solicitud preparada:

    directionsService.route(request, (response, status) => {
      if (status === 'OK') {
        // Procesar resultados obtenidos
        this.routeData = response.routes[0].legs;
      }
    });
    

¿Cómo manejar y procesar las respuestas de la API?

El API de Google Max no solo calcula los tiempos y distancias, sino que devuelve rutas alternativas según el tráfico y otros factores.

  • Extraer información relevante: Almacena y procesa las distancias y duraciones extraídas de cada sección del trayecto.
    this.routeData.forEach((leg, index) => {
      const segment = {
        startAddress: leg.start_address,
        endAddress: leg.end_address,
        distance: leg.distance.text,
        duration: leg.duration.text,
      };
      console.log(segment);
    });
    

En resumen, al combinar estas estrategias de integración y procesamiento, se alcanza una gestión precisa y eficiente de rutas gracias a la funcionalidad avanzada de Google Max. Con este conocimiento, estás mejor equipado para optimizar cualquier aplicación que dependa de mapas y rutas. ¡Sigue explorando el fascinante mundo del desarrollo y la programación!