Obliczanie podsumowania trasy

Aby używać funkcji Wyszukiwanie tekstowe (nowe) lub Wyszukiwanie w pobliżu (nowe) do obliczania czasu podróży i odległości do każdego miejsca w odpowiedzi:

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

  2. Uwzględnij routingSummaries w masce pola, aby odpowiedź zawierała tablicę routingSummaries. Ta tablica zawiera czas trwania 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 na wyszukiwanie tekstowe (nowe):

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 odpowiedniej lokalizacji tablicy jako 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 miejsca jest niedostępny, wpis tablicy jest pusty.

Ten przykład oblicza czas trwania i odległość od punktu początkowego trasy do każdego miejsca, dlatego pole routingSummaries.legs w odpowiedzi zawiera pojedynczy obiekt Leg, który zawiera pola 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 wynika, że czas trwania 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 na wyszukiwanie w pobliżu. W tym przykładzie wyszukiwane są restauracje w Sydney w Australii, a ograniczenie lokalizacji i punkt początkowy trasy są ustawione 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 miejsca rozpoczęcia trasy. Możesz na przykład ustawić locationRestriction na centrum Sydney, aby wyniki wyszukiwania były ukierunkowane na ten obszar. Następnie ustawiasz punkt początkowy trasy na współrzędne swojego domu, czyli na inną lokalizację w obrębie okręgu wyszukiwania. Żądanie powoduje, że wyniki wyszukiwania są ograniczone do okręgu, a podsumowania tras są obliczane na podstawie lokalizacji Twojego domu.

Określanie opcji podróży

Domyślnie czas trwania i odległość są obliczane dla samochodu. Możesz jednak kontrolować typ pojazdu i inne opcje w wyszukiwarce.

  • 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 routingu na TRAFFIC_UNAWARE (domyślnie), TRAFFIC_AWARE lub TRAFFIC_AWARE_OPTIMAL. Każda opcja zapewnia inny poziom jakości danych i opóźnienia. Więcej informacji znajdziesz w artykule Określanie, czy i jak uwzględniać dane o natężeniu ruchu.

    Właściwość routingParameters.routingPreference wpływa na wskazówki dojazdu zawarte w polu Podgląd (wersja przed GA) directionsUri, ponieważ Mapy Google wyświetlają opcje ruchu po otwarciu linku.

  • 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 kolejnym przykładzie określasz środek transportu jako DRIVE i unikasz 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 kliknij ikonę interfejsu API api.

  2. Opcjonalnie możesz edytować parametry żądania.

  3. Kliknij przycisk Wykonaj. W oknie wybierz konto, którego chcesz użyć do wysłania prośby.

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