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+R9to849VCWC8%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, USApo ucieczce adresu URL toCWC8%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).xmlwskazuje 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.
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łówkuAccept-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.
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
keywordlubname: 50 000 metrów -
bez
keywordlubname-
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łądINVALID_REQUEST.
-
Do 50 000 metrów, dostosowywane dynamicznie na podstawie gęstości obszaru, niezależnie od parametru
- z
- 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ż |
|
opcjonalnie | Array<string> |
Gdy usługa zwraca dodatkowe informacje o specyfikacji żądania, w obiekcie odpowiedzi może znajdować się dodatkowe pole |
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 parametruinput. -
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ść).
-
REQUEST_DENIEDz informacją, że Twoja prośba została odrzucona. Zwykle dzieje się tak, ponieważ:- W żądaniu brakuje klucza interfejsu API.
- Parametr
keyjest nieprawidłowy.
UNKNOWN_ERRORwskazują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 |
|
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 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ą |
|
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: |
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ą Więcej informacji znajdziesz w artykule PlaceAutocompleteMatchedSubstring. |
|
opcjonalnie | tekst |
Zawiera tekst dodatkowy podpowiedzi, zwykle lokalizację miejsca. |
|
opcjonalnie | Array<PlaceAutocompleteMatchedSubstring> |
Zawiera tablicę z wartością 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:
- Najszybszym sposobem na stworzenie działającego interfejsu użytkownika jest użycie widżetu autouzupełniania miejsc (starsza wersja) z Maps JavaScript API, widżetu autouzupełniania miejsc (starsza wersja) z pakietu SDK Miejsc na Androida lub elementu sterującego interfejsu autouzupełniania miejsc (starsza wersja) z pakietu SDK Miejsc na iOS.
- Od samego początku poznaj najważniejsze pola danych Autouzupełniania miejsc (starsza wersja).
- Pola ukierunkowania na lokalizację i ograniczenia lokalizacji są opcjonalne, ale mogą mieć znaczący wpływ na działanie autouzupełniania.
- Użyj obsługi błędów, aby upewnić się, że aplikacja będzie działać prawidłowo, jeśli interfejs API zwróci błąd.
- Upewnij się, że aplikacja obsługuje sytuację, gdy nie ma wyboru, i oferuje użytkownikom sposób na kontynuowanie.
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ę.
| 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:
- Identyfikator miejsca z odpowiedzi Autouzupełniania miejsc (starsza wersja).
- Token sesji użyty w żądaniu autouzupełniania miejsc (starsza wersja)
- Parametr
fieldsokreś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:
- Identyfikator miejsca z odpowiedzi Autouzupełniania miejsc (starsza wersja).
- Token sesji użyty w żądaniu autouzupełniania miejsc (starsza wersja)
- Parametr
fieldsokreś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.
-
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.
- 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.