Omówienie migracji

W tym przewodniku opisaliśmy główne różnice między starą usługą Miejsca a nową klasą Miejsce. Przejście na klasę Miejsce daje wiele korzyści, w tym większą wydajność i nowy model cenowy. Aby w pełni korzystać z Usług lokalizacji i zadbać o aktualność 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 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. Udostępnia rozszerzony wybór regularnie aktualizowanych typów miejsc i pó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 miejsca klasy
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 Twoja aplikacja korzysta z tagu bezpośredniego ładowania skryptu, w skrypcie wczytywania zażądaj biblioteki 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 te przewodniki, które pomogą Ci przenieść aplikacje na najnowszą wersję interfejsu Places API: