Autouzupełnianie (nowość)

Autouzupełnianie (nowa wersja) to usługa internetowa, która zwraca prognozy miejsc i prognozy zapytań w odpowiedzi na żądanie HTTP. W żądaniu podaj tekstowy ciąg wyszukiwania i granice geograficzne określające obszar wyszukiwania.

Autouzupełnianie (nowa wersja) może dopasowywać całe słowa i podciągi znaków z danych wejściowych, rozwiązując nazwy miejsc, adresy i kody plus. Aplikacje mogą więc wysyłać zapytania w miarę wpisywania przez użytkownika tekstu, aby na bieżąco wyświetlać prognozy dotyczące miejsc i zapytań.

Odpowiedź z Autouzupełniania (Nowy) może zawierać 2 typy prognoz:

  • Prognozy lokalizacji: miejsca, takie jak firmy, adresy i ciekawe miejsca, na podstawie określonego ciągu tekstowego i obszaru wyszukiwania. Domyślnie zwracane są prognozy dotyczące miejsc.
  • Prognozy zapytań: ciągi zapytań pasujące do podanego ciągu tekstowego i obszaru wyszukiwania. Domyślnie nie są zwracane prognozy zapytań. Aby dodać do odpowiedzi prognozy zapytań, użyj parametru żądania includeQueryPredictions.

Na przykład wywołujesz funkcję Autouzupełnianie (Nowe), podając jako argument ciąg znaków zawierający częściowe dane wejściowe użytkownika „Sicilian piz”, a obszar wyszukiwania ograniczony do San Francisco w Kalifornii. Odpowiedź zawiera listę miejsc dopasowanych do ciągu wyszukiwania i obszaru wyszukiwania, np. restaurację „Sicilian Pizza Kitchen” wraz ze szczegółowymi informacjami o niej.

Zwrócone prognozy miejsc są przeznaczone do wyświetlania użytkownikowi, aby ułatwić mu wybór miejsca docelowego. Aby uzyskać więcej informacji o dowolnym z zwróconych przewidywanych miejsc, możesz wysłać żądanie Szczegóły miejsca (nowe).

Odpowiedź może też zawierać listę przewidywanych zapytań pasujących do ciągu wyszukiwania i obszaru wyszukiwania, np. „Pizza i makaron po sycylijsku”. Każda prognoza zapytania w odpowiedzi zawiera pole text z zalecanym ciągiem tekstowy do wyszukiwania. Użyj tego ciągu jako danych wejściowych w funkcji Wyszukiwanie tekstowe (nowa), aby przeprowadzić bardziej szczegółowe wyszukiwanie.

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

żądania autouzupełniania (nowe);

Żądanie Autocomplete (New) to żądanie HTTP POST do adresu URL w formie:

https://places.googleapis.com/v1/places:autocomplete

Przekaż wszystkie parametry w treści żądania JSON lub w nagłówkach jako część żądania POST. Na przykład:

curl -X POST -d '{
  "input": "pizza",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Obsługiwane parametry

Parametr

Opis

input*

ciąg tekstowy do wyszukania (całe słowa, podciągi, nazwy miejsc, adresy, kody plus).

FieldMask (nagłówek HTTP)

Lista rozdzielana przecinkami, która określa, które pola mają zostać zwrócone w odpowiedzi.

includedPrimaryTypes

Ogranicza wyniki do miejsc pasujących do jednego z maksymalnie 5 określonych typów głównych.

includePureServiceAreaBusinesses

Jeśli wartość to prawda, obejmuje firmy bez lokalizacji fizycznej (firmy działające na określonym obszarze). Wartość domyślna to fałsz.

includeQueryPredictions

Jeśli wartość to prawda, w odpowiedzi uwzględnione są zarówno przewidywania miejsc, jak i zapytań. Wartość domyślna to fałsz.

includedRegionCodes

Tablica zawierająca maksymalnie 15 2-znakowych kodów krajów, na które mają być ograniczone wyniki.

inputOffset

Odstęp znaku Unicode od pozycji kursora w ciągu wejściowym, liczony od zera, wpływający na prognozy. Domyślnie jest to długość wejścia.

languageCode

Preferowany język (kod IETF BCP-47) wyników. Domyślnie jest to nagłówek Accept-Language lub „en”.

locationBias

Określa obszar (koło lub prostokąt), na który ma być nakierowany algorytm wyszukiwania, umożliwiając wyświetlanie wyników poza tym obszarem. Nie można używać go w połączeniu z lokalizacją.

locationRestriction

Określa obszar (okrąg lub prostokąt) do zawężenia wyników wyszukiwania. Wyniki spoza tego obszaru są wykluczane. Nie można go używać z parametrem locationBias.

