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. Geben Sie den Parameter routingParameters.origin in der Anfrage an, um die Breiten- und Längengradkoordinaten des Startpunkts der Route anzugeben. 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 das routingSummaries-Array enthält. Dieses Array enthält die Dauer und Entfernung vom Startpunkt der Route bis zu jedem Ort in der Antwort.

Mit dem API Explorer können Sie Liveanfragen stellen, um sich mit der API und den API-Optionen vertraut zu machen:

Testen!

Text Search (New) verwenden

In der folgenden Anfrage wird die Fahrtdauer und die Entfernung zu jedem Ort in der Antwort von „Text Search (New)“ berechnet:

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 places-Array enthält die übereinstimmenden Orte und das routingSummaries-Array die Dauer und Entfernung zu jedem Ort:

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

Jedes Element im Array routingSummaries hat dieselbe Arrayposition wie die Position im Array places. Das Element bei routingSummaries[0] entspricht also dem Ort bei places[0].

Die Arraylänge von routingSummaries ist gleich der Arraylä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 vom Startpunkt des Routings bis zu jedem Ort berechnet wird, enthält das routingSummaries.legs-Feld in der Antwort ein einzelnes Leg-Objekt mit den duration- und distanceMeters-Werten vom Startpunkt des Routings bis 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
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   …
  ]
}

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 die 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 Startpunkt für die Routenberechnung verwenden. Sie legen beispielsweise den locationRestriction auf den Mittelpunkt von Sydney fest, um die Suchergebnisse auf diesen Kreis auszurichten. Sie legen jedoch den Startpunkt der Routenführung auf die Koordinaten Ihres Hauses fest, also auf einen anderen Ort innerhalb des Suchkreises. Die Suchergebnisse werden dann auf den Kreis ausgerichtet und die Routenzusammenfassungen werden basierend auf dem Standort Ihres Zuhauses berechnet.

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 Transportmodus auf DRIVE, BICYCLE, WALK oder TWO_WHEELER festzulegen. Weitere Informationen zu diesen Optionen finden Sie unter Verfügbare Fahrzeugtypen für Routen.

  • Verwenden Sie das Attribut routingParameters.routingPreference, um die Routingeinstellung auf TRAFFIC_UNAWARE (Standard), TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL festzulegen. Jede Option hat unterschiedliche Datenqualität und Latenz. Weitere Informationen finden Sie unter Festlegen, wie und ob Besucherdaten einbezogen werden sollen.

    Die Property routingParameters.routingPreference wirkt sich auf die Wegbeschreibungen im Feld „Vorabversion (Pre-GA)“ directionsUri aus, da Google Maps Verkehrsoptionen anzeigt, wenn der Link geöffnet wird.

  • Verwenden Sie das Attribut routingParameters.routeModifiers, um avoidTolls, avoidHighways, avoidFerries und avoidIndoor anzugeben. Weitere Informationen zu diesen Optionen finden Sie unter Routenelemente angeben, die vermieden werden sollen.

Im folgenden Beispiel geben Sie den Verkehrsmitteltyp als DRIVE und an, dass Autobahnen vermieden werden sollen:

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'