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 Places SDK na Androida

W pakiecie Miejsca SDK na Androida możesz pobrać identyfikator miejsca, wywołując metodę Place.getId(). Usługa Autouzupełnianie miejsca zwraca też identyfikator każdego miejsca, które pasuje do podanego zapytania i filtra. Użyj identyfikatora miejsca, aby później ponownie pobrać obiekt Place.

Aby znaleźć miejsce na podstawie identyfikatora, wywołaj PlacesClient.fetchPlace(), przekazując kod FetchPlaceRequest.

Interfejs API zwraca FetchPlaceResponse w Task. FetchPlaceResponse zawiera obiekt Place pasujący do podanego identyfikatora miejsca.

Poniższy przykładowy kod przedstawia wywołanie metody fetchPlace() w celu pobrania szczegółów dotyczących określonego miejsca.

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")
        }
    }

      

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

      

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 Place.Field.ID 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