origin

Punkt początkowy (szerokość geograficzna, długość geograficzna) służący do obliczenia odległości w linii prostej (distanceMeters) do przewidywanych miejsc docelowych.

regionCode

Kod regionu używany do formatowania odpowiedzi i uwzględniania sugestii (np. 'uk', 'fr').

sessionToken

Ciąg tekstowy utworzony przez użytkownika, który służy do grupowania wywołań autouzupełniania w ramach sesji w celu rozliczeń.

* oznacza pole wymagane.

Informacje o odpowiedzi

Autouzupełnianie (nowa wersja) zwraca w odpowiedzi obiekt JSON. W odpowiedzi:

  • Tablica suggestions zawiera wszystkie przewidywane miejsca i zapytania w kolejności zależnej od ich trafności. Każde miejsce jest reprezentowane przez pole placePrediction, a każde zapytanie – przez pole queryPrediction.
  • Pole placePrediction zawiera szczegółowe informacje o jednym przewidywanym miejscu, w tym identyfikator miejsca i opis tekstowy.
  • Pole queryPrediction zawiera szczegółowe informacje o pojedynczej prognozie zapytania.

Pełny obiekt JSON ma postać:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }]
        },
      ...
    },
    {
      "queryPrediction": {
        "text": {
          "text": "Amoeba Music",
          "matches": [
            {
              "endOffset": 6
            }]
        },
        ...
    }
  ...]
}

Wymagane parametry

  • dane wejściowe

    Tekst, w którym ma być przeprowadzone wyszukiwanie. Określ pełne słowa i podciągi znaków, nazwy miejsc, adresy i kody pocztowe. Usługa Autocomplete (New) zwraca dopasowania na podstawie tego ciągu znaków i porządkuje wyniki według ich trafności.

Parametry opcjonalne

  • FieldMask

    Określ listę pól, które mają być zwracane w odpowiedzi, tworząc maskę pola odpowiedzi. Przekaż do metody maskę pola odpowiedzi za pomocą nagłówka HTTP X-Goog-FieldMask.

    Podaj listę pól sugestii oddzielonych przecinkami. Na przykład:suggestions.placePrediction.text.textsuggestions.queryPrediction.text.text sugestii.

      X-Goog-FieldMask: suggestions.placePrediction.text.text,suggestions.queryPrediction.text.text

    Aby pobrać wszystkie pola, użyj zapytania *.

      X-Goog-FieldMask: *
  • includedPrimaryTypes

    Miejsce może mieć tylko jeden podstawowy typ z tych wymienionych w tabeli A lub tabeli B. Na przykład: typ podstawowy może być "mexican_restaurant" lub "steak_house".

    Domyślnie interfejs API zwraca wszystkie miejsca na podstawie parametru input, niezależnie od wartości głównego typu powiązanego z miejscem. Ogranicz wyniki do określonego typu głównego lub typów głównych, podając parametr includedPrimaryTypes.

    Użyj tego parametru, aby określić maksymalnie 5 wartości typu z tabeli A lub tabeli B. Aby miejsce zostało uwzględnione w odpowiedzi, musi odpowiadać jednej z podanych wartości typu podstawowego.

    Ten parametr może też zawierać wartość (regions) lub (cities). Typ kolekcji (regions) obejmuje filtry dotyczące obszarów lub podziałów, takich jak dzielnice i kody pocztowe. Kolekcja typu (cities) filtruje miejsca, które Google rozpoznaje jako miasto.

    Prośba zostanie odrzucona z błędem INVALID_REQUEST, jeśli:

    • Podano więcej niż 5 typów.
    • Oprócz (cities) lub (regions) można określić dowolny typ.
    • Wszelkie nierozpoznane typy są określane.
  • includePureServiceAreaBusinesses

    Jeśli ustawisz wartość true, odpowiedź będzie zawierać firmy, które odwiedzają klientów lub dostarczają im produkty bezpośrednio, ale nie mają fizycznej lokalizacji firmy. Jeśli ustawisz wartość false, interfejs API zwróci tylko firmy, które mają fizyczną lokalizację.

  • includeQueryPredictions

    Jeśli true, odpowiedź zawiera zarówno przewidywane miejsca, jak i zapytania. Wartość domyślna to false, co oznacza, że odpowiedź zawiera tylko prognozy dotyczące miejsc.

  • includedRegionCodes

    Uwzględnij tylko wyniki z listy podanych regionów, podanych jako tablica zawierająca maksymalnie 15-znakowych wartości ccTLD („domena najwyższego poziomu”). Jeśli nie zostanie podany, nie zostaną zastosowane żadne ograniczenia odpowiedzi. Aby na przykład ograniczyć regiony do Niemiec i Francji:

        "includedRegionCodes": ["de", "fr"]

    Jeśli określisz zarówno parametr locationRestriction, jak i includedRegionCodes, wyniki będą się znajdować w obszarze przecięcia tych 2 ustawień.

  • inputOffset

    Odsunięcie znaku Unicode liczone od 0, wskazujące pozycję kursora w pozycji input. Pozycja kursora może wpływać na prognozy zwracane przez model. Jeśli to pole jest puste, domyślnie zostanie ustawiona długość input.

  • languageCode

    Preferowany język, w którym mają być zwracane wyniki. Wyniki mogą być podane w różnych językach, jeśli język używany w funkcji input różni się od wartości określonej przez funkcję languageCode lub jeśli zwrócone miejsce nie ma tłumaczenia z języka lokalnego na język languageCode.

    • Aby określić preferowany język, musisz użyć kodów języka IETF BCP-47.
    • Jeśli parametr languageCode nie zostanie podany, interfejs API użyje wartości określonej w nagłówku Accept-Language. Jeśli nie określisz żadnej opcji, zostanie użyta wartość domyślna en. Jeśli podasz nieprawidłowy kod języka, API zwróci błąd INVALID_ARGUMENT.
    • Preferowany język ma niewielki wpływ na zestaw wyników zwracanych przez interfejs API oraz na ich kolejność. Ma to też wpływ na możliwość poprawiania błędów ortograficznych przez interfejs API.
    • Interfejs API próbuje podać adres ulicy, który jest czytelny zarówno dla użytkownika, jak i dla lokalnej ludności, a jednocześnie odzwierciedla dane wejściowe użytkownika. Prognozy dotyczące miejsc są formatowane w różny sposób w zależności od danych wejściowych użytkownika w każdej prośbie.
      • Pasujące terminy w parametrze input są wybierane jako pierwsze, przy użyciu nazw zgodnych z ustawieniami języka wskazanymi przez parametr languageCode (jeśli są dostępne), a w przeciwnym razie przy użyciu nazw, które najlepiej pasują do danych wejściowych użytkownika.
      • Adresy ulic są formatowane w języku lokalnym, w sposób czytelny dla użytkownika, gdy to możliwe, tylko po wybraniu odpowiednich terminów dopasowanych do terminów w parametrze input.
      • Wszystkie inne adresy są zwracane w preferowanym języku po wybraniu odpowiednich terminów dopasowanych do terminów w parametrze input. Jeśli nazwa nie jest dostępna w wybranym języku, interfejs API stosuje najbliższe dopasowanie.
  • locationBias lub locationRestriction

    Aby określić obszar wyszukiwania, możesz użyć parametru locationBias lub locationRestriction, ale nie obu jednocześnie. Parametr locationRestriction określa region, w którym muszą się znajdować wyniki, a parametr locationBias – region, w pobliżu którego muszą się znajdować wyniki, ale nie muszą znajdować się w tym obszarze.

    • locationBias

      Określa obszar wyszukiwania. Ta lokalizacja służy jako preferencja, co oznacza, że mogą być zwracane wyniki z okolic wskazanej lokalizacji, w tym poza wskazanym obszarem.

    • locationRestriction

      Określa obszar wyszukiwania. Wyniki poza określonym obszarem nie są zwracane.

    Określ region locationBias lub locationRestriction jako prostokątny obszar wyświetlania lub koło.

    • Okrąg jest definiowany przez punkt środkowy i promień w metrach. Promień musi mieścić się w przedziale od 0,0 do 50 000,0. Wartość domyślna to 0,0. W przypadku funkcji locationRestriction promień musi mieć wartość większą niż 0,0. W przeciwnym razie żądanie nie zwraca żadnych wyników.

      Na przykład:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Prostokąt to widoczny obszar z uwzględnieniem szerokości i długości geograficznej, reprezentowany przez 2 punkty low i high po przeciwległych przekątnych. Widoczny obszar jest uważany za zamknięty region, co oznacza, że obejmuje swoją granicę. Granice szerokości geograficznej muszą mieścić się w przedziale od -90 do 90 stopni, a granice długości geograficznej – w przedziale od -180 do 180 stopni:

      • Jeśli low = high, widoczny obszar składa się z tego pojedynczego punktu.
      • Jeśli low.longitude > high.longitude, zakres długości geograficznej jest odwrócony (widoczny obszar przecina linię długości geograficznej 180°).
      • Jeśli low.longitude = –180 stopni i high.longitude = 180 stopni, widoczny obszar obejmuje wszystkie długości geograficzne.
      • Jeśli low.longitude = 180 stopni, a high.longitude = -180 stopni, zakres długości geograficznej jest pusty.

      Wartości low i high muszą być wypełnione, a reprezentowane pole nie może być puste. Pusta wizjer powoduje błąd.

      Na przykład ten widok zawiera w pełni Nowy Jork:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • pochodzenie

    Punkt początkowy, z którego ma być obliczana odległość w linii prostej do miejsca docelowego (zwracana jako distanceMeters). Jeśli ta wartość zostanie pominięta, odległość w linii prostej nie zostanie zwrócona. Musi być podany jako współrzędne szerokości i długości geograficznej:

    "origin": {
        "latitude": 40.477398,
        "longitude": -74.259087
    }
  • regionCode

    Kod regionu użyty do sformatowania odpowiedzi, podany jako kod domeny krajowej najwyższego poziomu („domena najwyższego poziomu”) o dwóch znakach. Większość kodów ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma wyjątkami. Na przykład ccTLD Wielkiej Brytanii to „uk” (.co.uk), a jej kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”).

    Sugestie są też ukierunkowane na podstawie kodów regionów. Google zaleca ustawienie wartości parametru regionCode zgodnie z preferencjami użytkownika w danym regionie.

    Jeśli podasz nieprawidłowy kod regionu, interfejs API zwróci błąd INVALID_ARGUMENT. Parametr może wpływać na wyniki w zależności od obowiązujących przepisów.

  • sessionToken

    Tokeny sesji to tworzone przez użytkownika ciągi znaków, które śledzą wywołania funkcji Autouzupełnianie (nowa) jako „sesje”. Autouzupełnianie (nowa wersja) używa tokenów sesji, aby grupować fazy zapytania i wyboru w wyszukiwaniu autouzupełniania użytkownika w oddzielną sesję na potrzeby rozliczeń. Więcej informacji znajdziesz w artykule Tokeny sesji.

