Hızlı ve Doğrulanmış Kayıt uygulama kılavuzu

Genel bakış

web iOS API

Web (JS, TS), Android ve iOS için kullanılabilen Google Haritalar Platformu'nun yanı sıra yerler, yol tarifleri ve mesafeler hakkında bilgi edinmek için web hizmetleri API'ları da sunulmaktadır. Bu kılavuzdaki örnekler bir platform için yazılmış olsa da diğer platformlarda uygulama amacıyla doküman bağlantıları sağlanmıştır.

Hemen oluşturun!

Google Cloud Console'daki Hızlı Oluşturucu, sizin için JavaScript kodu oluşturan etkileşimli bir kullanıcı arayüzü kullanarak adres formu otomatik tamamlama derlemenizi sağlar.

Kullanıcılar, rahatlık, hız ve güvenliğin temel beklentiler olduğu dijital bir dünyada yaşamaya ve çalışmaya alıştı. Müşteriler kredi kartı, banka hesabı veya kredi gibi bir başvuruda bulunduğunda sürecin hızlı ve kolay olmasını beklerler.

Ne kadar çok kullanıcının yinelenen veri yazması veya girmesi gerekirse söz konusu kullanıcıları müşteri olarak tutma olasılığınız o kadar azalır. Hızlı, kolay ve doğrulanmış bir kayıt deneyimi oluşturmak, kullanıcı deneyimini iyileştirirken kullanıcıları sitenizde tutma konusunda size avantaj sağlar.

Manuel olarak girilen adresler, dönüşümlerin azalmasına, hatalı CRM verilerine ve maliyetli teslimat hatalarına neden olabilir. Hızlı ve Doğrulanmış Kayıt özelliği kayıt işlemini hızlandırır, yalnızca birkaç parmak dokunuşuyla yakınlardaki adresleri anında önerir ve girilen adresi görsel onay için görüntüler; böylece kullanıcının doğru adresi girdiğinden emin olmasını sağlar. Mevcut konumunu kullanarak kullanıcının adresini doğrulamak, sahtekarlığın önlenmesine de yardımcı olur ve kullanıcıların ürün ve hizmetlerinize olan güvenini artırır. Doğrulama, sanal banka ve kredi kartlarını anında sağlama konusunda güveninizi de artırabilir.

Bu konu, Google Haritalar Platformu ile Hızlı ve Doğrulanmış Kayıt deneyimi oluşturmak için uygulama rehberliği sağlar. Kullanıcılar büyük olasılıkla mobil cihazlardan kaydolacağından, bu konudaki uygulama örneklerinin çoğu Android'e odaklanmaktadır. (Tam örnek kaynağı burada görebilirsiniz). Aynı işlemleri gerçekleştirmek için iOS SDK'larını da kullanabilirsiniz.

Aşağıdaki şemada, çözümün oluşturulmasında yer alan temel API'ler gösterilmektedir (büyütmek için tıklayın).

API'ler etkinleştiriliyor

Bu önerileri uygulamak için Google Cloud Console'da aşağıdaki API'leri etkinleştirmeniz gerekir:

Kurulum hakkında daha fazla bilgi için Google Haritalar Platformu'nu kullanmaya başlama bölümüne bakın.

En iyi uygulamalar bölümleri

Bu konuda ele alacağımız uygulamalar ve özelleştirmeler aşağıda verilmiştir.

  • Onay işareti simgesi en iyi uygulamalardan biridir.
  • Yıldız simgesi, çözümü geliştirmek için isteğe bağlı ancak önerilen bir özelleştirmedir.
Giriş alanlarına otomatik tamamlama ekleme Adres formunu otomatik doldurun. Tüm platformlarda kullanıcı deneyimini iyileştirmek ve minimum tuş vuruşuyla adres doğruluğunu iyileştirmek için "kullandıkça yazma" işlevi ekleyin.
Adres için görsel onay sağlama Kullanıcıların, doğru adresi girdiklerine dair görsel bir onay olarak, adreslerini haritada görmesine izin verin.
Kullanıcı tarafından girilen adresi cihaz konumuyla karşılaştırma Kullanıcının belirtilen adreste olup olmadığının belirlenmesine yardımcı olmak için kullanıcının seçtiği veya girdiği adresi mevcut cihaz konumuyla karşılaştırın. (Bunun işe yaraması için kullanıcıların kaydolduklarında evde olmaları gerekir.)
Hızlı ve Doğrulanmış Kayıt'ı daha da iyileştirecek ipuçları Otomatik tamamlama widget'ının görünüm ve tarzını özelleştirmek veya kullanıcıların adres olarak bir işletme ya da önemli nokta adı seçmesine izin vermek gibi eklemelerle adres girişini daha da geliştirebilirsiniz.

