Identyfikatory miejsc

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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 geokodowania – Maps JavaScript API.
  • Określanie punktów początkowych, docelowych i pośrednich w usłudze internetowej Trasa API oraz w usłudze Trasa dojazdu, interfejsie API JavaScript Map Google.
  • Określanie miejsc docelowych i miejsc docelowych w usłudze internetowej DISTANCE Matrix API oraz w usłudze Maps Array Matrix, Maps JavaScript API.
  • Pobieram szczegóły miejsca w usłudze internetowej interfejsu Places API, w pakiecie SDK Miejsc na Androida, w pakiecie SDK Miejsc na iOS i w języku JavaScript API.
  • Używanie parametrów identyfikatora miejsca w interfejsie API umieszczania na stronie.
  • 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.

Znajdowanie identyfikatora konkretnego miejsca

Szukasz identyfikatora danego miejsca? Aby znaleźć miejsce i uzyskać jego identyfikator, użyj wyszukiwarki miejsc:

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

Opis

Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. Długość identyfikatora może być inna (identyfikatory miejsc nie mają 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 miejsca. Identyfikatory miejsc mogą się z czasem zmieniać.

Możesz używać tego samego identyfikatora miejsca w Places API i wielu interfejsach API Google Maps Platform. Możesz na przykład użyć tego samego identyfikatora miejsca w interfejsie Places API, Maps JavaScript API, Geocoding API, Maps Umieszczanie API i Roads API.

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

Identyfikatory miejsc są zwolnione z ograniczeń dotyczących 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 na później.

Typowym sposobem korzystania z identyfikatorów miejsc jest wyszukiwanie miejsc (na przykład za pomocą interfejsu Places API lub Biblioteki miejsc w interfejsie Maps JavaScript API), a następnie użycie zwróconego identyfikatora miejsca w celu pobrania szczegółów miejsca. Możesz zapisać identyfikator miejsca i użyć go do pobrania tych samych szczegółów później. Informacje o zapisywaniu identyfikatorów miejsc znajdziesz poniżej.

Przykład korzystania z pakietu SDK Miejsc na iOS

Identyfikator miejsca to tekstowy identyfikator, 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 do ponownego pobrania obiektu GMSPlace.

Aby znaleźć miejsce według identyfikatora, wywołaj element GMSPlacesClient fetchPlaceFromPlaceID:, przekazując te parametry:

  • Ciąg tekstowy z identyfikatorem miejsca.
  • Co najmniej jeden GMSPlaceField, który określa typy danych do zwrócenia.
  • Token sesji, jeśli wywołanie ma na celu zakończenie zapytania autouzupełniania. W przeciwnym razie podaj nil.
  • GMSPlaceResultCallback do obsługi wyniku.

Interfejs API wywołuje określoną metodę wywołania zwrotnego i przekazuje obiekt GMSPlace. Jeśli miejsce nie zostanie znalezione, obiekt Place 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]);
  }
}];

Zapisuj identyfikatory miejsc na później

Identyfikatory miejsc są zwolnione z ograniczeń dotyczących pamięci podręcznej opisanych w sekcji 3.2.3(a) Warunków korzystania z Google Maps Platform. Dlatego możesz zapisać wartości identyfikatorów miejsc na później.

Odświeżam zapisane identyfikatory miejsc

Zalecamy odświeżenie 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, określając tylko pole GMSPlaceFieldPlaceID w parametrze fields. Spowoduje to uruchomienie kodu SKU aktualizacji szczegółów miejsca – odświeżenie identyfikatora SKU. To żądanie może jednak zwrócić kod stanu NOT_FOUND. Jedną ze strategii jest przechowywanie oryginalnego żądania, które zwróciło każdy identyfikator miejsca. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz ponownie wysłać prośbę o aktualne wyniki. Te wyniki mogą, ale nie muszą, zawierać oryginalne miejsce. Żądanie jest płatne.

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

Kod stanu INVALID_REQUEST wskazuje, że podany identyfikator miejsca jest nieprawidłowy. Metoda 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ę przestarzały, 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 miejsca, a stary identyfikator zwróci odpowiedź NOT_FOUND.

Na przykład niektóre typy identyfikatorów miejsc mogą czasami wywoływać odpowiedź NOT_FOUND lub interfejs API może zwracać w odpowiedzi inny identyfikator miejsca. Te rodzaje identyfikatorów miejsca to:

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

Identyfikatory często mają postać długiego ciągu (identyfikatory miejsc nie mają maksymalnej długości). Przykład:

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