Combina los resúmenes de planificación de ruta con la búsqueda en la ruta

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

Para usar Text Search (nueva) para calcular el resumen de enrutamiento junto con la búsqueda a lo largo de 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 el polilínea de la ruta a la Búsqueda de texto (nueva) para sesgar los resultados de la búsqueda a 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 planificación de ruta hasta cada lugar de la respuesta.

De forma predeterminada, la Búsqueda de texto (nueva) realiza la búsqueda a lo largo de 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 que coinciden 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, la Búsqueda de texto (nueva) muestra un tiempo de viaje de dos tramos:

  • El primer tramo contiene la duración del viaje y la distancia 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 de 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 de 2,466 segundos y 58,147 metros.

Especifica el origen de enrutamiento, el modo de viaje y los modificadores de ruta

Para modificar el cálculo del resumen de búsqueda y enrutamiento, especifica el origen del enrutamiento, el modo de viaje, los modificadores de ruta y las preferencias de enrutamiento. Los modificadores de modo de viaje y ruta funcionan de la misma manera que para calcular resúmenes de enrutamiento 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 del origen que define el polilinea a cada lugar. Sin embargo, puedes anular ese valor predeterminado si especificas de forma explícita un origen de enrutamiento en la solicitud. Si se especifica, la primera etapa de todas las respuestas especifica las distancias y la duración desde el origen de planificación de ruta especificado, anulando el origen del polilínea.

En el siguiente ejemplo, especificas un origen de planificación de ruta como las coordenadas de San Mateo, California, especificas que quieres evitar peajes y estableces 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 (pin azul claro) y los lugares de los resultados de la búsqueda (pins verdes). Observa cómo todos los resultados se encuentran a lo largo de la ruta, pero después de San Mateo:

Resultados de la búsqueda del origen de la actualización.