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 geokodowania, Maps JavaScript API.
  • Określanie punktu początkowego, docelowego i pośredniego w usłudze internetowej Route API oraz w usłudze Trasa dojazdu, Maps JavaScript API.
  • Określanie punktów początkowych i docelowych w usłudze internetowej przeznaczonej dla matrycy odległości oraz w usłudze odległości ( Maps Matrix API), Maps JavaScript API.
  • Pobieram szczegółowe informacje o miejscach w usłudze internetowej interfejsu API interfejsu API, pakiet SDK Miejsc na Androida, pakiet SDK Miejsc na iOS oraz bibliotekę Miejsc, interfejs API JavaScript.
  • Używanie parametrów identyfikatora miejsca w interfejsie API Map Google do umieszczania.
  • Pobieranie zapytań w URL-ach Map.
  • Wyświetlam ograniczenia prędkości w interfejsie Roads API.
  • Znajdowanie i stylowanie wielokątów granic w stylu opartym na danych.

Znajdowanie identyfikatora konkretnego miejsca

Czy szukasz identyfikatora konkretnego miejsca? Aby wyszukać miejsce i uzyskać jego identyfikator, użyj wyszukiwarki miejsc.

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

Omówienie

Identyfikator miejsca to identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. Identyfikator może być dłuższy (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ń. 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 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 interfejsach Places API, Maps JavaScript API, Geocoding API, Maps embed API i Roads API.

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

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

Typowym sposobem używania identyfikatorów miejsc jest wyszukiwanie miejsc (np. za pomocą interfejsu Places API lub biblioteki miejsc w interfejsie Maps JavaScript API) i używanie zwróconego identyfikatora miejsca w celu pobrania szczegółowych informacji o miejscu. Możesz zapisać identyfikator miejsca i użyć go, aby później pobrać te same szczegóły miejsca. Informacje o zapisywaniu identyfikatorów miejsc znajdziesz poniżej.

Przykład z wykorzystaniem pakietu SDK Miejsc na Androida

W pakiecie SDK Miejsc na Androida możesz pobrać identyfikator miejsca, wywołując Place.getId(). Usługa autouzupełniania miejsc zwraca też identyfikator miejsca dla każdego miejsca pasującego do dostarczonego zapytania i filtra. Użyj identyfikatora miejsca, aby później pobrać obiekt Place.

Aby uzyskać miejsce według identyfikatora, wywołaj PlacesClient.fetchPlace(), przekazując FetchPlaceRequest.

Interfejs API zwróci błąd FetchPlaceResponse w obiekcie Task. FetchPlaceResponse zawiera obiekt Place pasujący do podanego identyfikatora miejsca.

Poniższy przykładowy kod pokazuje, jak wywołać fetchPlace(), aby uzyskać szczegółowe informacje o określonym miejscu.

Java


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Zapisz identyfikatory miejsc do późniejszego użycia

Identyfikatory miejsc są zwolnione z ograniczeniach dotyczących pamięci podręcznej opisanych w Sekcji 3.2.3(a) Warunków korzystania z Google Maps Platform. Dlatego możesz zapisywać wartości identyfikatorów miejsc do późniejszego wykorzystania.

Odświeżam identyfikatory zapisanych miejsc

Jeśli identyfikatory miejsca mają więcej niż 12 miesięcy, zalecamy ich odświeżenie. Identyfikatory miejsc możesz bezpłatnie odświeżać, wysyłając żądanie szczegółów miejsca, podając w polu fields tylko pole Place.Field.ID. To wywołanie uruchomi kod SKU miejsca – odświeżanie identyfikatorów SKU. To żądanie może też jednak zwracać 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 ponownie wysłać prośbę, aby uzyskać nowe wyniki. Te wyniki mogą, ale nie muszą, zawierać pierwotne miejsce. Żądanie jest 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ł skrócony lub w inny sposób zmodyfikowany i nie jest już prawidłowy.

Kod stanu NOT_FOUND wskazuje, że określony identyfikator miejsca jest nieaktualny. Identyfikator miejsca może stać się nieaktualny, gdy firma zostanie zamknięta lub przeniesiona. Identyfikatory miejsc mogą się zmieniać z powodu aktualizacji na dużą skalę w bazie danych Map Google. W takich przypadkach miejsce może otrzymać nowy identyfikator, 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ć inny identyfikator miejsca w odpowiedzi. Typy identyfikatorów miejsc obejmują:

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

Identyfikatory te 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