Identyfikatory miejsc

Identyfikatory miejsc jednoznacznie identyfikują miejsca w bazie danych Miejsc Google i w Mapach Google. Identyfikatory miejsc są akceptowane w żądaniach do tych interfejsów API Map Google:

  • Pobieram adres identyfikatora miejsca w usłudze internetowej Geocoding API i usłudze Geocoding Service, Maps JavaScript API.
  • Określanie punktu początkowego, docelowego i pośredniego w usłudze internetowej Trasa interfejsu API oraz usłudze wyznaczania trasy, interfejs API JavaScript Map Google.
  • Określanie punktów początkowych i docelowych w usłudze internetowej Length Matrix API oraz w usłudze Length Matrix API, Maps JavaScript API.
  • Uzyskiwanie szczegółowych informacji o miejscach w usłudze internetowej Places API, pakiecie SDK Miejsc na Androida, w pakiecie SDK Miejsc na iOS i w Bibliotece miejsc.
  • Używanie parametrów identyfikatora miejsca w interfejsie Maps Embed API.
  • Pobieranie zapytań w adresach URL Map Google.
  • Wyświetlam ograniczenia prędkości w Roads API.
  • Znajdowanie i stylowanie wielokątów granic w stylu opartym na danych dla granic.

Znajdowanie identyfikatora konkretnego miejsca

Czy szukasz identyfikatora konkretnego miejsca? Aby znaleźć miejsce i uzyskać jego identyfikator, użyj narzędzia do wyszukiwania identyfikatorów miejsc poniżej:

Możesz też wyświetlić wyszukiwarkę identyfikatorów miejsc z kodem w dokumentacji interfejsu Maps JavaScript API.

Przegląd

Identyfikator miejsca to identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. Długość identyfikatora może się różnić (w przypadku identyfikatorów miejsc nie ma maksymalnej długości). 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, parków i skrzyżowań. To samo miejsce lub lokalizacja może mieć wiele różnych identyfikatorów. Identyfikatory miejsc mogą się zmieniać.

Możesz używać tego samego identyfikatora miejsca w interfejsie Places API i w wielu interfejsach Google Maps Platform API. Możesz na przykład użyć tego samego identyfikatora miejsca, aby odwołać się do miejsca w interfejsie Places API, Maps JavaScript API, Geocoding API, Maps embed API i Roads API.

Pobieranie szczegółów miejsca za pomocą identyfikatora miejsca

Identyfikatory miejsc są zwolnione z ograniczeń w pamięci podręcznej opisanych w Sekcji 3.2.3(b) Warunków korzystania z Google Maps Platform. Gdy określisz identyfikator miejsca, możesz użyć go ponownie przy następnym wyszukiwaniu. Więcej informacji znajdziesz poniżej w sekcji Zapisywanie identyfikatorów miejsc do późniejszego użycia.

Typowym sposobem korzystania z identyfikatorów miejsc jest wyszukiwanie miejsca (na przykład za pomocą interfejsu Places API lub biblioteki miejsc w interfejsie Maps JavaScript API), a następnie zwracanie identyfikatora miejsca w celu pobrania jego szczegółów. Możesz go zapisać i użyć, by pobrać te same szczegóły później. Więcej informacji o zapisywaniu identyfikatorów miejsc znajdziesz poniżej.

Przykład korzystania z pakietu SDK Miejsc na iOS

Identyfikator miejsca to identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. W pakiecie SDK Miejsc na iOS możesz pobrać identyfikator miejsca z obiektu GMSPlace. Możesz zapisać identyfikator miejsca i użyć go później do pobrania obiektu GMSPlace.

Aby uzyskać miejsce według identyfikatora, wywołaj funkcję GMSPlacesClient fetchPlaceFromPlaceID:, przekazując te parametry:

  • Ciąg znaków zawierający identyfikator miejsca.
  • Co najmniej jeden element GMSPlaceField określający typy danych do zwrócenia.
  • Token sesji, jeśli wywołanie ma zakończyć zapytanie autouzupełniania. W przeciwnym razie przekaż wartość nil.
  • GMSPlaceResultCallback do obsługi wyniku.

Interfejs API wywołuje określoną metodę wywołania zwrotnego, przekazując obiekt GMSPlace. Jeśli miejsce nie zostało znalezione, obiekt ma wartość nil.

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]);
  }
}];

Zapisuj identyfikatory miejsc na później

Identyfikatory miejsc są zwolnione z ograniczeń przechowywania w pamięci podręcznej opisanych w sekcji 3.2.3(a) Warunków korzystania z usługi Google Maps Platform. Dlatego możesz przechowywać wartości identyfikatorów miejsc do późniejszego użycia.

Odświeżam zapisane identyfikatory miejsc

Zalecamy odświeżanie identyfikatorów miejsc, jeśli mają więcej niż 12 miesięcy. Identyfikatory miejsc możesz odświeżać bezpłatnie, wysyłając żądanie szczegółów miejsca, podając w polu fields tylko pole GMSPlaceFieldPlaceID. To wywołanie aktywuje kod SKU Miejsca – szczegóły odświeżania SKU. To żądanie może też jednak zwracać kod stanu NOT_FOUND. Jedną ze strategii jest przechowywanie pierwotnego żądania, które zwracało każdy identyfikator miejsca. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz ponownie wysłać prośbę, aby otrzymać nowe wyniki. Te wyniki mogą, ale nie muszą, zawierać pierwotne miejsce. Żądanie podlega opłacie.

Kody błędów podczas korzystania z identyfikatorów miejsc

Kod stanu INVALID_REQUEST wskazuje, że podany identyfikator miejsca jest nieprawidłowy. Wartość INVALID_REQUEST może zostać zwrócona, gdy identyfikator miejsca został skrócony lub zmodyfikowany w inny sposób i nie jest już prawidłowy.

Kod stanu NOT_FOUND wskazuje, że podany identyfikator miejsca jest nieaktualny. Identyfikator miejsca może stać się nieaktualny, jeśli firma zamknie firmę lub przejdzie do nowej lokalizacji. Identyfikatory miejsc mogą się zmieniać ze względu na dużą aktualizację bazy danych Map Google. W takim przypadku miejsce może otrzymać nowy identyfikator miejsca, a stary identyfikator zwróci odpowiedź NOT_FOUND.

W szczególności niektóre rodzaje identyfikatorów miejsc mogą czasami powodować odpowiedź NOT_FOUND lub interfejs API może zwrócić inny identyfikator miejsca. Typy identyfikatorów miejsc to:

  • Adresy, które nie istnieją w Mapach Google jako adresy dokładne, ale są ustalane na podstawie zakresu adresów.
  • Fragmenty długiej trasy, w których żądanie określa miasto lub miejscowość.
  • Skrzyżowania.
  • Miejsca z komponentem adresu typu subpremise.

Często mają one postać długiego ciągu (identyfikatory miejsc nie mają maksymalnej długości). Na przykład:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4