Autouzupełnianie (nowość)

Usługa Autouzupełnianie (nowa) to usługa internetowa, która zwraca prognozy miejsc i prognozy zapytań w odpowiedzi na żądanie HTTP. W żądaniu określ ciąg tekstowy wyszukiwania i granice geograficzne, które sterują obszarem wyszukiwania.

Usługa autouzupełniania (nowa) może uwzględniać pełne słowa i podłańcuchy danych wejściowych oraz rozpoznawać 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ź interfejsu Autocomplete API (New) może zawierać 2 typy prognoz:

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

Na przykład wywołasz interfejs API, używając jako danych wejściowych ciągu zawierającego częściowe dane wejściowe użytkownika: „Sycylijski piz” z obszarem wyszukiwania ograniczonym do San Francisco w stanie Kalifornia. Odpowiedź zawiera listę przewidywanych miejsc pasujących do ciągu wyszukiwania i obszaru wyszukiwania, np. restaurację „Sicilian Pizza Kitchen” wraz ze szczegółami.

Zwracane prognozy dotyczące miejsc mają zostać przedstawione użytkownikowi, aby pomóc mu w wyborze odpowiedniego miejsca. 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 znaków do wyszukiwania tekstowego. Użyj tego ciągu jako danych wejściowych w funkcji Wyszukiwanie tekstowe (nowa), aby przeprowadzić bardziej szczegółowe wyszukiwanie.

API Explorer umożliwia wysyłanie żądań na żywo, dzięki czemu zapoznaj się z interfejsem API i jego opcjami:

Wypróbuj

żą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

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 przewidywanej trafności. Każde miejsce jest reprezentowane przez pole placePrediction, a każde zapytanie – przez pole queryPrediction.
  • Pole placePrediction zawiera szczegółowe informacje o prognozie dotyczącej pojedynczego miejsca, 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

    ciąg tekstowy, w którym ma być przeprowadzone wyszukiwanie; Określ pełne słowa i podłańcuchy, nazwy miejsc, adresy i kody plus. 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ż maskę pola odpowiedzi do metody, używając nagłówka HTTP X-Goog-FieldMask.

    Podaj listę pól sugestii oddzielonych przecinkami. Aby na przykład pobrać suggestions.placePrediction.place i suggestions.placePrediction.text sugestii.

      X-Goog-FieldMask: places.displayName,places.formattedAddress

    Użyj *, aby pobrać wszystkie pola.

      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) to filtry obszarów lub podziałów, np. dzielnic i kodów pocztowych. Filtry kolekcji typu (cities) dla miejsc zidentyfikowanych przez Google jako miasto.

    Żądanie zostanie odrzucone z powodu błędu INVALID_REQUEST, jeśli:

    • Podano więcej niż 5 typów.
    • Oprócz (cities) lub (regions) można określić dowolny typ.
    • Wszystkie nierozpoznane typy są określone.
  • 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 przewidywane zapytania. Wartość domyślna to false, co oznacza, że odpowiedź zawiera tylko prognozy dotyczące miejsc.

  • includedRegionCodes

    Uwzględniaj tylko wyniki z listy określonych regionów określonej w postaci tablicy zawierającej maksymalnie 15 dwuznakowych 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 podasz zarówno locationRestriction, jak i includedRegionCodes, wyniki będą znajdować się w obszarze przecięcia tych ustawień.

  • inputOffset

    Przesunięcie znaków Unicode liczone od zera, które wskazuje pozycję kursora w polu 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żywa 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 kolejność, w jakiej są one zwracane. Dotyczy to również możliwości poprawiania błędów pisowni 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.
      • Jako pierwsze są wybierane pasujące hasła w parametrze input – nazwy zgodne z ustawieniami języka wskazanym w parametrze languageCode (jeśli są dostępne). W przeciwnym razie używane są nazwy, 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. Pole locationRestriction określa region, w którym muszą się znajdować wyniki, a locationBias określa region, w którym wyniki muszą znajdować się w pobliżu, ale mogą znajdować się poza tym obszarem.

    • 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 spoza określonego obszaru nie są zwracane.

    Określ obszar locationBias lub locationRestriction jako prostokątny widoczny obszar lub koło.

    • Okrąg jest wyznaczany przez punkt środkowy i promień w metrach. Promień musi mieścić się w przedziale od 0,0 do 50 000,0. Wartością domyślną jest 0,0. W przypadku pola 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 obszar, 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, a 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 prowadzi do błędu.

      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 prostej linii do miejsca docelowego (zwracana jako distanceMeters). Jeśli ta wartość zostanie pominięta, odległość w prostej linii 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żywany do formatowania odpowiedzi, określony jako dwuznakowa wartość ccTLD („domeny najwyższego poziomu”). 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”).

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

  • sessionToken

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

Przykłady autouzupełniania (nowa wersja)

Ograniczanie wyszukiwania do obszaru za pomocą atrybutu locationRestriction

locationRestriction określa obszar wyszukiwania. Wyniki spoza określonego obszaru 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 preferencja, co oznacza, że mogą zostać zwrócone wyniki z okolic wybranej lokalizacji, w tym poza wybranym obszarem. 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 są widoczne w odpowiedzi, niektóre z nich znajdują się poza określonymi 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

Parametr includedPrimaryTypes umożliwia określenie maksymalnie 5 wartości typu z 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 zapytań, jak pokazano powyżej w sekcji Informacje o odpowiedzi. Każda prognoza zapytania zawiera pole text z zalecanym ciągiem tekstowy do wyszukiwania. Możesz wysłać żądanie Wyszukiwanie tekstowe (nowe), aby uzyskać więcej informacji o dowolnym ze zwróconych prognoz zapytań.

Użyj punktu początkowego

W tym przykładzie uwzględnij w żądaniu parametr origin jako szerokość i długość geograficzną. Gdy podasz parametr origin, interfejs API 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 jest ustawiony na 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
      }
    }
  ]
}

Wypróbuj

Narzędzie API 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 Rozwiń interfejs API Explorer..
  2. Opcjonalnie rozwiń Pokaż parametry standardowe i ustaw parametr fields na maskę pola.
  3. Opcjonalnie możesz zmodyfikować tekst prośby.
  4. Kliknij przycisk Wykonaj. W wyskakującym okienku wybierz konto, którego chcesz użyć do wysłania prośby.
  5. W panelu API Explorer kliknij ikonę rozwijania Rozwiń interfejs API Explorer., aby rozwinąć okno API Explorer.