Obliczanie podsumowania trasy

Aby obliczyć czas podróży i odległość do każdego miejsca w odpowiedzi za pomocą wyszukiwania tekstowego (nowego) lub wyszukiwania w pobliżu (nowego):

  1. W żądaniu przekaż parametr routingParameters.origin, aby określić współrzędne geograficzne szerokości i długości geograficznej punktu początkowego trasy. Ten parametr jest wymagany do obliczenia czasu i odległości do każdego miejsca w odpowiedzi.

  2. Dodaj routingSummaries do maski pola, aby odpowiedź zawierała tablicę routingSummaries. Ta tablica zawiera czas i odległość od punktu początkowego trasy do każdego miejsca w odpowiedzi.

Narzędzie APIs Explorer umożliwia wysyłanie żądań w czasie rzeczywistym, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami:

W tym żądaniu obliczasz czas podróży i odległość do każdego miejsca w odpowiedzi wyszukiwania tekstowego (nowego):

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'

Odpowiedź zawiera 2 tablice JSON: tablica places zawiera pasujące miejsca, a tablica routingSummaries zawiera czas i odległość do każdego miejsca:

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

Każdy element w tablicy routingSummaries znajduje się w tej samej lokalizacji co miejsce w tablicy places. Oznacza to, że element w routingSummaries[0] odpowiada miejscu w places[0].

Długość tablicy routingSummaries jest taka sama jak długość tablicy places. Jeśli routingSummary dla danego miejsca jest niedostępny, wpis w tablicy jest pusty.

Ponieważ w tym przykładzie obliczany jest czas i odległość od punktu początkowego trasy do każdego miejsca, pole routingSummaries.legs w odpowiedzi zawiera pojedynczy obiekt Leg, który zawiera duration i distanceMeters od punktu początkowego trasy do miejsca.

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

Z tego przykładu widać, że czas i odległość od punktu początkowego trasy do pierwszego miejsca w wynikach to 597 sekund i 2607 metrów.

W tym przykładzie obliczasz czas podróży i odległość do każdego miejsca w odpowiedzi wyszukiwania w pobliżu. Ten przykład wyszukuje restauracje w Sydney w Australii i ustawia ograniczenie lokalizacji oraz punkt początkowy trasy na te same współrzędne geograficzne:

  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

Nie musisz używać tych samych współrzędnych dla locationRestriction i punktu początkowego trasy. Możesz na przykład ustawić locationRestriction na środek Sydney, aby wyniki wyszukiwania były bardziej zbliżone do tego okręgu. Następnie ustawisz punkt początkowy trasy na współrzędne swojego domu, czyli na inną lokalizację w okręgu wyszukiwania. Żądanie spowoduje wtedy, że wyniki wyszukiwania będą bardziej zbliżone do okręgu, a podsumowania trasy zostaną obliczone na podstawie lokalizacji Twojego domu.

Określanie opcji podróży

Domyślnie obliczenia czasu i odległości dotyczą samochodu. Możesz jednak kontrolować typ pojazdu i inne opcje w wyszukiwaniu.

  • Użyj parametru routingParameters.travelMode, aby ustawić środek transportu na DRIVE, BICYCLE, WALK, lub TWO_WHEELER. Więcej informacji o tych opcjach znajdziesz w artykule Dostępne typy pojazdów na trasach.

  • Użyj właściwości routingParameters.routingPreference, aby ustawić opcję preferencji trasy na TRAFFIC_UNAWARE (domyślnie), TRAFFIC_AWARE lub TRAFFIC_AWARE_OPTIMAL. Każda opcja ma różne poziomy jakości danych i opóźnienia. Więcej informacji znajdziesz w artykule Określanie, jak i czy uwzględniać dane o ruchu drogowym.

    Właściwość routingParameters.routingPreference wpływa na wskazówki dojazdu zawarte w polu directionsUri w wersji testowej (przed GA), ponieważ Mapy Google wyświetlają opcje ruchu, gdy otwierają link.

  • Użyj właściwości routingParameters.routeModifiers, aby określić avoidTolls, avoidHighways, avoidFerries, i avoidIndoor. Więcej informacji o tych opcjach znajdziesz w artykule Określanie cech trasy, których należy unikać.

W następnym przykładzie określisz środek transportu jako DRIVE i unikniesz autostrad:

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'

Wypróbuj

Narzędzie APIs Explorer umożliwia wysyłanie przykładowych żądań, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami.

  1. Po prawej stronie strony kliknij ikonę interfejsu API api.

  2. Opcjonalnie edytuj parametry żądania.

  3. Kliknij przycisk Wykonaj. W oknie dialogowym wybierz konto, którego chcesz użyć do wysłania żądania.

  4. W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno APIs Explorer.