Wybieranie parametrów, które mają wpływać na wyniki

Parametry autouzupełniania (Nowe) mogą wpływać na wyniki wyszukiwania w różny sposób. W tabeli poniżej znajdziesz zalecenia dotyczące stosowania parametrów w zależności od oczekiwanego wyniku.
Parametr Zalecenie dotyczące użycia
regionBias Ustaw zgodnie z preferencjami regionalnymi użytkownika.
includedRegionCodes Ustaw, aby ograniczyć wyniki do listy określonych regionów.
locationBias Używaj, gdy preferowane są wyniki w danym regionie lub w jego pobliżu. W razie potrzeby zdefiniuj region jako widok mapy, na której użytkownik się właśnie znajduje.
locationRestriction Używaj tego elementu tylko, gdy wyniki spoza regionu nie powinny być zwracane.
origin Używaj, gdy chcesz uzyskać odległość w linii prostej do każdego przewidywanego obiektu.

Przykłady autouzupełniania (nowa wersja)

Ograniczanie wyszukiwania do obszaru za pomocą atrybutu locationRestriction

locationRestriction określa obszar wyszukiwania. Wyniki poza określonym obszarem nie są zwracane. W tym przykładzie użyjesz zapytania locationRestriction, aby ograniczyć prośbę do okręgu o promieniu 5000 metrów z San Francisco jako środkiem:

curl -X POST -d '{
  "input": "Art museum",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Wszystkie wyniki z określonych obszarów są zawarte w tablicy suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "museum",
            "point_of_interest"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w",
          "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w",
          "text": {
            "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 15
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "de Young Museum",
              "matches": [
                {
                  "endOffset": 15
                }
              ]
            },
            "secondaryText": {
              "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "point_of_interest",
            "tourist_attraction",
            "museum"
          ]
        }
      },
      /.../
    ]
  }

Możesz też użyć locationRestriction, aby ograniczyć wyszukiwanie do prostokątnego widocznego obszaru. W tym przykładzie ograniczamy żądanie do centrum San Francisco:

  curl -X POST -d '{
    "input": "Art museum",
    "locationRestriction": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Wyniki są zawarte w tablicy suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "museum",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc",
          "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc",
          "text": {
            "text": "International Art Museum of America, Market Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 14,
                "endOffset": 24
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "International Art Museum of America",
              "matches": [
                {
                  "startOffset": 14,
                  "endOffset": 24
                }
              ]
            },
            "secondaryText": {
              "text": "Market Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "museum",
            "point_of_interest",
            "tourist_attraction",
            "art_gallery",
            "establishment"
          ]
        }
      }
    ]
  }

