Omówienie migracji

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

W tym przewodniku opisujemy najważniejsze różnice między starszą wersją usługi Places a nową klasą Place. Przejście na klasę Place wiąże się z wieloma korzyściami, m.in. z większą wydajnością i nowym modelem cenowym. Aby w pełni wykorzystać możliwości usługi Places i mieć pewność, że Twoje aplikacje są aktualne, zapoznaj się ze zmianami opisanymi w tym przewodniku.

Sprawdzone metody dotyczące płatności w przypadku migracji

Te wskazówki dotyczą sytuacji, w których korzystanie z interfejsu API jest na tyle intensywne, że kwalifikuje się do przejścia na drugi próg cenowy. Podczas migracji do nowszej wersji interfejsu API opłaty są naliczane za inny identyfikator SKU. Aby uniknąć zwiększonych kosztów w miesiącu przejścia, zalecamy jak najszybsze przejście na nowe interfejsy API w środowisku produkcyjnym, najlepiej na początku miesiąca. Dzięki temu w miesiącu migracji osiągniesz najbardziej opłacalne miesięczne progi cenowe. Więcej informacji o progach cenowych, znajdziesz na stronie z cennikiem i w odpowiedziach na najczęstsze pytania dotyczące cen.

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 (nowy) w projekcie Google Cloud. Więcej informacji znajdziesz w artykule Pierwsze kroki.

Ogólne zmiany

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

PlacesService (starsza wersja) Place (nowa)
Metody wymagają użycia wywołania zwrotnego do obsługi obiektu wyników i google.maps.places.PlacesServiceStatus odpowiedzi. Korzysta z obietnic i działa asynchronicznie.
Metody wymagają sprawdzenia PlacesServiceStatus. Nie wymaga sprawdzania stanu, można używać standardowej obsługi błędów.
Pola danych o miejscach są formatowane za pomocą notacji snake case. Pola danych o miejscach są formatowane za pomocą notacji camelCase.
Ograniczone do stałego zestawu typów miejsc i pól danych o miejscach. Zawiera 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 o miejscach i typy miejsc co starsza wersja usługi Places, a także wiele nowych wartości pól danych o miejscach i typów miejsc.

W tej tabeli pokazujemy, jak funkcje usługi Places są mapowane na funkcje klasy Place:

Usługa Places (starsza wersja) Klasa Place (nowa)
Pola danych o miejscach 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
Autocomplete klasa PlaceAutocompleteElement klasa
SearchBox klasa ---

Wczytywanie biblioteki Places

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

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

Jeśli Twoja aplikacja używa tagu bezpośredniego wczytywania skryptu, poproś o bibliotekę places w skrypcie programu ł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 te przewodniki, które pomogą Ci przeprowadzić migrację aplikacji do najnowszej wersji interfejsu Places API: