Omówienie migracji

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

W tym przewodniku opisujemy najważniejsze różnice między starszą usługą Places a nową klasą Place. Przejście na klasę Place przynosi znaczne korzyści, w tym lepszą wydajność i nowy model cenowy. Aby w pełni wykorzystać możliwości Miejsc i zapewnić aktualność aplikacji, zapoznaj się ze zmianami opisanymi w tym przewodniku.

Sprawdzone metody dotyczące płatności podczas migracji

Te wskazówki mają zastosowanie, jeśli wykorzystanie interfejsu API jest na tyle wysokie, że kwalifikuje się do cen na drugim poziomie. Podczas migracji do nowszej wersji interfejsu API opłaty są naliczane za inny kod SKU. Aby uniknąć wzrostu kosztów w miesiącu przejścia, zalecamy przejście na nowe interfejsy API w środowisku produkcyjnym jak najbliżej początku miesiąca. Dzięki temu w miesiącu migracji uzyskasz najbardziej opłacalne poziomy cen miesięcznych. Informacje o kategoriach cenowych znajdziesz na stronie z cenami i w odpowiedziach na najczęstsze pytania dotyczące cen.

Włączanie Places API

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

Ogólne zmiany

W poniższej tabeli znajdziesz niektóre z głównych różnic między PlacesService a Place:

PlacesService (starsza wersja) Place (Nowość)
Metody wymagają użycia wywołania zwrotnego do obsługi obiektu wyników i odpowiedzi google.maps.places.PlacesServiceStatus. Używa obiektów Promise i działa asynchronicznie.
Metody wymagają sprawdzenia PlacesServiceStatus. Nie jest wymagane sprawdzanie stanu, można użyć standardowej obsługi błędów.
Pola danych Miejsc są sformatowane przy użyciu zapisu snake_case. Pola danych o miejscach są sformatowane przy użyciu camelCase.
Ograniczone do stałego zestawu typów miejsc i pól danych o miejscach. Zapewnia rozszerzony wybór regularnie aktualizowanych typów miejsc i pól danych o miejscach.

Zmiany dotyczące interfejsów API

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

Ta tabela pokazuje, jak funkcje usługi Places są mapowane na funkcje klasy Place:

Places Service (starsza wersja) Klasa Place (nowa)
Pola danych miejsc Pola danych klasy Place
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
Klasa Autocomplete Klasa PlaceAutocompleteElement
Klasa SearchBox ---

Wczytywanie biblioteki Miejsc

Sposób wczytywania biblioteki Miejsc przez aplikację zależy od używanego narzędzia do wczytywania. Jeśli Twoja aplikacja korzysta z dynamicznego importowania bibliotek, możesz wczytywać potrzebne biblioteki w czasie działania, używając operatora await do wywołania importLibrary(), jak pokazano tutaj:

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

Jeśli Twoja aplikacja używa tagu bezpośredniego wczytywania skryptu, poproś o bibliotekę places w skrypcie modułu ładującego:

<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

Ta sekcja zawiera przewodniki, które pomogą Ci przeprowadzić migrację aplikacji do najnowszej wersji Places API: