Przewodnik po szybkiej i zweryfikowanej rejestracji

Przegląd

web iOS Interfejs API

Usługa Google Maps Platform jest dostępna w wersji internetowej (JS, TS), na Androida i iOS. Oferuje również interfejsy API usług internetowych do uzyskiwania informacji o miejscach, trasach dojazdu i odległościach. Przykłady w tym przewodniku zostały napisane z myślą o 1 platformie, ale podane są linki do dokumentacji na potrzeby implementacji na innych platformach.

Utwórz go teraz

Szybki konstruktor w Google Cloud Console umożliwia tworzenie autouzupełniania formularzy adresów za pomocą interaktywnego interfejsu, który generuje kod JavaScript.

Użytkownicy przyzwyczaili się do życia i działania w świecie cyfrowym, w którym wygoda, szybkość i bezpieczeństwo stanowią podstawowe oczekiwania. Gdy ubiegają się o czymś, np. o kartę kredytową, konto bankowe czy kredyt, oczekują, że ten proces będzie szybki i łatwy.

Im więcej użytkowników musi wpisywać lub wpisywać powielone dane, tym mniej szans na zachowanie ich jako klientów. Stworzenie szybkiej, łatwej i zweryfikowanej rejestracji zwiększy wygodę użytkowników, a jednocześnie umożliwi Ci utrzymanie ich w witrynie.

Samodzielnie wpisywane adresy mogą powodować zmniejszenie liczby konwersji, błędnych danych CRM i kosztownych pomyłek w dostawie. Szybka i zweryfikowana rejestracja przyspiesza proces rejestracji – wystarczy kilka kliknięć, aby błyskawicznie sprawdzić adres w pobliżu i wyświetlić wpisany adres w celu wizualnego potwierdzenia. Dzięki temu użytkownik może mieć pewność, że podał prawidłowy adres. Weryfikowanie adresu użytkownika za pomocą jego bieżącej lokalizacji pomaga też zapobiegać oszustwom i zwiększać zaufanie użytkowników do Twoich produktów i usług. Weryfikacja może też zwiększyć zaufanie i możliwość natychmiastowego udostępnienia wirtualnych kart kredytowych i bankowych.

W tym artykule znajdziesz wskazówki dotyczące implementacji funkcji szybkiej i zweryfikowanej rejestracji w Google Maps Platform. Użytkownicy najczęściej rejestrują się na urządzeniach mobilnych, więc większość przykładów implementacji w tym temacie dotyczy Androida. (Pełną próbkę kodu znajdziesz tutaj). Możesz też użyć pakietów SDK na iOS.

Poniższy diagram przedstawia podstawowe interfejsy API wykorzystywane w tworzeniu rozwiązania (kliknij, aby powiększyć).

Włączam interfejsy API

Aby wdrożyć te rekomendacje, musisz włączyć w konsoli Google Cloud te interfejsy API:

Więcej informacji o konfiguracji znajdziesz w artykule Pierwsze kroki z Google Maps Platform.

Sekcje ze sprawdzonymi metodami

Poniżej przedstawiamy praktyki i sposoby dostosowywania, które omówimy w tym temacie.

  • Ikona znacznika wyboru to główna sprawdzona metoda.
  • Ikona gwiazdki to opcjonalne, ale zalecane dostosowanie, które ulepsza rozwiązanie.
Dodawanie autouzupełniania do pól do wprowadzania danych Autouzupełnianie formularza adresu Dodaj funkcję pisania w miarę postępów, aby zwiększyć wygodę użytkowników na wszystkich platformach i zwiększyć dokładność adresów przy minimalnej liczbie naciśnięć klawiszy.
Wizualne potwierdzenie adresu Pozwól użytkownikom zobaczyć ich adres na mapie jako wizualne potwierdzenie, że wpisał prawidłowy adres.
Porównywanie adresu wpisanego przez użytkownika z lokalizacją urządzenia Porównaj wybrany lub wpisany adres użytkownika z aktualną lokalizacją urządzenia, aby łatwiej ustalić, czy znajduje się on pod wskazanym adresem. Aby to działało, użytkownicy podczas rejestracji powinni być w domu.
Wskazówki dotyczące ulepszania funkcji Szybka i zweryfikowana rejestracja Wprowadzanie adresu możesz jeszcze bardziej wzbogacić, dostosowując wygląd i sposób działania widżetu autouzupełniania lub umożliwiając użytkownikom wybranie nazwy firmy lub punktu orientacyjnego jako adresu.

