Identyfikatory miejsc

Identyfikatory miejsc jednoznacznie identyfikują dane 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 i usłudze Geocoding API oraz Maps JavaScript API.
  • Określanie miejsca wylotu, miejsca docelowego i pośrednich punktów na trasie w usłudze sieciowej Routes API i Directions API oraz usłudze Directions API w Maps JavaScript API.
  • określanie punktów początkowych i docelowych w usłudze internetowej Routes API oraz w usłudze Range Matrix API oraz w usłudze Macierz odległości i Maps JavaScript API;
  • Pobieranie szczegółów miejsc z usługi internetowej Places API, Places SDK na Androida, Places SDK na iOS i biblioteki Miejsc.
  • Użycie parametrów identyfikatora miejsca w interfejsie Maps Embed API.
  • Pobieranie zapytań z adresów URL Map Google.
  • Wyświetlanie ograniczeń prędkości w interfejsie Roads API.
  • Znajdowanie i określanie stylu wielokątów granic w stylu granic opartym na danych.

Znajdowanie identyfikatora konkretnego miejsca

Szukasz identyfikatora konkretnego miejsca? Skorzystaj z poniższej wyszukiwarki identyfikatorów miejsc, aby wyszukać miejsce i uzyskać jego identyfikator:

Możesz też wyświetlić wyszukiwarkę identyfikatorów miejsc wraz z jej 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 dla większości lokalizacji, w tym firm, punktów orientacyjnych, parków i skrzyżowań. Takie samo miejsce lub lokalizacja może mieć kilka różnych identyfikatorów miejsca. Identyfikatory miejsc mogą się z czasem zmieniać.

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

Pobierz informacje o miejscu przy użyciu identyfikatora miejsca

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

Przykład korzystania z pakietu SDK Miejsc na iOS

Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. W pakiecie Places SDK na 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 znaleźć miejsce według identyfikatora, wywołaj metodę GMSPlacesClient fetchPlaceFromPlaceID:, przekazując te parametry:

  • Ciąg tekstowy zawierający identyfikator miejsca.
  • Co najmniej jeden parametr GMSPlaceField określający typy danych do zwrócenia.
  • Token sesji, jeśli wywołanie jest wykonywane w celu zakończenia zapytania autouzupełniania. W przeciwnym razie pozostaw wartość zerową.
  • Parametr GMSPlaceResultCallback do obsługi wyniku.

Interfejs API wywołuje podaną metodę wywołania zwrotnego, przekazując obiekt GMSPlace. Jeśli nie można znaleźć miejsca, obiekt jest pusty.

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ą zwolnione zograniczeń 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 przechowywać wartości identyfikatorów miejsca do późniejszego użycia.

Odświeżanie zapisanych identyfikatorów 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, przesyłając żądanie informacji o miejscu, podając tylko pole GMSPlaceFieldPlaceID w parametrze fields. To wywołanie aktywuje SKU Szczegóły miejsc – odświeżanie identyfikatora.

To żądanie może też zwrócić kod stanu NOT_FOUND. Jedną ze strategii jest przechowywanie pierwotnego żądania, które zwróciło każdy identyfikator miejsca. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz wysłać prośbę ponownie, aby uzyskać nowe wyniki. Wyniki mogą, ale nie muszą, zawierać pierwotne miejsce. Takie żądanie może jednak być płatne.

Kody błędów występujące 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 jest już nieaktualny.

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 przeniesiona. Identyfikatory miejsc mogą się zmieniać z powodu dużych aktualizacji bazy danych Map Google. W takich przypadkach 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 w odpowiedzi zwracać inny identyfikator miejsca. Typy identyfikatorów miejsca:

  • Adresy, które nie istnieją w Mapach Google jako dokładne adresy, ale są określane na podstawie wielu adresów.
  • Fragmenty długiej trasy, gdzie w żądaniu jest też podane 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 określonej 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