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 następujących interfejsów API Map Google:

  • Pobierając adres dla identyfikatora miejsca w usłudze internetowej Geocoding API oraz Usługa geokodowania, Maps JavaScript API.
  • Określanie punktu początkowego, docelowego i pośredniego Routes API i Directions API usługi sieci Web i usługi wyznaczania tras, Maps JavaScript API.
  • określanie punktów początkowych i miejsc docelowych w interfejsie Routes API oraz Usługa sieciowa interfejsu DISTANCE Matrix API oraz Usługa macierzy odległości, 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? Korzystanie z identyfikatora miejsca poniżej, aby wyszukać miejsce i poznać jego identyfikator:

Ewentualnie możesz wyświetl narzędzie do wyszukiwania identyfikatorów miejsc z jego kodem w interfejsie Maps JavaScript API. dokumentacji.

Omówienie

Identyfikator miejsca to tekstowy identyfikator, który jednoznacznie identyfikuje miejsce. jego długość może być różna (nie ma maksymalnej długości dla 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, parki i skrzyżowania. Dla tego samego miejsca lub lokalizacji mają kilka różnych identyfikatorów miejsc. Identyfikatory miejsc mogą się z czasem zmieniać.

Możesz używać tego samego identyfikatora miejsca w interfejsie Places API oraz liczby interfejsów API Google Maps Platform. Tego samego identyfikatora miejsca możesz na przykład użyć do wskazać miejsce na liście Places API, Maps JavaScript API interfejs Geocoding API interfejs Maps Embed API oraz Roads API.

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

Typowym sposobem korzystania z identyfikatorów miejsc jest wyszukanie miejsca. (za pomocą interfejsu Places API) lub Miejsca w interfejsie Maps JavaScript API), a potem użyj zwrócony identyfikator miejsca, aby pobrać jego szczegóły. Możesz w nim przechowywać identyfikator miejsca aby później pobrać informacje o tym samym miejscu. Przeczytaj o zapisanie identyfikatorów miejsc poniżej.

Przykład z wykorzystaniem pakietu SDK Miejsc na Androida

W pakiecie SDK Places dla Androida można pobrać identyfikator miejsca poprzez połączenia Place.getId() Usługa autouzupełniania miejsc zwraca także identyfikator każdego miejsca pasującego do podanego zapytania. i filtrować. Użyj identyfikatora miejsca, aby pobrać Place możesz zobaczyć go później.

Aby uzyskać miejsce na podstawie identyfikatora, zadzwoń pod numer PlacesClient.fetchPlace() zaliczając FetchPlaceRequest.

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

Poniższy przykładowy kod pokazuje wywołanie fetchPlace() pod numerem pobrać szczegółowe informacje o wybranym miejscu.

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ą wyłączone z ograniczeń buforowania opisanych w Artykuł 3.2.3(b) Warunków korzystania z usługi Google Maps Platform. Możesz więc przechowywać wartości identyfikatorów miejsc na później i ich używanie.

Odświeżam identyfikatory zapisanych miejsc

Zalecamy odświeżenie identyfikatorów miejsc, jeśli są starsze niż 12 miesięcy. Ty mogą odświeżyć identyfikatory miejsc bezpłatnie, tworząc Prośba o dodanie szczegółów określając tylko Place.Field.ID w parametrze fields. To wywołanie uruchamia Szczegóły Miejsc – odświeżenie identyfikatora SKU.

Ta prośba może też zwrócić stan: NOT_FOUND w kodzie. Jedną ze strategii jest przechowywanie pierwotnego żądania, które zwróciło każde miejsce ID. Jeśli identyfikator miejsca stanie się nieprawidłowy, możesz ponownie wysłać prośbę, aby pobrać nowy identyfikator wyników. Te wyniki mogą, ale nie muszą, dotyczyć pierwotnego miejsca. Jednak ta prośba jest płatna.

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

Kod stanu INVALID_REQUEST wskazuje, że określony 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 jest już nieprawidłowy.

Kod stanu NOT_FOUND wskazuje, że podany identyfikator miejsca jest przestarzały. Identyfikator miejsca może stać się nieaktualny, jeśli firma zostanie zamknięta lub przeniesiona do o nowe miejsce. Identyfikatory miejsc mogą się zmieniać z powodu dużych aktualizacji Google Baza danych Map Google. W takich przypadkach miejsce może otrzymać nowy identyfikator, a stary Identyfikator zwraca odpowiedź NOT_FOUND.

Niektóre typy identyfikatorów miejsc mogą czasami powodować NOT_FOUND lub interfejs API może zwrócić inny identyfikator miejsca w odpowiedź. Typy identyfikatorów miejsc:

  • adresy, które nie występują w Mapach Google jako dokładne adresy; ale są ustalane na podstawie zakresu adresów.
  • fragmenty długiej trasy, których żądanie zawiera również nazwę miasta lub lokalizacji.
  • 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 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