Autouzupełnianie miejsc (starsza wersja)

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Autouzupełnianie miejsc (starsza wersja) to usługa internetowa, która zwraca prognozy miejsc w odpowiedzi na żądanie HTTP. Żądanie określa tekstowy ciąg wyszukiwania i opcjonalne granice geograficzne. Usługa może służyć do udostępniania funkcji autouzupełniania w tekstowych wyszukiwaniach geograficznych, zwracając miejsca takie jak firmy, adresy i ciekawe miejsca podczas wpisywania znaków przez użytkownika.

Żądania Autouzupełniania miejsc (starsza wersja)

Autouzupełnianie miejsc (starsza wersja) jest częścią interfejsu Places API i udostępnia klucz interfejsu API oraz limity interfejsowi Places API.

Autouzupełnianie miejsc (starsza wersja) może dopasowywać pełne słowa i podłańcuchy, rozpoznając nazwy miejsc, adresy i plus codes. Dzięki temu aplikacje mogą wysyłać zapytania, gdy użytkownik wpisuje tekst, aby na bieżąco wyświetlać podpowiedzi dotyczące miejsc.

Plus kody muszą być prawidłowo sformatowane. Oznacza to, że znak plusa musisz zastąpić ciągiem %2B, a spacje – ciągiem %20.

  • global code to 4-znakowy numer kierunkowy i 6-znakowy lub dłuższy kod lokalny. Na przykład globalny kod zmiany znaczenia adresu URL 849VCWC8+R9 to 849VCWC8%2BR9.
  • Kod złożony to 6-znakowy (lub dłuższy) kod lokalny z wyraźnie określoną lokalizacją. Na przykład kod zbiorczy CWC8+R9 Mountain View, CA, USA po ucieczce adresu URL to CWC8%2BR9%20Mountain%20View%20CA%20USA.

Zwrócone podpowiedzi są przeznaczone do wyświetlania użytkownikowi, aby pomóc mu w wyborze odpowiedniego miejsca. Możesz wysłać żądanie informacji o miejscu (starsza wersja), aby uzyskać więcej informacji o zwróconych miejscach.

Żądanie Autouzupełniania miejsc (starsza wersja) to adres URL HTTP w tym formacie:

https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters

gdzie output może mieć jedną z tych wartości:

  • json (zalecane) wskazuje dane wyjściowe w formacie JSON (JavaScript Object Notation).
  • xml wskazuje dane wyjściowe w formacie XML.

Do zainicjowania żądania autouzupełniania miejsc (starsza wersja) wymagane są określone parametry. Zgodnie ze standardem adresów URL wszystkie parametry są rozdzielone znakiem ampersand (&). Poniżej znajdziesz listę parametrów i ich możliwych wartości.

Wymagane parametry

wprowadzanie danych

Ciąg tekstowy, który ma zostać wyszukany. Usługa autouzupełniania miejsc zwróci dopasowania na podstawie tego ciągu znaków i uporządkuje wyniki według ich trafności.

Parametry opcjonalne

komponenty,

Grupowanie miejsc, do których chcesz ograniczyć wyniki. Możesz użyć komponentów, aby filtrować według maksymalnie 5 krajów. Kraje muszą być przekazywane jako dwuznakowy kod kraju zgodny ze standardem ISO 3166-1 alfa-2. Na przykład: components=country:fr ograniczy wyniki do miejsc we Francji. Wiele krajów należy przekazać jako wiele filtrów country:XX, używając pionowej kreski | jako separatora. Na przykład:components=country:us|country:pr|country:vi|country:gu|country:mpograniczy wyniki do miejsc w Stanach Zjednoczonych i ich terytoriach nieinkorporowanych.

Uwaga: jeśli otrzymasz nieoczekiwane wyniki z kodem kraju, sprawdź, czy używasz kodu, który obejmuje kraje, terytoria zależne i obszary specjalne, które Cię interesują. Informacje o kodach znajdziesz w Wikipedii: lista kodów krajów w formacie ISO 3166 lub na platformie przeglądania online ISO.

language

Język, w którym mają być zwracane wyniki.

  • Zobacz listę obsługiwanych języków. Google często aktualizuje obsługiwane języki, więc ta lista może nie być wyczerpująca.
  • Jeśli nie podasz parametru language, interfejs API spróbuje użyć preferowanego języka określonego w nagłówku Accept-Language.
  • Interfejs API stara się podać adres, który jest czytelny zarówno dla użytkownika, jak i dla mieszkańców. Aby osiągnąć ten cel, zwraca adresy pocztowe w języku lokalnym, w razie potrzeby transliterowane na pismo czytelne dla użytkownika, z uwzględnieniem preferowanego języka. Wszystkie inne adresy są zwracane w preferowanym języku. Wszystkie komponenty adresu są zwracane w tym samym języku, który jest wybierany na podstawie pierwszego komponentu.
  • Jeśli nazwa nie jest dostępna w preferowanym języku, interfejs API używa najbliższego dopasowania.
  • Preferowany język ma niewielki wpływ na zestaw wyników, które interfejs API zwraca, oraz na kolejność, w jakiej są zwracane. Geokoder interpretuje skróty w różny sposób w zależności od języka, np. skróty typów ulic lub synonimy, które mogą być prawidłowe w jednym języku, ale nie w innym. Na przykład utca i tér to synonimy słowa „ulica” w języku węgierskim.

lokalizacja

Punkt, wokół którego mają być pobierane informacje o miejscu. Musi być określony jako latitude,longitude. Jeśli podajesz lokalizację, musisz też podać parametr radius. Jeśli nie podano właściwości radius, parametr location jest ignorowany.

Jeśli używasz interfejsu API Wyszukaj tekst, parametr `location` może zostać zastąpiony, jeśli parametr `query` zawiera wyraźną lokalizację, np. `Market in Barcelona`.

locationbias

Preferuj wyniki w określonym obszarze, podając promień i szerokość/długość geograficzną lub 2 pary szerokości/długości geograficznej reprezentujące punkty prostokąta. Jeśli ten parametr nie zostanie określony, interfejs API domyślnie użyje dopasowywania na podstawie adresu IP.

  • IP bias: instruuje interfejs API, aby używał kierowania na adres IP. Przekaż ciąg tekstowy ipbias (ta opcja nie ma dodatkowych parametrów).
  • Okrąg: ciąg znaków określający promień w metrach oraz szerokość i długość geograficzną w stopniach dziesiętnych. Użyj tego formatu: circle:radius@lat,lng.
  • Prostokątny: ciąg znaków określający 2 pary szerokości i długości geograficznej w stopniach dziesiętnych, reprezentujące punkty południowo-zachodni i północno-wschodni prostokąta. Użyj tego formatu:rectangle:south,west|north,east. Pamiętaj, że wartości wschód/zachód są zawijane do zakresu od -180 do 180, a wartości północ/południe są ograniczane do zakresu od -90 do 90.

locationrestriction

Ogranicz wyniki do określonego obszaru, podając promień i szerokość/długość geograficzną lub 2 pary współrzędnych szerokości/długości geograficznej reprezentujące punkty prostokąta.

  • Okrąg: ciąg znaków określający promień w metrach oraz szerokość i długość geograficzną w stopniach dziesiętnych. Użyj tego formatu: circle:radius@lat,lng.
  • Prostokątny: ciąg znaków określający 2 pary szerokości i długości geograficznej w stopniach dziesiętnych, reprezentujące punkty południowo-zachodni i północno-wschodni prostokąta. Użyj tego formatu:rectangle:south,west|north,east. Pamiętaj, że wartości wschód/zachód są zawijane do zakresu od -180 do 180, a wartości północ/południe są ograniczane do zakresu od -90 do 90.

offset

Pozycja ostatniego znaku w wyszukiwanym haśle, którego usługa używa do dopasowywania podpowiedzi. Jeśli na przykład dane wejściowe to Google, a przesunięcie wynosi 3, usługa dopasuje Goo. Ciąg określony przez przesunięcie jest dopasowywany tylko do pierwszego słowa w wyszukiwanym haśle. Jeśli na przykład wyszukiwane hasło to Google abc, a przesunięcie wynosi 3, usługa spróbuje dopasować hasło Goo abc. Jeśli nie podasz przesunięcia, usługa użyje całego terminu. Przesunięcie powinno być zwykle ustawione na pozycję kursora tekstowego.

pochodzenie

Punkt początkowy, od którego ma być obliczana odległość w linii prostej do miejsca docelowego (zwracana jako distance_meters). Jeśli ta wartość zostanie pominięta, odległość w linii prostej nie zostanie zwrócona. Musi być określony jako latitude,longitude.

promień

Określa odległość (w metrach), w której mają być zwracane wyniki dotyczące miejsc. Możesz faworyzować wyniki w określonym okręgu, przekazując parametry location i radius. W ten sposób usługa Places będzie preferować wyświetlanie wyników w obrębie tego okręgu, ale wyniki spoza zdefiniowanego obszaru nadal mogą być wyświetlane.

Promień zostanie automatycznie ograniczony do maksymalnej wartości w zależności od typu wyszukiwania i innych parametrów.

  • Autouzupełnianie: 50 000 metrów
  • Wyszukiwanie w pobliżu:
    • z keyword lub name: 50 000 metrów
    • bez keyword lub name
      • Do 50 000 metrów, dostosowywane dynamicznie na podstawie gęstości obszaru, niezależnie od parametru rankby.
      • Jeśli używasz parametru rankby=distance, parametr radius nie zostanie zaakceptowany i zwróci błąd INVALID_REQUEST.
  • Query Autocomplete: 50 000 metrów
  • Wyszukiwanie tekstu: 50 000 metrów

region

Kod regionu określony jako 2-znakowa wartość ccTLD („domena najwyższego poziomu”). Większość kodów ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”).

sessiontoken

Losowy ciąg znaków, który identyfikuje sesję autouzupełniania na potrzeby rozliczeń.

Sesja rozpoczyna się, gdy użytkownik zaczyna wpisywać zapytanie, a kończy, gdy wybiera miejsce i wywoływana jest usługa informacje o miejscu. Każda sesja może obejmować wiele zapytań, po których następuje wybór jednego miejsca. Klucze interfejsu API używane w każdym żądaniu w ramach sesji muszą należeć do tego samego projektu w konsoli Google Cloud. Po zakończeniu sesji token traci ważność. Aplikacja musi wygenerować nowy token dla każdej sesji. Jeśli parametr sessiontoken zostanie pominięty lub jeśli ponownie użyjesz tokena sesji, sesja zostanie rozliczona tak, jakby nie podano tokena sesji (każde żądanie jest rozliczane osobno).

Zalecamy stosowanie się do tych wskazówek:

  • Używaj tokenów sesji we wszystkich sesjach autouzupełniania.
  • Generuj nowy token dla każdej sesji. Zalecany jest identyfikator UUID w wersji 4.
  • Upewnij się, że klucze interfejsu API używane we wszystkich żądaniach Autouzupełniania miejsc i informacji o miejscu w ramach sesji należą do tego samego projektu w konsoli Cloud.
  • Pamiętaj, aby przekazywać unikalny token sesji dla każdej nowej sesji. Użycie tego samego tokena w więcej niż 1 sesji spowoduje, że każde żądanie będzie rozliczane osobno.

strictbounds

Zwraca tylko te miejsca, które znajdują się ściśle w regionie określonym przez parametry location i radius. Jest to ograniczenie, a nie preferencja, co oznacza, że wyniki spoza tego regionu nie będą zwracane, nawet jeśli pasują do danych wejściowych użytkownika.

typy

Możesz ograniczyć wyniki żądania autouzupełniania miejsc do określonego typu, przekazując parametr types. Ten parametr określa typ lub kolekcję typów wymienionych w sekcji Typy miejsc. Jeśli nic nie zostanie określone, zwracane są wszystkie typy.

Miejsce może mieć tylko 1 główny typ spośród typów wymienionych w tabeli 1 lub tabeli 2. Na przykład hotel, w którym serwowane są posiłki, może być zwracany tylko z types=lodging, a nie z types=restaurant.

Jako wartość parametru types możesz podać:

  • Maksymalnie 5 wartości z tabeli 1 lub tabeli 2. Jeśli podajesz kilka wartości, rozdziel je znakiem | (pionowa kreska). Na przykład:

    types=book_store|cafe

  • Dowolny pojedynczy obsługiwany filtr z tabeli 3. Nie można mieszać kolekcji typów.

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

  • Podano więcej niż 5 typów.
  • Występują nierozpoznane typy.
  • Dowolne typy z tabeli 1 lub tabeli 2 są połączone z dowolnymi filtrami z tabeli 3.

Przykłady autouzupełniania miejsc (starsza wersja)

Żądanie dotyczące lokali zawierających ciąg znaków „Amoeba” na obszarze wokół San Francisco w Kalifornii:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696
      &radius=500
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'

To samo żądanie, ograniczone do wyników w promieniu 500 metrów od Ashbury St & Haight St, San Francisco:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696&radius=500
      &strictbounds=true
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'

Żądanie adresów zawierających „Vict” z wynikami w języku francuskim:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=geocode
      &language=fr
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'

Żądanie dotyczące miast zawierających „Vict” z wynikami w języku portugalskim (Brazylia):

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=(cities)
      &language=pt_BR&key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'

Pamiętaj, że w tych przykładach musisz zastąpić klucz interfejsu API własnym kluczem.

Odpowiedź Autouzupełniania miejsc (starsza wersja)

Odpowiedzi autouzupełniania miejsc (starsza wersja) są zwracane w formacie wskazanym przez flagę output w ścieżce adresu URL żądania. Poniższe wyniki wskazują, co może zostać zwrócone w przypadku zapytania z tymi parametrami:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Paris
      &types=geocode
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'

JSON

{
  "predictions":
    [
      {
        "description": "Paris, France",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "France",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "France" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TX, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TX, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TX" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TN, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TN, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TN" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, Brant, ON, Canada",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "Brant, ON, Canada",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "Brant" },
            { "offset": 14, "value": "ON" },
            { "offset": 18, "value": "Canada" },
          ],
        "types": ["neighborhood", "political", "geocode"],
      },
      {
        "description": "Paris, KY, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "KY, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "KY" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
    ],
  "status": "OK",
}

XML

    
<?xml version="1.0" encoding="UTF-8"?>
<AutocompletionResponse>
 <status>OK</status>
 <prediction>
  <description>Paris, France</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>France</value>
   <offset>7</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TX, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TX</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TX, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TN, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TN</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TN, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, Brant, ON, Canada</description>
  <type>neighborhood</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>Brant</value>
   <offset>7</offset>
  </term>
  <term>
   <value>ON</value>
   <offset>14</offset>
  </term>
  <term>
   <value>Canada</value>
   <offset>18</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>Brant, ON, Canada</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, KY, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>KY</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>KY, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
</AutocompletionResponse>

   

PlacesAutocompleteResponse

Pole Wymagane Typ Opis
wymagane Array<PlaceAutocompletePrediction>

Zawiera tablicę podpowiedzi.

Więcej informacji znajdziesz w artykule na temat PlaceAutocompletePrediction.

wymagane PlacesAutocompleteStatus

Zawiera stan żądania i może zawierać informacje na potrzeby debugowania, które pomogą Ci ustalić, dlaczego żądanie się nie powiodło.

Więcej informacji znajdziesz w artykule PlacesAutocompleteStatus.

opcjonalnie tekst

Gdy usługa zwraca kod stanu inny niż OK<, w obiekcie odpowiedzi może znajdować się dodatkowe pole error_message. To pole zawiera bardziej szczegółowe informacje o przyczynach danego kodu stanu. To pole nie zawsze jest zwracane, a jego zawartość może ulec zmianie.

opcjonalnie Array<string>

Gdy usługa zwraca dodatkowe informacje o specyfikacji żądania, w obiekcie odpowiedzi może znajdować się dodatkowe pole info_messages. To pole jest zwracane tylko w przypadku żądań zakończonych powodzeniem. Może nie zawsze być zwracany, a jego zawartość może ulec zmianie.

Szczególnie interesujące w wynikach są elementy place_id, których można użyć do uzyskania bardziej szczegółowych informacji o miejscu za pomocą osobnego zapytania. Zobacz żądania dotyczące informacji o miejscu (starsza wersja).

Odpowiedź XML składa się z jednego elementu <AutocompletionResponse> z dwoma typami elementów podrzędnych:

  • Pojedynczy element <status> zawiera metadane żądania. Patrz: Kody stanu poniżej.
  • 0 lub więcej elementów <prediction>, z których każdy zawiera informacje o jednym miejscu. Informacje o tych wynikach znajdziesz w artykule Wyniki autouzupełniania miejsc (starsza wersja). Places API zwraca maksymalnie 5 wyników.

Zalecamy używanie flagi json jako preferowanej flagi wyjściowej, chyba że aplikacja z jakiegoś powodu wymaga flagi xml. Przetwarzanie drzew XML wymaga pewnej ostrożności, aby odwoływać się do właściwych węzłów i elementów. Więcej informacji o przetwarzaniu plików XML znajdziesz w artykule Przetwarzanie plików XML za pomocą XPath.

PlacesAutocompleteStatus

