Zusammenfassung des Routings berechnen

So berechnen Sie mit Text Search (New) oder Nearby Search (New) die Fahrtdauer und Entfernung zu jedem Ort in der Antwort:

  1. Übergeben Sie den Parameter routingParameters.origin in der Anfrage, um die Breiten- und Längengrad des Ausgangspunkts der Route. Dieser Parameter ist erforderlich, um die Dauer und Entfernung zu jedem Ort in der Antwort zu berechnen.

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

Text Search (New) verwenden

In der folgenden Anfrage berechnen Sie die Reisedauer und Entfernung zu den einzelnen in die „Text Search (New)“-Antwort einfügen:

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -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 JSON-Arrays: Das Array places enthält die übereinstimmenden Places und das routingSummaries-Array mit der Dauer und Entfernung zu jedem Ort reisen:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      "legs": [
        object (Leg)
      ]
    }
  ]
}

Jedes Element im routingSummaries-Array befindet sich im entsprechenden Array. location als Ort im places-Array. Das heißt, das Element bei routingSummaries[0] entspricht dem Ort unter places[0].

Die Array-Länge von routingSummaries entspricht der Array-Länge von places. Wenn routingSummary für einen Ort nicht verfügbar ist, ist der Arrayeintrag leer.

Da in diesem Beispiel die Dauer und Entfernung von der Route berechnet wird, Ursprung jedes Ortes hat, enthält das Feld legs in der Antwort ein einzelnes Leg-Element, Objekt, das die duration und distanceMeters des Routingursprungs enthält zum Ort:

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    …
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ]
    },
   …
  ]
}

In diesem Beispiel sehen Sie, dass die Dauer und Entfernung vom Startpunkt der Route zum ersten Ort in den Ergebnissen 597 Sekunden und 2.607 Meter beträgt.

In diesem Beispiel berechnen Sie die Fahrtdauer und Entfernung zu jedem Ort in der Antwort der Nearby Search. In diesem Beispiel wird nach Restaurants in Sydney, Australien, gesucht. Die Standortbeschränkung und der Startpunkt der Route werden auf dieselben Breiten- und Längengradkoordinaten festgelegt:

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

Sie müssen nicht dieselben Koordinaten für locationRestriction und den für den Routenausgangspunkt. Sie legen beispielsweise den locationRestriction auf den Mittelpunkt von Sydney fest, um die Suchergebnisse auf diesen Kreis auszurichten. Dann legen Sie den Wert Routenweg zu den Koordinaten Ihres Hauses, d. h. zu einem anderen Ort im Suchkreis angezeigt. Die Anfrage gewichtet die Suchergebnisse dann und berechnet die Routenzusammenfassungen basierend auf dem Standort Ihres .

Mobilitätsoptionen angeben

Standardmäßig werden Dauer und Entfernung für ein Auto berechnet. Sie können jedoch den Fahrzeugtyp und andere Optionen in der Suche festlegen.

  • Verwenden Sie den Parameter routingParameters.travelMode, um den Modus Verkehrsmittel nach DRIVE, BICYCLE, WALK oder TWO_WHEELER Weitere Informationen zu diesen Optionen finden Sie unter Verfügbare Fahrzeugtypen für Routen.

  • Mit dem Attribut routingParameters.routingPreference die Weiterleitung festlegen Einstellungsoption auf TRAFFIC_UNAWARE (Standardeinstellung), TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL. Jede Option hat ein unterschiedliches Maß an Datenqualität und Latenz. Weitere Informationen finden Sie unter Festlegen, wie und ob Besucherdaten einbezogen werden sollen.
  • Mit dem Attribut routingParameters.routeModifiers geben Sie Folgendes an: avoidTolls, avoidHighways, avoidFerries und avoidIndoor. Weitere Informationen zu diesen Optionen finden Sie unter Routenelemente angeben, die vermieden werden sollen.

Im nächsten Beispiel geben Sie die Mobilitätsform als DRIVE an und vermeiden Autobahnen:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": 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'