Giriş alanlarına otomatik tamamlama ekleme

Bu örnekte kullanılan alan: Android için Yerler SDK'sı Ayrıca kullanılabilir: iOS | JavaScript

Otomatik Yer Tamamlama, uygulamanızda adres girişini kolaylaştırarak daha yüksek dönüşüm oranları ve müşterileriniz için sorunsuz bir deneyim sağlayabilir. Otomatik tamamlama, bir kayıt adresi formunu otomatik olarak doldurmak için kullanılabilen "ileride doğru" adres tahmini içeren tek bir hızlı giriş alanı sağlar. Otomatik Yer Tamamlama'yı kayıt akışınıza dahil ederek şunları yapabilirsiniz:

  • Adres girişi hatalarını azaltın.
  • Kayıt işlemindeki adım sayısını azaltmak.
  • Mobil veya giyilebilir cihazlarda adres girme deneyimini kolaylaştırın.
  • Tuş vuruşlarını ve müşterilerin kaydolması için gereken toplam süreyi önemli ölçüde azaltır.

Kullanıcı Otomatik tamamlama giriş kutusunu seçip yazmaya başladığında, adres tahminlerinin bir listesi görüntülenir.

Kullanıcı, tahmin listesinden bir adres seçtiğinde bu yanıtı adresi doğrulamak ve konumu almak için kullanabilirsiniz. Bunun ardından uygulamanız, aşağıdaki şekilde gösterildiği gibi adres giriş formunun doğru alanlarını doldurabilir.

Videolar: Otomatik Yer Tamamlama özelliğiyle adres formlarını geliştirin

Adres formları

Android

iOS

Web

Google Haritalar Platformu, mobil platformlar ve web için Otomatik Yer Tamamlama widget'ı sunar. Önceki şekillerde gösterilen widget, konum kapsamlı arama için bile optimize edebileceğiniz yerleşik otomatik tamamlama işlevine sahip bir arama iletişim kutusu sağlar.

Bu bölümde, Hızlı ve Doğrulanmış Kayıt için Otomatik Yer Tamamlama özelliğinin nasıl uygulanacağı açıklanmaktadır.

Otomatik Yer Tamamlama widget'ını ekleme

Android'de, Adres Satırı 1 giriş alanından Otomatik Yer Tamamlama özelliğini başlatan bir Otomatik tamamlama amacı kullanarak otomatik tamamlama widget'ını ekleyebilirsiniz. Burada kullanıcı burada adresini girmeye başlar. Yazmaya başladıklarında, adreslerini Otomatik Tamamlama tahminleri listesinden seçebilirler.

İlk olarak, başlatılan etkinlikteki sonuçları dinleyecek bir etkinlik başlatıcıyı ActivityResultLauncher kullanarak hazırlayın. Sonuç geri çağırma işlevi, kullanıcının Otomatik Tamamlama tahminlerinden seçtiği adrese karşılık gelen bir Place nesnesi içerir.

    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");
                }
            });

Ardından Otomatik Yer Tamamlama niyetinin alanlarını, konumu ve tür özelliklerini tanımlayın ve Autocomplete.IntentBuilder ile oluşturun. Son olarak, önceki kod örneğinde tanımlanan ActivityResultLauncher öğesini kullanarak niyeti başlatın.

    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);
    }

Otomatik Yer Tamamlama tarafından döndürülen adresle ilgili işlem

ActivityResultLauncher öğesinin daha önce tanımlanması, geri çağırmada etkinlik sonucu döndürüldüğünde ne yapılması gerektiğini de tanımladı. Kullanıcı bir tahmin seçerse bu tahmin, sonuç nesnesinde yer alan niyette sunulur. Amaç Autocomplete.IntentBuilder tarafından oluşturulduğundan Autocomplete.getPlaceFromIntent() yöntemi Place nesnesini kendisinden çıkarabilir.

    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");
                }
            });

