Omówienie migracji

W tym przewodniku znajdziesz najważniejsze różnice między starą usługą Miejsca a nową klasą Miejsce. Przejście na klasę Miejsce wiąże się z licznymi zaletami, takimi jak większa wydajność i nowy model cenowy. Aby w pełni korzystać z Usług Miejsc i zapewnić sobie dostęp do aktualnych aplikacji, zapoznaj się ze zmianami opisanymi w tym przewodniku.

Włączanie interfejsu Places API

Klasa Place korzysta z usługi Places API. Aby korzystać z funkcji nowej klasy Place, musisz najpierw włączyć interfejs Places API (New) w projekcie Google Cloud. Więcej informacji znajdziesz w artykule Pierwsze kroki.

Ogólne zmiany

W tej tabeli opisano niektóre główne różnice między usługami PlacesServicePlace:

PlacesService (starsza wersja) Place (Nowy)
Metody wymagają użycia wywołania zwrotnego do obsługi obiektu wyników i odpowiedzi google.maps.places.PlacesServiceStatus. Korzysta z obietnic i działa asynchronicznie.
Metody wymagają sprawdzenia PlacesServiceStatus. Nie wymaga sprawdzania stanu, może używać standardowej obsługi błędów.
Pola danych miejsca są sformatowane w sposób snake case. Pola danych o miejscach są sformatowane w stylu „camel case”.
Ograniczone do stałego zbioru typów miejsc i pol danych o miejscach. Zapewnia większy wybór regularnie aktualizowanych typów miejscpól danych o miejscach.

Zmiany dotyczące interfejsu API

Klasa Place udostępnia interfejs API do korzystania z biblioteki Places i obsługuje nowoczesne wzorce użycia, takie jak obietnice. Klasa Place udostępnia te same pola danych i typy miejsc co starsza usługa Places Service, a także wiele nowych wartości dla pól danych i typów miejsc.

Ta tabela pokazuje, jak funkcje usługi Miejsca są mapowane na funkcje klasy Miejsce:

Usługa Miejsca (starsza wersja) Klasa miejsca (nowość)
Pola danych o miejscach Pola danych klasy miejsca
Typy miejsc Typy miejsc
PlacesService.findPlaceFromQuery() Place.searchByText()
PlacesService.findPlaceFromPhoneNumber() Place.searchByText()
PlacesService.textSearch() Place.searchByText()
PlacesService.nearbySearch() Place.searchNearby()
PlacesService.getDetails() Place.fetchFields()
Places.AutocompletionRequest Places.AutocompleteRequest
Places.AutocompletePrediction Places.PlacePrediction
Autocomplete zajęcia PlaceAutocompleteElement zajęcia
SearchBox zajęcia ---

Wczytywanie biblioteki Miejsc

Sposób wczytywania przez aplikację biblioteki Miejsca zależy od tego, który ładowacz rozruchowy jest używany. Jeśli Twoja aplikacja korzysta z importu dynamicznej biblioteki, możesz wczytywać potrzebne biblioteki w czasie wykonywania, używając operatora await do wywołania funkcji importLibrary(), jak pokazano tutaj:

const { Place } = await google.maps.importLibrary("places");

Jeśli aplikacja używa tagu bezpośredniego ładowania skryptu, w skrypcie loadera poproś o bibliotekę places:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

Więcej informacji o wczytywaniu interfejsu Maps JavaScript API

W tej sekcji znajdziesz przewodniki, które pomogą Ci przenieść aplikacje na najnowszą wersję interfejsu Places API: