Identyfikatory miejsc jednoznacznie identyfikują miejsce w bazie danych Miejsc Google i w Mapach Google. Identyfikatory miejsc są akceptowane w żądaniach wysyłanych do następujących interfejsów API Map Google:
- Pobierając adres dla identyfikatora miejsca w usłudze internetowej Geocoding API oraz Usługa geokodowania, Maps JavaScript API.
- Określanie punktu początkowego, docelowego i pośredniego Routes API i Directions API usługi sieci Web i usługi wyznaczania tras, Maps JavaScript API.
- określanie punktów początkowych i miejsc docelowych w interfejsie Routes API oraz Usługa sieciowa interfejsu DISTANCE Matrix API oraz Usługa macierzy odległości, Maps JavaScript API.
- Pobieranie informacji o miejscach z usługi internetowej interfejsu Places API, pakietu SDK Places na Androida, pakietu SDK Places na iOS i biblioteki Miejsc.
- Użycie parametrów identyfikatora miejsca w interfejsie Maps Embed API.
- Pobieranie wyszukiwanych haseł z adresów URL Map Google.
- Wyświetlam ograniczenia prędkości w interfejsie Roads API.
- Znajdowanie i określanie wielokątów granicy w stylu opartym na danych na potrzeby granic.
Znajdowanie identyfikatora określonego miejsca
Czy szukasz identyfikatora konkretnego miejsca? Korzystanie z identyfikatora miejsca poniżej, aby wyszukać miejsce i poznać jego identyfikator:
Ewentualnie możesz wyświetl narzędzie do wyszukiwania identyfikatorów miejsc z jego kodem w interfejsie Maps JavaScript API. dokumentacji.
Omówienie
Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. jego długość może być różna (nie ma maksymalnej długości dla identyfikatorów miejsc). Przykłady:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM
-
GhIJQWDl0CIeQUARxks3icF8U8A
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
-
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
Identyfikatory miejsc są dostępne dla większości lokalizacji, w tym firm, punktów orientacyjnych, parki i skrzyżowania. Dla tego samego miejsca lub lokalizacji mają kilka różnych identyfikatorów miejsc. Identyfikatory miejsc mogą się z czasem zmieniać.
Możesz używać tego samego identyfikatora miejsca w interfejsie Places API oraz liczby interfejsów API Google Maps Platform. Tego samego identyfikatora miejsca możesz na przykład użyć do wskazać miejsce na liście Places API, Maps JavaScript API interfejs Geocoding API interfejs Maps Embed API oraz Roads API.
Pobieranie szczegółowych informacji o miejscu przy użyciu identyfikatora miejsca
Typowym sposobem korzystania z identyfikatorów miejsc jest wyszukanie miejsca. (za pomocą interfejsu Places API) lub Miejsca w interfejsie Maps JavaScript API), a potem użyj zwrócony identyfikator miejsca, aby pobrać jego szczegóły. Możesz w nim przechowywać identyfikator miejsca aby później pobrać informacje o tym samym miejscu. Przeczytaj o zapisanie identyfikatorów miejsc poniżej.
Przykład z wykorzystaniem pakietu SDK Miejsc na Androida
W pakiecie SDK Places dla Androida można pobrać identyfikator miejsca poprzez
połączenia
Place.getId()
Usługa autouzupełniania miejsc
zwraca także identyfikator każdego miejsca pasującego do podanego zapytania.
i filtrować. Użyj identyfikatora miejsca, aby pobrać
Place
możesz zobaczyć go później.
Aby uzyskać miejsce na podstawie identyfikatora, zadzwoń pod numer
PlacesClient.fetchPlace()
zaliczając FetchPlaceRequest
.
Interfejs API zwraca błąd
FetchPlaceResponse
w
Task
FetchPlaceResponse
zawiera
Place
obiekt pasujący do podanego identyfikatora miejsca.
Poniższy przykładowy kod pokazuje wywołanie fetchPlace()
pod numerem
pobrać szczegółowe informacje o wybranym miejscu.
Kotlin
// Define a Place ID. val placeId = "INSERT_PLACE_ID_HERE" // Specify the fields to return. val placeFields = listOf(Place.Field.ID, Place.Field.NAME) // Construct a request object, passing the place ID and fields array. val request = FetchPlaceRequest.newInstance(placeId, placeFields) placesClient.fetchPlace(request) .addOnSuccessListener { response: FetchPlaceResponse -> val place = response.place Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}") }.addOnFailureListener { exception: Exception -> if (exception is ApiException) { Log.e(TAG, "Place not found: ${exception.message}") val statusCode = exception.statusCode TODO("Handle error with given status code") } }
Java
// Define a Place ID. final String placeId = "INSERT_PLACE_ID_HERE"; // Specify the fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Construct a request object, passing the place ID and fields array. final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields); placesClient.fetchPlace(request).addOnSuccessListener((response) -> { Place place = response.getPlace(); Log.i(TAG, "Place found: " + place.getName()); }).addOnFailureListener((exception) -> { if (exception instanceof ApiException) { final ApiException apiException = (ApiException) exception; Log.e(TAG, "Place not found: " + exception.getMessage()); final int statusCode = apiException.getStatusCode(); // TODO: Handle error with given status code. } });
Zapisz identyfikatory miejsc do późniejszego użycia
Identyfikatory miejsc są wyłączone z ograniczeń buforowania opisanych w Artykuł 3.2.3(b) Warunków korzystania z usługi Google Maps Platform. Możesz więc przechowywać wartości identyfikatorów miejsc na później i ich używanie.
Odświeżam identyfikatory zapisanych miejsc
Zalecamy odświeżenie identyfikatorów miejsc, jeśli są starsze niż 12 miesięcy. Ty
mogą odświeżyć identyfikatory miejsc bezpłatnie, tworząc
Prośba o dodanie szczegółów
określając tylko Place.Field.ID
w parametrze fields
.
To wywołanie uruchamia
Szczegóły Miejsc – odświeżenie identyfikatora
SKU.
Ta prośba może też zwrócić stan: NOT_FOUND
w kodzie. Jedną ze strategii jest przechowywanie pierwotnego żądania, które zwróciło każde miejsce
ID. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz ponownie wysłać prośbę, aby pobrać nowy identyfikator
wyników. Te wyniki mogą, ale nie muszą, dotyczyć pierwotnego miejsca. Jednak ta prośba
jest płatna.
Kody błędów podczas korzystania z identyfikatorów miejsc
Kod stanu INVALID_REQUEST
wskazuje, że określony
identyfikator miejsca jest nieprawidłowy. Wartość INVALID_REQUEST
może zostać zwrócona, gdy
identyfikator miejsca został obcięty lub w inny sposób zmodyfikowany i jest już nieprawidłowy.
Kod stanu NOT_FOUND
wskazuje, że podany identyfikator miejsca
jest przestarzały. Identyfikator miejsca może stać się nieaktualny, jeśli firma zostanie zamknięta lub przeniesiona do
o nowe miejsce. Identyfikatory miejsc mogą się zmieniać z powodu dużych aktualizacji Google
Baza danych Map Google. W takich przypadkach miejsce może otrzymać nowy identyfikator, a stary
Identyfikator zwraca odpowiedź NOT_FOUND
.
Niektóre typy identyfikatorów miejsc mogą czasami powodować
NOT_FOUND
lub interfejs API może zwrócić inny identyfikator miejsca w
odpowiedź. Typy identyfikatorów miejsc:
- adresy, które nie występują w Mapach Google jako dokładne adresy; ale są ustalane na podstawie zakresu adresów.
- fragmenty długiej trasy, których żądanie zawiera również nazwę miasta lub lokalizacji.
- Skrzyżowania.
- Miejsca z komponentem adresu typu
subpremise
.
Identyfikatory te często mają postać długiego ciągu znaków (nie ma maksymalnej długości dla identyfikatorów miejsc). Na przykład:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4