Dodawanie autouzupełniania do pól do wprowadzania danych

W tym przykładzie wykorzystano: Pakiet SDK Miejsc na Androida Dostępny też: iOS | JavaScript

Autouzupełnianie miejsc może uprościć wpisywanie adresów w aplikacji, co przełoży się na wyższe współczynniki konwersji i większą wygodę klientów. Autouzupełnianie udostępnia pojedyncze pole umożliwiające szybkie wpisanie adresu z przewidywanym adresem, które można wykorzystać do automatycznego wypełniania formularza z adresem rejestracyjnym. Włączenie autouzupełniania miejsc w procesie rejestracji umożliwia:

  • Zmniejsz liczbę błędów podczas wpisywania adresu.
  • Zmniejsz liczbę kroków w procesie rejestracji.
  • Uprość wpisywanie adresu na urządzeniach mobilnych i urządzeniach do noszenia.
  • Znacznie zmniejsz liczbę naciśnięć klawiszy i łączny czas potrzebny klientowi na rejestrację.

Gdy użytkownik zaznaczy pole autouzupełniania i zacznie pisać, pojawi się lista przewidywanych adresów.

Gdy użytkownik wybierze adres z listy przewidywanych zapytań, możesz użyć odpowiedzi, aby potwierdzić adres i uzyskać lokalizację. Aplikacja może wtedy wypełnić prawidłowe pola formularza wpisywania adresu, tak jak na ilustracji poniżej.

Filmy: ulepszenie formularzy adresowych za pomocą autouzupełniania miejsc

Formularze adresowe

Android

iOS

Internet

Google Maps Platform udostępnia widżet autouzupełniania miejsc na platformach mobilnych i w przeglądarkach. Widżet (przedstawiony na poprzednich ilustracjach) zawiera okno wyszukiwania z wbudowaną funkcją autouzupełniania, które można nawet zoptymalizować pod kątem wyszukiwania ograniczonego do lokalizacji.

Z tej sekcji dowiesz się, jak wdrożyć autouzupełnianie miejsc w przypadku szybkiej i zweryfikowanej rejestracji.

Dodawanie widżetu autouzupełniania miejsc

Na Androidzie można dodać widżet autouzupełniania za pomocą intencji autouzupełniania, która uruchamia autouzupełnianie miejsca z pola do wprowadzania danych Wiersz adresu 1, w którym użytkownik zaczyna wpisywać swój adres. Po rozpoczęciu pisania będzie mógł wybrać swój adres z listy podpowiedzi autouzupełniania.

Najpierw przygotuj program uruchamiający aktywność, używając narzędzia ActivityResultLauncher, który będzie nasłuchiwać wyników uruchomionych działań. Wynikowe wywołanie zwrotne będzie zawierać obiekt Place odpowiadający adresowi wybranemu przez użytkownika z prognoz autouzupełniania.

    private final ActivityResultLauncher<Intent> startAutocomplete = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            result -> {
                if (result.getResultCode() == Activity.RESULT_OK) {
                    Intent intent = result.getData();
                    if (intent != null) {
                        Place place = Autocomplete.getPlaceFromIntent(intent);

                        // Write a method to read the address components from the Place
                        // and populate the form with the address components
                        Log.d(TAG, "Place: " + place.getAddressComponents());
                        fillInAddress(place);
                    }
                } else if (result.getResultCode() == Activity.RESULT_CANCELED) {
                    // The user canceled the operation.
                    Log.i(TAG, "User canceled autocomplete");
                }
            });

Następnie zdefiniuj pola, lokalizację i właściwości typu intencji autouzupełniania miejsca i utwórz ją za pomocą narzędzia Autocomplete.IntentBuilder. Na koniec uruchom intencję, korzystając z elementu ActivityResultLauncher zdefiniowanego w poprzednim przykładowym kodzie.

    private void startAutocompleteIntent() {

        // Set the fields to specify which types of place data to
        // return after the user has made a selection.
        List<Place.Field> fields = Arrays.asList(Place.Field.ADDRESS_COMPONENTS,
                Place.Field.LAT_LNG, Place.Field.VIEWPORT);

        // Build the autocomplete intent with field, country, and type filters applied
        Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.OVERLAY, fields)
                .setCountries(Arrays.asList("US"))
                .setTypesFilter(new ArrayList<String>() {{
                    add(TypeFilter.ADDRESS.toString().toLowerCase());
                }})
                .build(this);
        startAutocomplete.launch(intent);
    }