Kody stanu zwracane przez usługę.

  • OK, co oznacza, że żądanie do interfejsu API zostało zrealizowane.
  • ZERO_RESULTS, co oznacza, że wyszukiwanie zakończyło się powodzeniem, ale nie zwróciło żadnych wyników. Może się tak zdarzyć, jeśli wyszukiwanie zostało przekazane do granic w odległej lokalizacji.
  • INVALID_REQUEST, co oznacza, że żądanie do interfejsu API było nieprawidłowe, zwykle z powodu braku parametru input.
  • OVER_QUERY_LIMIT, który zawiera dowolną z tych informacji:
    • Przekroczono limity zapytań na sekundę.
    • Na Twoim koncie nie włączono płatności.
    • Przekroczono miesięczny limit środków w wysokości 200 USD lub samodzielnie nałożony limit wykorzystania.
    • Podana forma płatności nie jest już ważna (np. karta kredytowa straciła ważność).
    Więcej informacji o rozwiązywaniu tego błędu znajdziesz w najczęstszych pytaniach dotyczących Map.
  • REQUEST_DENIED z informacją, że Twoja prośba została odrzucona. Zwykle dzieje się tak, ponieważ:
    • W żądaniu brakuje klucza interfejsu API.
    • Parametr key jest nieprawidłowy.
  • UNKNOWN_ERROR wskazujący nieznany błąd.

Gdy usługa Places zwraca wyniki wyszukiwania w formacie JSON, umieszcza je w tablicy predictions. Nawet jeśli usługa nie zwraca żadnych wyników (np. gdy location jest zdalny), nadal zwraca pustą tablicę predictions. Odpowiedzi XML składają się z co najmniej 0 elementów <prediction>.

PlaceAutocompletePrediction

Pole Wymagane Typ Opis
wymagane tekst

Zawiera zrozumiałą dla człowieka nazwę zwróconego wyniku. W przypadku wyników establishment jest to zwykle nazwa firmy. Te treści powinny być odczytywane w takiej postaci, w jakiej są. Nie analizuj sformatowanego adresu automatycznie.

wymagane Array<PlaceAutocompleteMatchedSubstring>

Lista podłańcuchów, które opisują lokalizację wpisanego hasła w tekście wyniku podpowiedzi, dzięki czemu można je wyróżnić, jeśli zostanie wybrane.

Więcej informacji znajdziesz w artykule PlaceAutocompleteMatchedSubstring.

wymagane PlaceAutocompleteStructuredFormat

Udostępnia wstępnie sformatowany tekst, który może być wyświetlany w wynikach autouzupełniania. Te treści powinny być odczytywane w takiej postaci, w jakiej są. Nie analizuj sformatowanego adresu automatycznie.

Więcej informacji znajdziesz w artykule PlaceAutocompleteStructuredFormat.

wymagane Array<PlaceAutocompleteTerm>

Zawiera tablicę haseł identyfikujących każdą sekcję zwróconego opisu (sekcja opisu jest zwykle zakończona przecinkiem). Każdy wpis w tablicy ma pole value zawierające tekst hasła oraz pole offset określające pozycję początkową tego hasła w opisie, mierzoną w znakach Unicode.

Więcej informacji znajdziesz w artykule PlaceAutocompleteTerm.

opcjonalnie liczba całkowita

Odległość w linii prostej w metrach od punktu początkowego. To pole jest zwracane tylko w przypadku żądań wysłanych za pomocą origin.

opcjonalnie tekst

Identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. Aby pobrać informacje o miejscu, przekaż ten identyfikator w polu placeId żądania do interfejsu Places API. Więcej informacji o identyfikatorach miejsc znajdziesz w omówieniu identyfikatorów miejsc.

opcjonalnie tekst

Zobacz place_id.

opcjonalnie Array<string>

Zawiera tablicę typów, które mają zastosowanie do tego miejsca. Na przykład: [ "political", "locality" ] lub [ "establishment", "geocode", "beauty_salon" ]. Tablica może zawierać wiele wartości. Dowiedz się więcej o typach miejsc.

PlaceAutocompleteMatchedSubstring

Pole Wymagane Typ Opis
wymagane liczba

Długość dopasowanego podłańcucha w tekście wyniku prognozy.

wymagane liczba

Lokalizacja początkowa dopasowanego podłańcucha w tekście wyniku prognozy.

PlaceAutocompleteStructuredFormat

Pole Wymagane Typ Opis
wymagane tekst

Zawiera główny tekst podpowiedzi, zwykle nazwę miejsca.

wymagane Array<PlaceAutocompleteMatchedSubstring>

