Identyfikatory miejsc

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

  • Pobieram adres dla identyfikatora miejsca w usłudze internetowej Geocoding API, usłudze Geocoding i Maps JavaScript API.
  • Określanie punktu początkowego, docelowego i pośredniego w usłudze internetowej Routes API i Directions API oraz usłudze Directions API Map Google JavaScript.
  • Określanie punktów początkowych i miejsc docelowych w usłudze internetowej Routes API i w usłudze internetowej Reach Matrix API oraz w usłudze matrycy odległości i 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? Aby wyszukać miejsce i uzyskać jego identyfikator, skorzystaj z wyszukiwarki identyfikatorów miejsc:

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

Przegląd

Identyfikator miejsca to identyfikator tekstowy jednoznacznie identyfikujący 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 dla większości lokalizacji, w tym firm, punktów orientacyjnych, parków i skrzyżowań. Te same miejsca lub lokalizacje mogą mieć kilka różnych identyfikatorów. Identyfikatory miejsc mogą się z czasem zmieniać.

Tego samego identyfikatora miejsca możesz używać we wszystkich interfejsach 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 interfejsie Places API, Maps JavaScript API, Geocoding API, Maps Embed API i Roads API.

Pobieranie szczegółowych informacji o miejscu przy użyciu identyfikatora miejsca

Typowym sposobem korzystania z identyfikatorów miejsc jest wyszukanie danego miejsca (np. za pomocą interfejsu Places API lub biblioteki Places w interfejsie Maps JavaScript API), a następnie użycie zwróconego identyfikatora miejsca do pobrania szczegółowych informacji o miejscu. Możesz zapisać identyfikator miejsca i użyć go do późniejszego pobrania tych samych informacji o miejscu. Więcej informacji o zapisywaniu identyfikatorów miejsc znajdziesz poniżej.

Przykład z wykorzystaniem pakietu SDK Miejsc na iOS

Identyfikator miejsca to identyfikator tekstowy jednoznacznie identyfikujący miejsce. W pakiecie Places SDK na iOS można pobrać identyfikator miejsca z obiektu GMSPlace. Możesz zapisać identyfikator miejsca i użyć go do późniejszego pobrania obiektu GMSPlace.

Aby uzyskać dane miejsca według identyfikatora, wywołaj metodę GMSPlacesClient fetchPlaceFromPlaceID:, przekazując te parametry:

  • Ciąg tekstowy zawierający identyfikator miejsca.
  • Co najmniej jeden element typu GMSPlaceField, określający typy danych do zwrócenia.
  • Token sesji, jeśli nastąpi wywołanie w celu zakończenia zapytania autouzupełniania. W przeciwnym razie przekaż nil.
  • GMSPlaceResultCallback do 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 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]);
  }
}];

Zapisz identyfikatory miejsc do późniejszego użycia

Identyfikatory miejsc są wyłączone z ograniczeń dotyczących zapisywania w pamięci podręcznej określonych w artykule 3.2.3(b) Warunków korzystania z usługi Google Maps Platform. Możesz więc przechowywać wartości identyfikatorów miejsc do późniejszego użycia.

Odświeżam identyfikatory zapisanych miejsc

Zalecamy odświeżenie identyfikatorów miejsc, jeśli są starsze niż 12 miesięcy. Identyfikatory miejsc możesz odświeżać bezpłatnie, przesyłając żądanie informacji o miejscu, podając w parametrze fields tylko pole GMSPlaceFieldPlaceID. To wywołanie aktywuje kod SKU Szczegóły miejsc – odświeżenie identyfikatora.

To żądanie może również zwrócić kod stanu NOT_FOUND. Jedną ze strategii jest zapisanie pierwotnego żądania, które zwróciło identyfikator każdego miejsca. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz wysłać prośbę ponownie, aby uzyskać nowe wyniki. Te wyniki mogą, ale nie muszą, dotyczyć pierwotnego miejsca. Żądanie to jest jednak płatne.

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ł obcięty lub w inny sposób zmodyfikowany 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 zostanie zamknięta lub przeniesione do nowej lokalizacji. Identyfikatory miejsc mogą się zmieniać z powodu dużych aktualizacji bazy danych Map Google. W takich przypadkach dane miejsce może otrzymać nowy identyfikator, a stary identyfikator zwróci odpowiedź NOT_FOUND.

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

  • Adresy, które nie występują w Mapach Google jako dokładne adresy, ale zostały ustalone na podstawie zakresu adresów.
  • Fragmenty długiej trasy, które w żądaniu wskazują także 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