Obsługa adresu zwróconego przez autouzupełnianie miejsc

Wcześniejsze zdefiniowanie właściwości ActivityResultLauncher określało też, co należy zrobić po zwróceniu wyniku działania w wywołaniu zwrotnym. Jeśli użytkownik wybrał prognozę, zostanie ona wyświetlona w intencji zawartej w obiekcie wyniku. Intencja została skompilowana przez Autocomplete.IntentBuilder, więc metoda Autocomplete.getPlaceFromIntent() może wyodrębnić z niego obiekt Place.

    private final ActivityResultLauncher<Intent> startAutocomplete = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            result -> {
                if (result.getResultCode() == Activity.RESULT_OK) {
                    Intent intent = result.getData();
                    if (intent != null) {
                        Place place = Autocomplete.getPlaceFromIntent(intent);

                        // Write a method to read the address components from the Place
                        // and populate the form with the address components
                        Log.d(TAG, "Place: " + place.getAddressComponents());
                        fillInAddress(place);
                    }
                } else if (result.getResultCode() == Activity.RESULT_CANCELED) {
                    // The user canceled the operation.
                    Log.i(TAG, "User canceled autocomplete");
                }
            });

Następnie wywołaj Place.getAddressComponents() i dopasuj każdy komponent adresu do odpowiedniego pola do wprowadzania danych w formularzu adresu, wypełniając pole wartością z wybranego przez użytkownika miejsca.

Przechwytywanie danych adresowych z prognozy zamiast podawania adresu wpisanego ręcznie pomaga zapewnić dokładność adresu, zapewnić, że adres jest znany i może zostać dostarczony, a także ogranicza liczbę naciśnięć klawiszy.

O czym warto pamiętać przy wdrażaniu autouzupełniania miejsc

Autouzupełnianie miejsc oferuje szereg opcji, dzięki którym można ją dostosować do własnych potrzeb, jeśli chcesz używać nie tylko widżetu. Możesz korzystać z kombinacji usług, aby poprawnie dopasować lokalizację do swojej lokalizacji.

  • W przypadku formularza ADRES parametru „Typy” ustaw na address, aby ograniczyć dopasowywanie do pełnych adresów. Dowiedz się więcej o typach obsługiwanych w żądaniach autouzupełniania miejsc.

  • Ustaw odpowiednie ograniczenia i uprzedzenia, jeśli nie musisz wyszukiwać na całym świecie. Istnieje wiele parametrów, które można wykorzystać do odchylenia lub ograniczenia dopasowania tylko do określonych regionów.

    • Użyj właściwości RectangularBounds, aby wyznaczyć prostokątne granice, które ograniczysz dla danego obszaru. Użyj metody setLocationRestriction(), aby mieć pewność, że zwracane są tylko adresy w tych obszarach.

    • Aby ograniczyć odpowiedzi do konkretnego zestawu krajów, użyj właściwości setCountries().

  • Pozostaw pola umożliwiające edytowanie, jeśli w dopasowaniu brakuje niektórych pól, i umożliwi klientom zaktualizowanie adresu w razie potrzeby. Ponieważ większość adresów zwracanych przez funkcję autouzupełniania miejsc nie zawiera numerów podrzędnych, takich jak numery mieszkania, lokalu czy lokalu, możesz przenieść zaznaczenie na drugi wiersz adresu, aby w razie potrzeby zachęcić użytkowników do uzupełnienia tych informacji.

Wizualne potwierdzenie adresu

W tym przykładzie użyto: Maps SDK na Androida Dostępny też: iOS | JavaScript

Podczas wpisywania adresu wyświetlaj użytkownikom wizualne potwierdzenie adresu na mapie. Dzięki temu użytkownicy mają większą pewność, że adres jest prawidłowy.

Poniższy rysunek przedstawia mapę pod adresem z pinezką w miejscu wpisanego adresu.

Poniższy przykład zawiera podstawowe kroki dodawania mapy na Androidzie. Więcej informacji znajdziesz w dokumentacji.

Dodaję: SupportMapFragment

Najpierw dodaj fragment SupportMapFragment do pliku XML układu.

    <fragment
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:id="@+id/confirmation_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

