Wprowadzenie
Identyfikatory miejsc jednoznacznie identyfikują miejsce w bazie danych Miejsc Google i w Mapach Google. Identyfikatory miejsc są akceptowane w przypadku żądań wysyłanych do tych interfejsów API Map Google:
- Pobieranie adresu dla identyfikatora miejsca w interfejsie Geocoding API i usłudze Geocoding Service w interfejsie Maps JavaScript API.
- Określanie punktu początkowego, docelowego i pośrednich punktów na trasie w interfejsach Routes API i Directions API (starsza wersja) oraz w usłudze Directions Service, Maps JavaScript API (starsza wersja).
- określanie miejsc rozpoczęcia i zakończenia podróży w interfejsach Routes API i Distance Matrix API (starsza wersja) oraz w usłudze macierz odległości, Maps JavaScript API (starsza wersja);
- pobieranie informacji o miejscu w Places API (nowym), pakiecie SDK Miejsc na Androida (nowym), pakiecie SDK Miejsc na iOS (nowym) i bibliotece Miejsc;
- Używanie parametrów identyfikatora miejsca w interfejsie Maps Embed API.
- Pobieranie zapytań w adresach URL Map.
- Wyświetlanie ograniczeń prędkości w interfejsie Roads API.
- Wyszukiwanie i stylizowanie wielokątów granic w stylu opartym na danych dla granic.
Znajdowanie identyfikatora konkretnego miejsca
Szukasz identyfikatora miejsca konkretnego miejsca? Aby wyszukać miejsce i uzyskać jego identyfikator, skorzystaj z wyszukiwarki identyfikatorów miejsc poniżej:
Możesz też wyświetlić wyszukiwarkę identyfikatorów miejsc wraz z kodem w dokumentacji interfejsu Maps JavaScript API.
Przegląd
Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. Długość identyfikatora może być różna (nie ma maksymalnej długości identyfikatorów miejsc). Przykłady:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM -
GhIJQWDl0CIeQUARxks3icF8U8A -
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN -
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E -
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
Identyfikatory miejsc są dostępne w przypadku większości lokalizacji, w tym firm, punktów orientacyjnych, parków i skrzyżowań. To samo miejsce lub lokalizacja może mieć kilka różnych identyfikatorów miejsca. Identyfikatory miejsc mogą się z czasem zmieniać.
Możesz używać tego samego identyfikatora miejsca w interfejsie Places API i wielu interfejsach API Google Maps Platform. Możesz na przykład użyć tego samego identyfikatora miejsca, aby odwołać się do miejsca w Places API, Maps JavaScript API, Geocoding API, Maps Embed API i Roads API.
Pobieranie informacji o miejscu za pomocą identyfikatora miejsca
Częstym sposobem używania identyfikatorów miejsc jest wyszukiwanie miejsca za pomocą interfejsu Places API lub biblioteki Miejsc w interfejsie Maps JavaScript API. Następnie użyj zwróconego identyfikatora miejsca, aby pobrać informacje o miejscu. Możesz zapisać identyfikator miejsca i użyć go później, aby pobrać informacje o miejscu. Więcej informacji o zapisywaniu identyfikatorów miejsc znajdziesz w dalszej części tego dokumentu.
Przykład użycia pakietu SDK Miejsc na iOS
Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. W pakiecie Places SDK for iOS możesz pobrać identyfikator miejsca z obiektu GMSPlace. Możesz zapisać identyfikator miejsca i użyć go później do ponownego pobrania obiektu GMSPlace.
Aby uzyskać miejsce według identyfikatora, wywołaj funkcję GMSPlacesClient
fetchPlaceFromPlaceID:, przekazując te parametry:
- Ciąg tekstowy zawierający identyfikator miejsca.
- Co najmniej 1
GMSPlaceFieldokreślający typy danych do zwrócenia. - token sesji, jeśli połączenie jest wykonywane w celu zakończenia zapytania autouzupełniania; W przeciwnym razie przekaż wartość nil.
GMSPlaceResultCallbackdo obsługi wyniku.
Interfejs API wywołuje określoną metodę wywołania zwrotnego, przekazując obiekt GMSPlace. Jeśli miejsce nie zostanie znalezione, obiekt miejsca będzie miał wartość nil.
Pakiet SDK Places Swift na iOS
// Initialize Places Swift Client. let placesClient = PlacesClient.shared // A hotel in Saigon with an attribution let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Fetch Place Request. let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("The selected place is: \(place.displayName): \(String(describing: place.description))") case .failure(let placesError): print("Place not found: \(placeID); \(placesError)") } }
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
Zapisywanie identyfikatorów miejsc do późniejszego użycia
Identyfikatory miejsc są wyłączone z ograniczeń dotyczących buforowania określonych w artykule 3.2.3(b) Warunków korzystania z usługi Google Maps Platform. Dzięki temu możesz zapisywać wartości identyfikatorów miejsc do późniejszego wykorzystania.
Odświeżanie zapisanych identyfikatorów miejsc
Identyfikatory miejsc mogą się zmieniać z powodu aktualizacji w bazie danych Map Google, dlatego Google zaleca odświeżanie identyfikatorów miejsc, które mają więcej niż 12 miesięcy. Identyfikatory miejsc możesz odświeżać bezpłatnie, wysyłając żądanie informacji o miejscu i podając tylko pole GMSPlaceFieldPlaceID w parametrze fields.
To wywołanie powoduje użycie kodu SKU informacje o miejscu – odświeżanie identyfikatora.
Kody błędów podczas korzystania z identyfikatorów miejsc
INVALID_REQUEST
Kod stanu INVALID_REQUEST oznacza, że podany identyfikator miejsca jest nieprawidłowy. INVALID_REQUEST może zostać zwrócony, gdy identyfikator miejsca został obcięty lub w inny sposób zmodyfikowany i nie jest już prawidłowy.
NOT_FOUND
Kod stanu NOT_FOUND oznacza, że podany identyfikator miejsca jest przestarzały. Identyfikator miejsca może stać się nieaktualny, jeśli firma zostanie zamknięta lub przeniesiona do nowej lokalizacji. Identyfikatory miejsc mogą się też zmieniać z powodu aktualizacji w bazie danych Map Google. W takich przypadkach miejsce może otrzymać nowy identyfikator miejsca, a stary identyfikator miejsca zwróci odpowiedź NOT_FOUND.
Aby odświeżyć wyniki w przypadku nieaktualnego identyfikatora miejsca, zapisz pierwotne żądanie, które zwróciło każdy identyfikator miejsca, i w razie potrzeby wyślij je ponownie. Pamiętaj, że ponownie wysłane żądanie jest rozliczane według odpowiedniego SKU.
Niektóre rodzaje identyfikatorów miejsc mogą czasami powodować odpowiedź NOT_FOUND lub interfejs API może zwracać w odpowiedzi inny identyfikator miejsca. Te typy identyfikatorów miejsca obejmują:
- Adresy, które nie istnieją w Mapach Google jako dokładne adresy, ale są wywnioskowane z zakresu adresów.
- segmenty długiej trasy, w przypadku których w żądaniu podano też miasto lub miejscowość;
- 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 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