Zusammenfassungen von Routen mit der Funktion „Entlang der Route suchen“ kombinieren

Sie können Berechnungen der Routenübersicht mit der Suche entlang einer Route kombinieren. In diesem Fall gibt Text Search (New) die Fahrtdauer und Entfernung zu jedem Ort in der Antwort und dann von jedem Ort zum Endziel der Route zurück.

So berechnen Sie mit der Funktion „Text Search (New)“ die Routenübersicht und suchen entlang einer Route:

  1. Verwenden Sie die Routes API, um eine Route zu berechnen, die in der Antwort eine Routenpolylinie zurückgibt.

  2. Verwenden Sie den Parameter searchAlongRouteParameters.polyline.encodedPolyline, um die Polylinie der Route an die Textsuche (neu) zu übergeben, um die Suchergebnisse auf die Route auszurichten. Die Antwort enthält dann Orte, die den Suchkriterien entsprechen und sich in der Nähe der angegebenen Route befinden.

  3. Fügen Sie routingSummaries in die Feldmaske ein, damit die Antwort das routingSummaries-Array enthält. Dieses Array enthält die Dauer und Entfernung vom Startpunkt der Route bis zu jedem Ort in der Antwort.

Standardmäßig wird bei der Textsuche (neu) die gesamte Route durchsucht:

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'

Die Antwort enthält zwei Arrays: das places-Array mit den übereinstimmenden Orten und das routingSummaries-Array mit der Dauer und Entfernung zu jedem Ort:

{
  "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"
    },
   
  ]
}

Für jeden Eintrag im Array legs gibt die Textsuche (neu) die Fahrtzeit für eine Fahrt mit zwei Abschnitten zurück:

  • Der erste Abschnitt enthält die Reisedauer und die Entfernung vom Start- zum Zielort. In diesem Beispiel betragen die Dauer und die Entfernung vom Startpunkt zum ersten Ort in den Ergebnissen 285 Sekunden und 1.616 Meter.

  • Der zweite Abschnitt enthält die Reisedauer und die Entfernung vom Ort zum Ziel der Route. In diesem Beispiel sind die Dauer und die Entfernung 2.466 Sekunden und 58.147 Meter.

Startpunkt, Mobilitätsform und Routenmodi für die Routenbeschreibung angeben

Sie können die Berechnung der Such- und Routenzusammenfassung ändern, indem Sie den Startpunkt, die Mobilitätsform, die Routenmodifikatoren und die Routeneinstellungen angeben. Die Modi für die Fortbewegungsmittel und die Routenmodi funktionieren genauso wie beim Berechnen von Routenzusammenfassungen ohne Angabe einer Route, wie im Abschnitt Reiseoptionen angeben beschrieben.

Standardmäßig enthält der erste Abschnitt jedes Ergebnisses die Entfernung vom durch die Polylinie definierten Startpunkt zu jedem Ort. Sie können diese Standardeinstellung jedoch überschreiben, indem Sie in der Anfrage einen Routing-Ursprung angeben. Falls angegeben, werden im ersten Abschnitt aller Antworten die Entfernungen und die Dauer vom angegebenen Startpunkt der Route angegeben. Der Startpunkt aus der Polylinie wird überschrieben.

Im nächsten Beispiel geben Sie als Startpunkt für die Routenplanung die Koordinaten von San Mateo, CA, an, legen fest, dass Mautgebühren vermieden werden sollen, und legen die Anzahl der Ergebnisse auf 5 fest:

  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'

Das folgende Bild zeigt eine Karte mit der Routenpolylinie, dem neuen Startpunkt (hellblaue Markierung) und den Orten in den Suchergebnissen (grüne Markierungen). Wie Sie sehen, liegen alle Ergebnisse entlang der Route, aber nach San Mateo:

Suchergebnisse aus der Quelle des Updates.