Następnie automatycznie dodaj fragment, jeśli jeszcze nie istnieje.

    private void showMap(Place place) {
        coordinates = place.getLatLng();

        // It isn't possible to set a fragment's id programmatically so we set a tag instead and
        // search for it using that.
        mapFragment = (SupportMapFragment)
                getSupportFragmentManager().findFragmentByTag(MAP_FRAGMENT_TAG);

        // We only create a fragment if it doesn't already exist.
        if (mapFragment == null) {
            mapPanel = ((ViewStub) findViewById(R.id.stub_map)).inflate();
            GoogleMapOptions mapOptions = new GoogleMapOptions();
            mapOptions.mapToolbarEnabled(false);

            // To programmatically add the map, we first create a SupportMapFragment.
            mapFragment = SupportMapFragment.newInstance(mapOptions);

            // Then we add it using a FragmentTransaction.
            getSupportFragmentManager()
                    .beginTransaction()
                    .add(R.id.confirmation_map, mapFragment, MAP_FRAGMENT_TAG)
                    .commit();
            mapFragment.getMapAsync(this);
        } else {
            updateMap(coordinates);
        }
    }

Uzyskanie uchwytu fragmentu i rejestrowanie wywołania zwrotnego

  1. Aby uzyskać uchwyt do fragmentu, wywołaj metodę FragmentManager.findFragmentById i przekaż jej identyfikator zasobu fragmentu w pliku układu. Jeśli fragment został dodany dynamicznie, pomiń ten krok, ponieważ nick został już pobrany.

  2. Wywołaj metodę getMapAsync, aby ustawić wywołanie zwrotne we fragmencie.

Jeśli np. dodasz fragment statycznie:

Kotlin



val mapFragment = supportFragmentManager
    .findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)

      

Java


SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
    .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

      

Określanie stylu i dodawanie znacznika do mapy

Gdy mapa będzie gotowa, określ styl, wyśrodkuj kamerę i dodaj znacznik we współrzędnych podanego adresu. Poniższy kod używa stylu zdefiniowanego w obiekcie JSON. Możesz też wczytać identyfikator mapy zdefiniowany za pomocą stylów map działających w chmurze.

    @Override
    public void onMapReady(@NonNull GoogleMap googleMap) {
        map = googleMap;
        try {
            // Customise the styling of the base map using a JSON object defined
            // in a string resource.
            boolean success = map.setMapStyle(
                    MapStyleOptions.loadRawResourceStyle(this, R.raw.style_json));

            if (!success) {
                Log.e(TAG, "Style parsing failed.");
            }
        } catch (Resources.NotFoundException e) {
            Log.e(TAG, "Can't find style. Error: ", e);
        }
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 15f));
        marker = map.addMarker(new MarkerOptions().position(coordinates));
    }

(Zobacz pełny przykładowy kod)

Wyłączanie elementów sterujących mapą

Aby ułatwić sobie korzystanie z mapy, wyświetlając lokalizację bez dodatkowych elementów sterujących (takich jak kompas, pasek narzędzi i inne wbudowane funkcje), możesz wyłączyć elementy sterujące, których nie potrzebujesz. Na urządzeniach z Androidem możesz też włączyć tryb uproszczony, by zapewnić ograniczoną interaktywność.

Porównanie adresu wpisanego przez użytkownika z lokalizacją urządzenia

Uzyskanie dowodu na adres, czyli przekonania, że użytkownik znajduje się pod podanym adresem, może być skomplikowane ze względu na takie czynniki jak zdalna lokalizacja użytkownika, przeprowadzka pod nowy adres czy firma cyfrowa (np. banki cyfrowe), która nie ma fizycznej lokalizacji, którą użytkownicy mogą odwiedzić, aby potwierdzić adres, przedstawiając rachunki za media lub inne dokumenty. Udostępnienie cyfrowych sposobów weryfikacji adresów użytkowników pozwala szybciej i wygodniej proces rejestracji.

Bezpieczeństwo jest priorytetem przy weryfikowaniu adresu, zwłaszcza w przypadku rejestracji cyfrowej. W tej sekcji znajdziesz wskazówki i przykłady, które pomogą Ci sprawdzić, czy lokalizacja użytkownika podczas rejestracji odpowiada adresowi wpisanemu jako jego adres.