Zawiera tablicę z wartością offset i length. Opisują one lokalizację wpisanego hasła w tekście wyniku podpowiedzi, dzięki czemu można je wyróżnić, jeśli zostanie wybrane.

Więcej informacji znajdziesz w artykule PlaceAutocompleteMatchedSubstring.

opcjonalnie tekst

Zawiera tekst dodatkowy podpowiedzi, zwykle lokalizację miejsca.

opcjonalnie Array<PlaceAutocompleteMatchedSubstring>

Zawiera tablicę z wartością offset i length. Opisują one lokalizację wpisanego hasła w tekście wyniku podpowiedzi, dzięki czemu można je wyróżnić, jeśli zostanie wybrane.

Więcej informacji znajdziesz w artykule PlaceAutocompleteMatchedSubstring.

PlaceAutocompleteTerm

Pole Wymagane Typ Opis
wymagane liczba

Definiuje pozycję początkową tego terminu w opisie, mierzoną w znakach Unicode.

wymagane tekst

Tekst hasła.

Optymalizacja Autouzupełniania miejsc (starsza wersja)

W tej sekcji opisujemy sprawdzone metody, które pomogą Ci w pełni wykorzystać możliwości usługi autouzupełniania miejsc (starszej wersji).

Oto ogólne wskazówki:

Sprawdzone metody optymalizacji kosztów

Podstawowa optymalizacja kosztów

Aby zoptymalizować koszty korzystania z usługi Autouzupełnianie miejsc (starsza wersja), użyj masek pól w widżetach Informacje o miejscu (starsza wersja) i Autouzupełnianie miejsc (starsza wersja), aby zwracać tylko te pola danych Autouzupełniania miejsc (starsza wersja), których potrzebujesz.

Zaawansowana optymalizacja kosztów

Rozważ automatyczne wdrożenie autouzupełniania miejsc (starsza wersja), aby uzyskać dostęp do SKU: Autouzupełnianie – cena za żądanie i poprosić o wyniki z interfejsu Geocoding API dotyczące wybranego miejsca zamiast informacji o miejscu (starsza wersja). Ceny za żądanie w połączeniu z Geocoding API są bardziej opłacalne niż ceny za sesję, jeśli spełnione są oba te warunki:

  • Jeśli potrzebujesz tylko szerokości i długości geograficznej lub adresu miejsca wybranego przez użytkownika, interfejs Geocoding API dostarcza te informacje za mniejszą opłatą niż wywołanie interfejsu Place Details (starsza wersja).
  • Jeśli użytkownicy wybierają podpowiedź autouzupełniania średnio w ciągu maksymalnie 4 żądań podpowiedzi autouzupełniania miejsc (starsza wersja), ceny za żądanie mogą być bardziej opłacalne niż ceny za sesję.
Aby wybrać implementację Autouzupełniania miejsc (starsza wersja), która jest najtańsza dla Twojej aplikacji, znajdź w poniższej tabeli wiersz odpowiadający potrzebom Twojej aplikacji.
Co musi zawierać Twoje zgłoszenie Średnia liczba żądań autouzupełniania miejsc (starsza wersja), zanim użytkownik wybierze podpowiedź Zalecana implementacja
informacje o miejscu inne niż adres i lokalizacja, takie jak nazwa miejsca, stan firmy lub godziny otwarcia; Dowolna liczba Autouzupełnianie miejsc (starsza wersja) oparte na sesji z informacjami o miejscu (starsza wersja)
Tylko adres i szerokość/długość geograficzna wybranej podpowiedzi 4 lub mniej Autouzupełnianie miejsc (starsza wersja) na żądanie z interfejsem Geocoding API
Tylko adres i szerokość/długość geograficzna wybranej podpowiedzi Więcej niż 4 Autouzupełnianie miejsc na podstawie sesji (starsza wersja) w przypadku aplikacji, które wymagają tylko adresu

Interfejs Geocoding API może być bardziej opłacalny niż interfejs Place Details (starsza wersja) w przypadku Twojej aplikacji, w zależności od wydajności korzystania z interfejsu Place Autocomplete (starsza wersja). Skuteczność autouzupełniania miejsc (starsza wersja) w każdej aplikacji zależy od tego, co wpisują użytkownicy, gdzie aplikacja jest używana i czy wdrożono sprawdzone metody optymalizacji wydajności.

Aby znaleźć średnią liczbę żądań dla tabeli, przeanalizuj, ile znaków użytkownik wpisuje średnio przed wybraniem podpowiedzi autouzupełniania miejsc (starsza wersja) w aplikacji.

Autouzupełnianie miejsc (starsza wersja) na podstawie sesji z informacjami o miejscu (starsza wersja)

Używaj autouzupełniania miejsc (starsza wersja) opartego na sesji z informacjami o miejscu (starsza wersja).
Ponieważ Twoja aplikacja wymaga informacji o miejscu (starsza wersja), takich jak nazwa miejsca, status firmy lub godziny otwarcia, Twoja implementacja Autouzupełniania miejsc (starsza wersja) powinna używać tokena sesji (programowo lub wbudowanego w widżety JavaScript, Android lub iOS) na sesję oraz odpowiednich kodów SKU danych miejsc, w zależności od tego, o które pola danych miejsc prosisz.1

Implementacja widżetu
Zarządzanie sesjami jest automatycznie wbudowane w widżety JavaScript, Android lub iOS. Obejmuje to zarówno żądania Autouzupełniania miejsc (starsza wersja), jak i żądania informacji o miejscu (starsza wersja) dotyczące wybranej podpowiedzi. Pamiętaj, aby określić parametr fields, aby mieć pewność, że żądasz tylko tych pól danych Autouzupełniania miejsc (starszej wersji), których potrzebujesz.

Implementacja automatyczna
Używaj tokena sesji w żądaniach autouzupełniania miejsc (starsza wersja). Podczas wysyłania żądania dotyczącego informacji o miejscu (starsza wersja) wybranej podpowiedzi uwzględnij te parametry:

  1. Identyfikator miejsca z odpowiedzi Autouzupełniania miejsc (starsza wersja).
  2. Token sesji użyty w żądaniu autouzupełniania miejsc (starsza wersja)
  3. Parametr fields określający potrzebne pola danych autouzupełniania miejsc (starsza wersja).

Autouzupełnianie miejsc (starsza wersja) na żądanie z interfejsem Geocoding API

Zaimplementuj Autouzupełnianie miejsc (starsza wersja) programowo bez tokenów sesji i wywołaj interfejs Geocoding API w przypadku wybranej podpowiedzi miejsca.
Geocoding API dostarcza adresy oraz współrzędne szerokości i długości geograficznej. Wykonanie 4 żądań Autouzupełnianie – na żądanie oraz wywołanie Geocoding API dotyczące wybranej podpowiedzi miejsca kosztuje mniej niż Autouzupełnianie miejsc (starsza wersja) na sesję.1

Rozważ zastosowanie sprawdzonych metod dotyczących wydajności, aby ułatwić użytkownikom uzyskiwanie podpowiedzi, których szukają, przy użyciu jeszcze mniejszej liczby znaków.

Autouzupełnianie miejsc na podstawie sesji (starsza wersja) w przypadku aplikacji, które korzystają tylko z adresów

Używaj autouzupełniania miejsc (starsza wersja) opartego na sesji z informacjami o miejscu (starsza wersja).
Średnia liczba żądań, które spodziewasz się wysłać, zanim użytkownik wybierze podpowiedź Autouzupełniania miejsc (starsza wersja), przekracza koszt rozliczeń za sesję, dlatego Twoja implementacja Autouzupełniania miejsc (starsza wersja) powinna używać tokena sesji zarówno w przypadku żądań Autouzupełniania miejsc (starsza wersja), jak i powiązanych żądań informacji o miejscu (starsza wersja) za sesję. 1

Implementacja widżetu
Zarządzanie sesjami jest automatycznie wbudowane w widżety JavaScript, Android i iOS. Obejmuje to zarówno żądania Autouzupełniania miejsc (starsza wersja), jak i żądania informacji o miejscu (starsza wersja) dotyczące wybranej podpowiedzi. Pamiętaj, aby określić parametr fields, aby mieć pewność, że żądasz tylko tych pól, których potrzebujesz.

Implementacja automatyczna
Używaj tokena sesji w żądaniach autouzupełniania miejsc (starsza wersja). Wysyłając żądanie dotyczące informacji o miejscu (starsza wersja) dla wybranej podpowiedzi, uwzględnij te parametry:

  1. Identyfikator miejsca z odpowiedzi Autouzupełniania miejsc (starsza wersja).
  2. Token sesji użyty w żądaniu autouzupełniania miejsc (starsza wersja)
  3. Parametr fields określający pola danych Basic Data, takie jak adres i geometria.

Rozważ opóźnienie żądań autouzupełniania miejsc (starsza wersja)
Możesz zastosować strategie takie jak opóźnienie żądania autouzupełniania miejsc (starsza wersja), dopóki użytkownik nie wpisze pierwszych 3 lub 4 znaków, dzięki czemu aplikacja będzie wysyłać mniej żądań. Jeśli na przykład wysyłasz żądania Place Autocomplete (starsza wersja) dla każdego znaku po wpisaniu przez użytkownika trzeciego znaku, oznacza to, że jeśli użytkownik wpisze 7 znaków, a następnie wybierze podpowiedź, dla której wysyłasz jedno żądanie do interfejsu Geocoding API, łączny koszt będzie obejmował 4 żądania Place Autocomplete (starsza wersja) i geokodowanie1.

Jeśli opóźnienie żądań może obniżyć średnią liczbę żądań automatycznych poniżej 4, możesz postępować zgodnie ze wskazówkami dotyczącymi implementacji wydajnej funkcji autouzupełniania miejsc (starszej wersji) z interfejsem Geocoding API. Pamiętaj, że opóźnianie żądań może być postrzegane przez użytkownika jako opóźnienie, ponieważ może on oczekiwać podpowiedzi po każdym naciśnięciu klawisza.

Rozważ zastosowanie sprawdzonych metod dotyczących wydajności, aby pomóc użytkownikom uzyskać podpowiedź, której szukają, przy użyciu mniejszej liczby znaków.


  1. Koszty znajdziesz w cennikach Google Maps Platform.

Sprawdzone metody dotyczące skuteczności

Poniższe wytyczne opisują sposoby optymalizacji wydajności autouzupełniania miejsc (starsza wersja):

  • Dodaj do implementacji Autouzupełniania miejsc (starszej wersji) ograniczenia związane z krajem, ustawienia lokalizacji i (w przypadku implementacji automatycznych) preferencje językowe. Ustawienia języka nie są potrzebne w przypadku widżetów, ponieważ pobierają one ustawienia języka z przeglądarki lub urządzenia mobilnego użytkownika.
  • Jeśli autouzupełnianiu miejsc (starsza wersja) towarzyszy mapa, możesz ustawić preferencje lokalizacji według widocznego obszaru mapy.
  • W sytuacjach, gdy użytkownik nie wybierze żadnej z podpowiedzi autouzupełniania miejsc (starsza wersja), zwykle dlatego, że żadna z nich nie jest adresem, którego szuka, możesz ponownie użyć pierwotnych danych wejściowych użytkownika, aby spróbować uzyskać trafniejsze wyniki:
    • Jeśli oczekujesz, że użytkownik wpisze tylko informacje o adresie, użyj ponownie oryginalnych danych wejściowych użytkownika w wywołaniu interfejsu Geocoding API.
    • Jeśli oczekujesz, że użytkownik będzie wpisywać zapytania dotyczące konkretnego miejsca według nazwy lub adresu, użyj żądania informacji o miejscu (starsza wersja). Jeśli wyniki są oczekiwane tylko w określonym regionie, użyj ustawienia lokalizacji.
    Inne scenariusze, w których najlepiej jest użyć Geocoding API:
    • Użytkownicy wpisują adresy podlokali, np. adresy konkretnych lokali lub mieszkań w budynku. Na przykład czeski adres „Stroupežnického 3191/17, Praha” zwraca częściową podpowiedź w Autouzupełnianiu miejsc (starsza wersja).
    • Użytkownicy wpisują adresy z prefiksami segmentów dróg, np. „23-30 29th St, Queens” w Nowym Jorku lub „47-380 Kamehameha Hwy, Kaneohe” na wyspie Kauai na Hawajach.

Uwzględnianie lokalizacji

Możesz faworyzować wyniki z określonego obszaru, przekazując parametry location i radius. Dzięki temu Autouzupełnianie miejsc (starsza wersja) będzie preferować wyświetlanie wyników w określonym obszarze. Wyniki spoza zdefiniowanego obszaru mogą być nadal wyświetlane. Możesz użyć parametru includedRegionCodes, aby filtrować wyniki i wyświetlać tylko miejsca w określonym kraju.

Ograniczanie lokalizacji

Ogranicz wyniki do określonego obszaru, przekazując parametr locationRestriction.

Możesz też ograniczyć wyniki do regionu określonego przez parametry location i radius, dodając parametr strictbounds. Dzięki temu autouzupełnianie miejsc (starsza wersja) zwraca tylko wyniki z tego regionu.