Buradan Place.getAddressComponents() yöntemini çağırın ve her adres bileşenini adres formundaki karşılık gelen giriş alanıyla eşleştirin. Ardından, alanı kullanıcının seçtiği Yerdeki değerle doldurun.

Manuel olarak girilen bir adres yerine tahmindeki adres verilerinin yakalanması, adres doğruluğunu sağlar, adresin bilinip adrese teslim edilebilmesini sağlar ve kullanıcının tuş vuruşlarını azaltır.

Otomatik Yer Tamamlama özelliğini uygularken dikkat edilmesi gereken noktalar

Widget'tan daha fazlasını kullanmak istiyorsanız Otomatik Yer Tamamlama'da, uygulamanın esnek olmasını sağlayan çeşitli seçenekler bulunur. Bir konumu doğru şekilde eşleştirmek için ihtiyacınız olan şeyi tam olarak elde etmek üzere çeşitli hizmetleri bir arada kullanabilirsiniz.

  • ADRES formunda, eşleşmeleri tam açık adreslerle kısıtlamak için "type" parametresini address olarak ayarlayın. Otomatik Yer Tamamlama isteklerinde desteklenen türler hakkında daha fazla bilgi edinin.

  • Dünya genelinde arama yapmanız gerekmiyorsa uygun kısıtlamaları ve ağırlıklandırmaları ayarlayın. Herhangi bir eşleşmeye ağırlık vermek veya eşleşmeyi yalnızca belirli bölgelerle kısıtlamak için kullanılabilecek bazı parametreler vardır.

    • Bir alanı kısıtlayacak dikdörtgen sınırları ayarlamak için RectangularBounds, yalnızca bu alanlardaki adreslerin döndürüldüğünden emin olmak için setLocationRestriction() değerini kullanın.

    • Yanıtları belirli bir ülke grubuyla kısıtlamak için setCountries() özelliğini kullanın.

  • Bazı alanların eşleşmede gözden kaçması ihtimaline karşı alanları düzenlenebilir durumda bırakın ve müşterilerin gerekirse adresi güncellemelerine olanak tanıyın. Yer Otomatik Tamamlama tarafından döndürülen adreslerin çoğu apartman, daire veya daire numarası gibi alt kuruluş numaraları içermediğinden, gerektiğinde kullanıcıyı bu bilgileri doldurmaya teşvik etmek için odağı Adres Satırı 2'ye taşıyabilirsiniz.

Adres için görsel onay sağlama

Bu örnekte kullanılan alan: Android için Haritalar SDK'sı Ayrıca kullanılabilir: iOS | JavaScript

Adres girişinin bir parçası olarak, kullanıcılara adres için haritada görsel onayı sağlayın. Bu, kullanıcılara adresin doğru olduğuna dair ek güvence sağlar.

Aşağıdaki şekilde, adresin altında, girilen adreste bir raptiye bulunan harita gösterilmektedir.

Aşağıdaki örnek, Android'de harita eklemeye ilişkin temel adımları izlemektedir. Daha fazla ayrıntı için belgeleri inceleyin.

SupportMapFragment ekleniyor

İlk olarak, düzen XML dosyasına bir SupportMapFragment parçası ekleyin.

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

Ardından, henüz yoksa parçayı programatik olarak ekleyin.

    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);
        }
    }

Parçanın tanıtıcısını alma ve geri çağırmayı kaydetme

  1. Parçanın bir tanıtıcısını almak için FragmentManager.findFragmentById yöntemini çağırın ve düzen dosyanızdaki parçanın kaynak kimliğini iletin. Parçayı dinamik olarak eklediyseniz tutma yerini zaten aldığınız için bu adımı atlayın.

  2. Parçada geri çağırmayı ayarlamak için getMapAsync yöntemini çağırın.

Örneğin, parçayı statik olarak eklediyseniz:

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);

      

Haritanın stilini belirleme ve haritaya işaretçi ekleme

Harita hazır olduğunda stili ayarlayın, kamerayı ortalayın ve girilen adresin koordinatlarına bir işaretçi ekleyin. Aşağıdaki kod, bir JSON nesnesinde tanımlanan stil kullanır veya alternatif olarak Bulut Tabanlı Haritalar Stili ile tanımlanmış bir harita kimliği yükleyebilirsiniz.

    @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));
    }

(Tam kod örneğine bakın)

Harita kontrollerini devre dışı bırakma

Konumu ek harita kontrolleri (pusula, araç çubuğu veya diğer yerleşik özellikler gibi) olmadan göstererek haritayı basit tutmak için, gerekli görmediğiniz denetimleri devre dışı bırakabilirsiniz. Android'de bir başka seçenek de sınırlı etkileşim sağlamak için basit modu etkinleştirmektir.

Kullanıcı tarafından girilen adres ile cihaz konumu karşılaştırması

Kullanıcının girdiği adreste bulunduğundan emin olmak amacıyla adres kanıtı elde etmek; uzak kullanıcı konumu, kullanıcıların yeni bir adrese gelmesi veya kullanıcıların ziyaret edebileceği fiziksel bir konumu olmayan dijital işletmeler (ör. dijital bankalar), faturalar veya diğer belgeler gibi faktörler nedeniyle karmaşık olabilir. Kullanıcı adreslerini dijital olarak doğrulamak için daha hızlı ve sorunsuz bir kayıt deneyimi sağlayabilirsiniz.

Özellikle dijital kayıt işleminde, adres kontrolü almada güvenlik çok önemlidir. Bu bölümde, bir kullanıcının kayıt sırasında sahip olduğu konumun, kullanıcının kendisi olarak girdiği adresle eşleşip eşleşmediğini kontrol etmek için yönergeler ve örnekler sağlanmaktadır.

Girilen bir adresi cihaz konumuyla karşılaştırma işlemi aşağıdaki adımlardan oluşur:

  1. Kullanıcı tarafından girilen adresi coğrafi koordinatlara dönüştürme.
  2. Cihazın konumunu almak için kullanıcıdan izin isteme.
  3. Girilen adres ile cihaz konumu arasındaki mesafenin hesaplanması. Adres-konum eşleşmesi için önemli olan maksimum mesafeyi siz belirlersiniz.

Aşağıdaki şekilde, kullanıcılardan girdikleri adresi geçerli konumları ile karşılaştırmalarını nasıl isteyebileceğinize dair bir örnek verilmiştir.

Kullanıcı tarafından girilen adresi coğrafi koordinatlara dönüştürme

Bu örnekte kullanılan alan: Android için Yerler SDK'sı Ayrıca kullanılabilir: iOS | JavaScript | Geocoding API

Kullanıcılar adres doğrulamasını kabul ettikten sonra (önceki şekilde "Burada bulunduğumu doğrula"ya dokunarak), adresi geçerli konumla karşılaştırmanın ilk adımı, girilen adresi coğrafi koordinatlara dönüştürmektir.

Kullanıcı adresini Yer Otomatik Tamamlama özelliğini kullanarak seçtiyse Otomatik Yer Tamamlama widget'ını ekleme kod snippet'inde gösterildiği gibi Otomatik Yer Tamamlama alan listesinde Place.Field.LAT_LNG isteğinde bulunduğunuzdan ve seçilen adresin coğrafi koordinatlarını almak için Place.getLatLng() yöntemini çağırdığınızdan emin olun.

coordinates = place.getLatLng();

Kullanıcı, Yer Otomatik Tamamlama alanları doldurduktan sonra adresini manuel olarak girdiyse veya düzenlemeler yaptıysa, bu adrese karşılık gelen koordinatları bulmak için Android Geocoder hizmetini veya Geocoding API'yi kullanın.

Örnek

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

Geocoding API'ye yapılan çağrıyı URL olarak kodladığınızdan emin olun.

URL kodlaması hızlı başvuru: %20 = boşluk, %2B = + (artı), %2C = , (virgül)

Cihazın konumunu almak için kullanıcıdan izin isteme