Proces porównywania podanego adresu z lokalizacją urządzenia obejmuje te czynności:

  1. Konwertowanie adresu wpisanego przez użytkownika na współrzędne geograficzne.
  2. Wyświetlenie użytkownikowi prośby o zgodę na uzyskanie lokalizacji urządzenia.
  3. Obliczam odległość między podanym adresem a lokalizacją urządzenia W ten sposób określasz maksymalną odległość uwzględniającą dopasowanie adresu do lokalizacji.

Na ilustracji poniżej pokazujemy, jak możesz poprosić użytkowników o porównanie wpisanego adresu z jego bieżącą lokalizacją.

Konwertowanie adresu wpisanego przez użytkownika na współrzędne geograficzne

W tym przykładzie wykorzystano: Pakiet SDK Miejsc na Androida Dostępny także: iOS | JavaScript | Geocoding API

Gdy użytkownicy zgodzą się na weryfikację adresu (przez kliknięcie „Potwierdź, że tu jestem” na poprzednim ilustracji), pierwszym krokiem podczas porównywania adresu z bieżącą lokalizacją jest przekonwertowanie podanego adresu na współrzędne geograficzne.

Jeśli użytkownik wybrał swój adres za pomocą autouzupełniania, pamiętaj, aby poprosić o Place.Field.LAT_LNG na liście pól autouzupełniania miejsca, tak jak pokazano to w sekcji kodu Dodawanie fragmentu kodu widżetu autouzupełniania miejsca, i wywołać metodę Place.getLatLng(), aby uzyskać współrzędne geograficzne wybranego adresu.

coordinates = place.getLatLng();

Jeśli użytkownik ręcznie wpisał swój adres lub wprowadził zmiany po wypełnieniu pól przez autouzupełnianie miejsc, skorzystaj z usługi Android Geocoder lub Geocoding API, aby wyszukać współrzędne odpowiadające temu adresowi.

Przykład

https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%2BParkway%2C%20Mountain%20View%2C%20CA%2094043&key=YOUR_API_KEY

Pamiętaj, aby zakodować adres URL wywołanie interfejsu Geocoding API.

Krótkie informacje dotyczące kodowania adresu URL: %20 = spacja, %2B = + (plus), %2C = , (przecinek)

Wyświetlanie użytkownikowi prośby o zgodę na uzyskanie lokalizacji urządzenia

Aby uzyskać lokalizację urządzenia użytkownika, musisz poprosić go o zgodę na włączenie usług lokalizacyjnych. Korzystając ze wskazówek w dokumentacji Androida na temat tworzenia aplikacji wykorzystujących lokalizację, zaimplementuj ten proces:

  • Poproś o dostęp do lokalizacji w formie jednorazowej prośby o dostęp do lokalizacji dokładnie na określonym poziomie (ACCESS_FINE_LOCATION).

  • Jeśli użytkownik przyznał dostęp do lokalizacji, uzyskasz informacje o jego lokalizacji.

  • Jeśli użytkownik odmówi zgody na dostęp do lokalizacji, zachowaj ostrożność w odniesieniu do tego odrzucenia. Możesz na przykład zaprezentować ten typ wiadomości (przy założeniu, że nie zapisujesz bieżącej lokalizacji użytkownika):

    „Jeśli nie udostępnisz swojej dokładnej lokalizacji, musisz potwierdzić swoją dokładną lokalizację pocztą, aby aktywować konto. [OK]”

Na ilustracji poniżej widać przykładową prośbę o zezwolenie użytkownikom na uzyskanie informacji o lokalizacji urządzenia.

Aby sprawdzić dostęp do lokalizacji, przygotuj program uruchamiający aktywności, który nasłuchuje wyniku uruchomionego działania przy użyciu ActivityResultLauncher. Wynikowe wywołanie zwrotne zawiera ciąg znaków wskazujący, czy użytkownik przyznał lub odrzucił żądane uprawnienie.

    // Register the permissions callback, which handles the user's response to the
    // system permissions dialog. Save the return value, an instance of
    // ActivityResultLauncher, as an instance variable.
    private final ActivityResultLauncher<String> requestPermissionLauncher =
            registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> {
                if (isGranted) {
                    // Since ACCESS_FINE_LOCATION is the only permission in this sample,
                    // run the location comparison task once permission is granted.
                    // Otherwise, check which permission is granted.
                    getAndCompareLocations();
                } else {
                    // Fallback behavior if user denies permission
                    Log.d(TAG, "User denied permission");
                }
            });

Następnie sprawdź, czy aplikacja ma już uprawnienie ACCESS_FINE_LOCATION. Jeśli nie, poproś o nie użytkownika, uruchamiając działanie związane z prośbą o uprawnienia za pomocą programu uruchamiającego zdefiniowanego w poprzednim kroku.

    private void checkLocationPermissions() {
        if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            getAndCompareLocations();
        } else {
            requestPermissionLauncher.launch(
                    ACCESS_FINE_LOCATION);
        }
    }

Po przyznaniu uprawnienia ACCESS_FINE_LOCATION użyj dostawcy uśrednionej lokalizacji, aby uzyskać ostatnią znaną lokalizację urządzenia i utworzyć na jego podstawie obiekt LatLng.

        FusedLocationProviderClient fusedLocationClient =
                LocationServices.getFusedLocationProviderClient(this);

        fusedLocationClient.getLastLocation()
                .addOnSuccessListener(this, location -> {
                    // Got last known location. In some rare situations this can be null.
                    if (location == null) {
                        return;
                    }

                    deviceLocation = new LatLng(location.getLatitude(), location.getLongitude());
                    // ...
                });
    }

Obliczam odległość między podanym adresem a lokalizacją urządzenia

Użyj funkcji matematycznych, aby obliczyć odległość między dwiema współrzędnymi szerokości i długości geograficznej (wpisany adres i lokalizacja urządzenia). W bibliotece narzędzi open source Maps SDK na Androida znajdziesz przydatne metody obliczania odległości kulistej między dwoma punktami na Ziemi.

Najpierw zainstaluj bibliotekę narzędziową Maps SDK na Androida, dodając tę zależność do pliku build.gradle aplikacji:

dependencies {


    // Utility Library for Maps SDK for Android
    // You do not need to add a separate dependency for the Maps SDK for Android
    // since this library builds in the compatible version of the Maps SDK.
    implementation 'com.google.maps.android:android-maps-utils:3.8.0'
}

Po uzyskaniu ostatniej znanej lokalizacji urządzenia wróć do pliku aktywności i określ promień w metrach, aby uznać obie lokalizacje za „dopasowane”. Promień powinien być na tyle duży, by uwzględniać zmienność dokładności GPS-u oraz wielkość miejsca pod podanym adresem użytkownika. Na przykład:

private static final double acceptableProximity = 150;

Następnie za pomocą metody z biblioteki narzędziowej computeDistanceBetween() oblicz odległość między lokalizacją urządzenia a lokalizacją podaną przez użytkownika. Jeśli odległość mieści się w określonym powyżej promieniu, uznajemy, że lokalizacje są dopasowane.

// Use the computeDistanceBetween function in the Maps SDK for Android Utility Library
// to use spherical geometry to compute the distance between two Lat/Lng points.
double distanceInMeters = computeDistanceBetween(deviceLocation, enteredLocation);
if (distanceInMeters <= acceptedProximity) {
    Log.d(TAG, "location matched");
    // TODO: Display UI based on the locations matching
} else {
    Log.d(TAG, "location not matched");
    // TODO: Display UI based on the locations not matching
}

(Zobacz pełny przykładowy kod)

Jeśli adres i lokalizacja pasują do siebie, wyświetl w aplikacji potwierdzenie, tak jak na ilustracji poniżej.

Wskazówki dotyczące ulepszania szybkiej i zweryfikowanej rejestracji

Zezwalaj użytkownikom na wpisywanie adresu na podstawie nazwy firmy lub miejsca. Usługa przewidywania „wpisz z góry” nie tylko działa w przypadku adresów, ale można też zezwolić użytkownikom na wpisywanie nazw firm lub punktów orientacyjnych. Aby można było wpisywać zarówno adresy, jak i nazwy instytucji, usuń właściwość types z definicji autouzupełniania.

Dostosuj wygląd i styl pola autouzupełniania miejsca, aby dopasować je do stylu swojej witryny. Jeśli wolisz kontrolować wygląd i sposób działania autouzupełniania miejsc w aplikacji zamiast widżetu Google, możesz skorzystać z automatyzacji autouzupełniania miejsc, aby ulepszyć interfejs użytkownika za pomocą usługi autouzupełniania miejsc.