Wyszukiwanie z uwzględnieniem lokalizacji za pomocą parametru locationBias

W przypadku locationBias lokalizacja służy jako bias, co oznacza, że mogą być zwracane wyniki z okolic określonej lokalizacji, w tym poza określony obszar. W tym przykładzie kierujesz prośbę do centrum San Francisco:

curl -X POST -d '{
  "input": "Amoeba",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Wyniki zawierają teraz znacznie więcej elementów, w tym wyniki poza promieniem 5000 metrów:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "store",
          "establishment",
          "home_goods_store"
        ]
      }
    },
    {
      "placePrediction": {
        "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
        "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
        "text": {
          "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Telegraph Avenue, Berkeley, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "establishment",
          "home_goods_store",
          "store"
        ]
      }
    },
    ...
  ]
}

Możesz też użyć locationBias, aby ograniczyć wyszukiwanie do prostokątnego widocznego obszaru. W tym przykładzie ograniczamy żądanie do centrum San Francisco:

  curl -X POST -d '{
    "input": "Amoeba",
    "locationBias": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Chociaż wyniki wyszukiwania w prostokątnym obszarze widoku pojawiają się w odpowiedzi, niektóre z nich znajdują się poza zdefiniowanymi granicami ze względu na stronniczość. Wyniki są też zawarte w tablicy suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "text": {
            "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Haight Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
          "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
          "text": {
            "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Telegraph Avenue, Berkeley, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI",
          "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI",
          "text": {
            "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Hollywood Boulevard, Los Angeles, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
    /.../
    ]
  }

Używanie atrybutu includedPrimaryTypes

Użyj parametru includedPrimaryTypes, aby określić maksymalnie 5 wartości typu z tabel tabeli A, tabeli B, tylko (regions) lub tylko (cities). Aby miejsce zostało uwzględnione w odpowiedzi, musi ono odpowiadać jednej z podanych wartości typu podstawowego.

W tym przykładzie podajesz ciąg znaków input „Soccer” i używasz parametru includedPrimaryTypes, aby ograniczyć wyniki do obiektów typu "sporting_goods_store":

curl -X POST -d '{
  "input": "Soccer",
  "includedPrimaryTypes": ["sporting_goods_store"],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Jeśli pominiesz parametr includedPrimaryTypes, wyniki mogą obejmować lokale, których nie chcesz uwzględniać, np. "athletic_field".

Żądanie prognozy zapytań

Domyślnie nie są zwracane prognozy zapytań. Aby dodać do odpowiedzi prognozy zapytań, użyj parametru includeQueryPredictions żądania. Na przykład:

curl -X POST -d '{
  "input": "Amoeba",
  "includeQueryPredictions": true,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Tablica suggestions zawiera teraz zarówno prognozy dotyczące miejsc, jak i prognozy dotyczące zapytań, jak pokazano powyżej w sekcji Informacje o odpowiedzi. Każda prognoza zapytania zawiera pole text z zalecanym ciągiem tekstowy do wyszukiwania. Aby uzyskać więcej informacji o dowolnym z zwróconych prognoz zapytań, możesz wysłać prośbę Wyszukiwanie tekstu (nowa wersja).

Użyj punktu początkowego

W tym przykładzie w żądaniu jako współrzędne szerokości i długości geograficznej podaj origin. Gdy uwzględnisz origin, Autouzupełnianie (nowa wersja) uwzględni w odpowiedzi pole distanceMeters, które zawiera odległość w linii prostej od origin do miejsca docelowego. W tym przykładzie punkt początkowy znajduje się w centrum San Francisco:

curl -X POST -d '{
  "input": "Amoeba",
  "origin": {
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Odpowiedź zawiera teraz distanceMeters:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "point_of_interest",
          "store",
          "electronics_store"
        ],
        "distanceMeters": 3012
      }
    }
  ]
}

Brak odległości w odpowiedzi

W niektórych przypadkach w treści odpowiedzi brakuje elementu distanceMeters, nawet jeśli element origin jest uwzględniony w żądaniu. Może się tak zdarzyć w tych sytuacjach:

  • Wartość distanceMeters nie jest uwzględniana w przypadku prognoz route.
  • distanceMeters nie jest uwzględniany, gdy jego wartość to 0, co ma miejsce w przypadku prognoz, które znajdują się w odległości mniejszej niż 1 metr od podanej lokalizacji origin.

Biblioteki klienta próbujące odczytać pole distanceMeters z przetworzonego obiektu zwrócą pole o wartości 0. Aby uniknąć wprowadzania użytkowników w błąd, nie wyświetlaj im odległości zero.

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 możesz zmodyfikować parametry żądania.

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

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