Kullanıcının cihazının konumunu almak için konum hizmetlerini etkinleştirmek üzere kullanıcı izni istemeniz gerekir. Konuma duyarlı uygulamalar oluşturma ile ilgili Android dokümanlarındaki yönergeleri kullanarak aşağıdaki akışı uygulayın:

  • Tek seferlik bir bağış olarak kesin düzeyde (ACCESS_FINE_LOCATION) konum izni isteyin.

  • Kullanıcı konum erişimine izin verirse kullanıcının konumunu alın.

  • Kullanıcı konum erişimini reddederse reddetmeyi incelikli bir şekilde ele alın. Örneğin, aşağıdaki mesaj türünü sunabilirsiniz (kullanıcının mevcut konumunu depolamadığınız varsayılır):

    "Uygulamanın tam konumunuzu bilmesine izin vermezseniz, hesabınızı etkinleştirmek için postayla doğrulama yapmanız gerekir. [Tamam]"

Aşağıdaki şekilde, kullanıcıların cihaz konumunu alma izni vermeleri için örnek bir istem gösterilmektedir.

Konum iznini kontrol etmek için ActivityResultLauncher ile başlatılan etkinlikten bir sonucu dinleyecek bir etkinlik başlatıcı hazırlayın. Sonuç geri çağırma işlevi, kullanıcının istenen izni verip vermediğini gösteren bir Dize içerir.

    // 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");
                }
            });

Ardından, uygulamanın zaten ACCESS_FINE_LOCATION izni olup olmadığını kontrol edin. Açılmazsa önceki adımda tanımlanan başlatıcıyı kullanarak izin isteği etkinliğini başlatarak kullanıcıdan bu izni isteyin.

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

ACCESS_FINE_LOCATION izni verildikten sonra çok kaynaklı konum sağlayıcıyı kullanarak cihazın bilinen son konumunu alın ve bundan bir LatLng nesnesi oluşturun.

        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());
                    // ...
                });
    }

Girilen adres ile cihaz konumu arasındaki mesafe hesaplanıyor

İki enlem/boylam koordinatları (girilen adres ve cihaz konumu) arasındaki mesafeyi hesaplamak için matematikten yararlanın. Açık kaynaklı Android Yardımcı Program Kitaplığı için Haritalar SDK'sı, Earth'te iki nokta arasındaki küresel mesafeyi hesaplamak üzere bazı kullanışlı yöntemler içerir.

Öncelikle, aşağıdaki bağımlılığı uygulamanızın build.gradle dosyasına ekleyerek Android İçin Haritalar SDK'sını Yükleyin:

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'
}

Ardından, bilinen son cihaz konumunu öğrendikten sonra etkinlik dosyasında, iki konumu "eşleşti" olarak kabul etmek için metre cinsinden bir yarıçap tanımlayın. Yarıçap, GPS doğruluğundaki değişkenliği ve kullanıcının girdiği adreste yerin boyutunu hesaba katacak kadar büyük olmalıdır. Örneğin:

private static final double acceptableProximity = 150;

Ardından, cihazın konumu ile kullanıcı tarafından girilen adres konumu arasındaki mesafeyi hesaplamak için yardımcı program kitaplığı yöntemini computeDistanceBetween() kullanın. Mesafe yukarıda tanımlanan yarıçapın içine düşüyorsa eşleşen yerleri dikkate alın.

// 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
}

(Tam kod örneğine bakın)

Adres ve konum eşleşiyorsa aşağıdaki şekilde gösterildiği gibi uygulamada bir onay görüntüleyin.

Hızlı ve Doğrulanmış Kayıt'ı daha da iyileştirmeye yönelik ipuçları

Kullanıcıların, işletme veya önemli nokta adına göre adres girmelerine izin verin. "İleride yazın" tahmin hizmeti yalnızca adresler için değil, kullanıcıların işletme veya önemli nokta adları girmesine de izin vermeyi de tercih edebilirsiniz. Hem adreslerin hem de tesis adlarının girilmesine izin vermek için types özelliğini Otomatik tamamlama tanımından kaldırın.

Yer Otomatik Tamamlama kutusunun görünüm ve tarzını, web sitenizin stiline uyacak şekilde özelleştirin. Otomatik Yer Tamamlama özelliğinin görünüm ve tarzını Google'ın widget'ını kullanmak yerine uygulamanızda kontrol etmeyi tercih ederseniz, oluşturduğunuz kullanıcı arayüzünü Yer Otomatik Tamamlama hizmetiyle güçlendirmek için Otomatik Yer Tamamlama özelliğini programatik olarak kullanabilirsiniz.