Oblicz podsumowanie tras

Aby użyć wyszukiwania tekstowego (nowej funkcji) lub wyszukiwania w pobliżu (nowej funkcji) do obliczenia czasu podróży i odległości do każdego miejsca w odpowiedzi:

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

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

Korzystanie z wyszukiwania tekstowego (nowa funkcja)

W następującej prośbie obliczasz czas trwania podróży i odległość do każdego miejsca w odpowiedzi wyszukiwania tekstowego (nowej):

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 trwania i odległość do pokonania do każdego miejsca:

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

Każdy element w tablicy routingSummaries znajduje się w odpowiednim miejscu w tablicy places. Oznacza to, że element routingSummaries[0] odpowiada miejscu places[0].

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

W tym przykładzie obliczamy czas i odległość od punktu początkowego do poszczególnych miejsc, dlatego pole routingSummaries.legs w odpowiedzi zawiera pojedynczy obiekt Leg, który zawiera wartości durationdistanceMeters od punktu początkowego do miejsca docelowego.

{
  "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 i odległość od punktu początkowego do pierwszego miejsca w wynikach to odpowiednio 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. Ograniczenie lokalizacji i miejsce docelowe mają te same współrzędne:

  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 źródła routingu. Możesz na przykład ustawić locationRestriction na punkt środkowy w Sydney, aby wyniki wyszukiwania były przybliżone do tego koła. Następnie ustawiasz punkt początkowy nawigacji na współrzędne swojego domu, czyli na inną lokalizację w zakresie koła wyszukiwania. Następnie żądanie kieruje wyniki wyszukiwania do kręgu i oblicza podsumowania tras na podstawie lokalizacji Twojego domu.

Określ opcje podróży

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

  • Użyj parametru routingParameters.travelMode, aby ustawić tryb 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 ma różny poziom jakości danych i opóźnienia. Więcej informacji znajdziesz w artykule Określanie sposobu i czasu uwzględniania danych o ruchu.

    Właściwość routingParameters.routingPreference ma wpływ na wskazówki zawarte w polu directionsUri w sekcji Podgląd (przed GA), ponieważ Mapy Google wyświetlają opcje dotyczące natężenia ruchu po otwarciu linku.

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

W następnym przykładzie określasz środek transportu jako DRIVE i ustawiasz opcję omijania 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'