Combina los resúmenes de rutas con la búsqueda en la ruta

Puedes combinar los cálculos del resumen de rutas con la búsqueda a lo largo de una ruta. En este caso, Text Search (nuevo) devuelve la duración y la distancia del viaje a cada lugar en la respuesta y, luego, desde cada lugar hasta el destino final de la ruta.

Para usar Text Search (nueva) para calcular el resumen de rutas junto con la búsqueda en una ruta, haz lo siguiente:

  1. Usa la API de Routes para calcular una ruta que devuelva una polilínea de ruta en la respuesta.

  2. Usa el parámetro searchAlongRouteParameters.polyline.encodedPolyline para pasar la polilínea de la ruta a Text Search (nueva) y sesgar los resultados de la búsqueda hacia la ruta. Luego, la respuesta contiene lugares que coinciden con los criterios de búsqueda y que también se encuentran cerca de la ruta especificada.

  3. Incluye routingSummaries en la máscara de campo para que la respuesta incluya el array routingSummaries. Este array contiene la duración y la distancia desde el origen de la ruta hasta cada lugar de la respuesta.

El Explorador de APIs te permite realizar solicitudes en tiempo real para que puedas familiarizarte con la API y sus opciones:

De forma predeterminada, Text Search (nuevo) realiza la búsqueda en toda la ruta:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

La respuesta contiene dos arrays: el array places, que contiene los lugares coincidentes, y el array routingSummaries, que contiene la duración y la distancia para viajar a cada lugar:

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   …
  ]
}

Para cada entrada del array legs, Text Search (nuevo) devuelve un tiempo de viaje de dos tramos:

  • El primer tramo contiene la duración y la distancia del viaje desde el origen hasta el lugar. En este ejemplo, la duración y la distancia desde el origen hasta el primer lugar en los resultados son 285 segundos y 1,616 metros.

  • El segundo tramo contiene la duración del viaje y la distancia desde el lugar hasta el destino de la ruta. En este ejemplo, la duración y la distancia son 2,466 segundos y 58,147 metros.

Especifica el origen de la ruta, el medio de transporte y los modificadores de ruta

Puedes modificar el cálculo del resumen de búsqueda y de rutas especificando el origen de la ruta, el medio de transporte, los modificadores de ruta y las preferencias de ruta. Los modificadores de ruta y el medio de transporte funcionan de la misma manera que para calcular los resúmenes de rutas sin especificar una ruta, como se muestra en el tema Especifica opciones de viaje.

De forma predeterminada, el primer tramo de cada resultado contiene la distancia desde el origen definido por la polilínea hasta cada lugar. Sin embargo, puedes anular ese valor predeterminado especificando de forma explícita un origen de enrutamiento en la solicitud. Si se especifica, el primer tramo de todas las respuestas especifica las distancias y la duración desde el origen de ruta especificado, lo que anula el origen de la polilínea.

En el siguiente ejemplo, se especifica un origen de ruta como las coordenadas de San Mateo, California, se indica que se eviten los peajes y se establece la cantidad de resultados en 5:

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food",
    "maxResultCount": 5,
    "searchAlongRouteParameters": {
      "polyline": {
        "encodedPolyline": "ROUTE_POLYLINE"
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": 37.56617,
        "longitude": -122.30870
      },
      "travelMode":"DRIVE",
      "routeModifiers": {
        "avoidTolls": true
      }
    }
  }' \
  -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
  -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
  'https://places.googleapis.com/v1/places:searchText'

En la siguiente imagen, se muestra un mapa que contiene la polilínea de la ruta, el nuevo origen (marcador azul claro) y los lugares de los resultados de la búsqueda (marcadores verdes). Observa cómo todos los resultados se encuentran a lo largo de la ruta, pero después de San Mateo:

Son los resultados de la búsqueda del origen de la actualización.

Pruébalo

El Explorador de APIs te permite realizar solicitudes de ejemplo para que puedas familiarizarte con la API y sus opciones.

  1. Selecciona el ícono de API api en el lado derecho de la página.

  2. De manera opcional, edita los parámetros de la solicitud.

  3. Selecciona el botón Ejecutar. En el cuadro de diálogo, elige la cuenta que quieras usar para realizar la solicitud.

  4. En el panel del Explorador de APIs, selecciona el ícono de pantalla completa fullscreen para expandir la ventana del Explorador de APIs.