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

Genel bakış

web iOS API

Google Haritalar Platformu; web (JS, TS), Android ve iOS'te kullanılabilir. Ayrıca yerler, yol tarifleri ve mesafeler hakkında bilgi edinmek için web hizmetleri API'leri sunar. Bu kılavuzdaki örnekler bir platform için yazılmıştır ancak diğer platformlarda uygulanması için belge bağlantıları sağlanmıştır.

Hemen oluşturun!

Google Cloud Console'daki Quick Builder, sizin için JavaScript kodu oluşturan etkileşimli bir kullanıcı arayüzü kullanarak adres formu otomatik tamamlama özelliği derleyebilmenize olanak tanır.

Kullanıcılar; rahatlık, hız ve güvenliğin temel beklentiler olduğu dijital bir dünyada yaşamaya ve faaliyet göstermeye alıştı. Kredi kartı, banka hesabı veya kredi gibi bir şey için başvururken işlemin hızlı ve kolay olmasını bekliyorlar.

Ne kadar çok kullanıcı yinelenen veri yazmak veya girmek zorunda kalırsa, bu verileri müşteri olarak elde tutma şansınız o kadar azalır. Hızlı, kolay ve doğrulanmış bir kayıt deneyimi oluşturmak, hem kullanıcı deneyimini iyileştirir hem de 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, kaydolma işlemini hızlandırır. Sadece birkaç başparmak dokunuşuyla yakındaki adresleri anında önerir ve girilen adresi görsel onay için göstererek kullanıcıların doğru adresi girdiğinden emin olmalarını sağlar. Mevcut konumunu kullanarak bir kullanıcının adresinin doğrulanması, sahtekarlığın önlenmesine 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 verme 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 cihazlarda kaydolacağından, bu konudaki uygulama örneklerinin çoğu Android'e odaklanmıştır. (Örnek kaynağın tamamını 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 kullanılan 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

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

  • Onay işareti simgesi, temel en iyi uygulamalardan biridir.
  • Yıldız simgesi isteğe bağlı olsa da çözümü iyileştirmek için önerilen bir özelleştirme seçeneğidir.
Giriş alanlarına otomatik tamamlama ekleme Adres formunu otomatik olarak doldurun. Tüm platformlarda kullanıcı deneyimini iyileştirmek ve en az tuş vuruşuyla adres doğruluğunu artırmak için "kullandıkça yaz" işlevi ekleyin.
Adresin görsel onayını sağlama Doğru adresi girdiklerine dair görsel bir onay olarak kullanıcıların adreslerini haritada görmesine izin verin.
Kullanıcı tarafından girilen adresi cihazın konumuyla karşılaştırma Kullanıcının seçtiği veya girdiği adresi geçerli cihaz konumuyla karşılaştırarak kullanıcının belirtilen adreste olup olmadığını belirleyin. (Bunun işe yaraması için kullanıcılar kaydolurken evde olmalıdır.)
Hızlı ve Doğrulanmış Kayıt özelliğini daha da geliştirecek ipuçları Otomatik tamamlama widget'ının görünümünü ve tarzını özelleştirmek veya kullanıcıların bir işletmenin ya da önemli noktanın adını adres olarak seçmesine izin vermek gibi eklemelerle adres girişini daha da iyileştirebilirsiniz.

Giriş alanlarına otomatik tamamlama özelliği ekleniyor

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

Otomatik Tamamlama özelliği, uygulamanızda adres girme işlemini kolaylaştırarak daha yüksek dönüşüm oranları elde etmenize ve müşterileriniz için sorunsuz bir deneyim yaşamanıza imkan tanır. Otomatik tamamlama, kayıt adresi formunu otomatik olarak doldurmak için kullanılabilecek, "type-ahead" adres tahminine sahip tek bir hızlı giriş alanı sağlar. Otomatik Yer Tamamlama özelliğini kayıt işleminize dahil ederek şunları yapabilirsiniz:

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

Kullanıcı Otomatik tamamlama giriş kutusunu seçip yazmaya başladığında adres tahminlerinin bulunduğu bir liste görünür.

Kullanıcı tahmin listesinden bir adres seçtiğinde, yanıtı kullanarak adresi doğrulayabilir ve konumu alabilirsiniz. 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'ı sağlar. Önceki resimlerde 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 otomatik tamamlama widget'ını, kullanıcının adresi girmeye başlayacağı Adres Satırı 1 giriş alanından Yer Otomatik Tamamlama'yı başlatan bir Otomatik tamamlama amacı kullanarak ekleyebilirsiniz. Kullanıcı yazmaya başladığında adresini Otomatik tamamlama tahminleri listesinden seçebilir.

Öncelikle, başlatılan etkinlikten bir sonucu dinleyecek ActivityResultLauncher kullanarak bir etkinlik başlatıcı hazırlayın. Sonuç geri çağırması, kullanıcının Otomatik tamamlama tahminlerinde seçtiği adrese karşılık gelen bir Yer 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");
                }
            });

Daha sonra, Otomatik Yer Tamamlama amacının alanlarını, konumu ve tür özelliklerini tanımlayıp 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 adresi işleme

Daha önce ActivityResultLauncher tanımlanması, etkinlik sonucu geri çağırmada döndürüldüğünde ne yapılması gerektiğini de tanımlamıştır. Kullanıcı bir tahmin seçtiyse bu tahmin, sonuç nesnesinde yer alan amaçta iletilir. Amaç Autocomplete.IntentBuilder tarafından oluşturulduğundan, Autocomplete.getPlaceFromIntent() yöntemi Yer nesnesini ondan ayıklayabilir.

    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() öğesini çağırın ve her adres bileşenini adres formundaki ilgili giriş alanıyla eşleştirerek alana kullanıcının seçtiği Yer değerini girin.

Manuel olarak girilen bir adres yerine tahminden adres verilerinin yakalanması, adresin doğruluğuna yardımcı olur, adresin bilinmesini ve teslim edilmesini sağlar ve kullanıcı tuş vuruşlarını azaltır.

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

Yalnızca widget'tan fazlasını kullanmak istiyorsanız Yer Otomatik Tamamlama özelliği, uygulamasında esnek olmasını sağlayan çeşitli seçeneklere sahiptir. Bir konumu doğru şekilde eşleştirmek için ihtiyacınız olan her şeyi elde etmek amacıyla çeşitli hizmetleri bir arada kullanabilirsiniz.

  • ADDRESS formu için eşleşmeleri tam açık adreslerle kısıtlamak için tür 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 sapmaları ayarlayın. Herhangi bir eşleşmeye ağırlık vermek veya eşlemeyi yalnızca belirli bölgelerle kısıtlamak için kullanılabilecek çeşitli parametreler vardır.

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

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

  • Eşleşmede belirli alanların kaçırılması ihtimaline karşı alanları düzenlenebilir bırakın ve gerekirse müşterilerin adresi güncellemesine izin verin. Otomatik Yer Tamamlama tarafından döndürülen adreslerin çoğu apartman, daire veya daire numarası gibi alt bina numaraları içermediğinden, gerekirse kullanıcıyı bu bilgileri doldurmaya teşvik etmek için odağı Adres Satırı 2'ye taşıyabilirsiniz.

Adresin görsel onayını sağlama

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

Adres girişi kapsamında, kullanıcılara adresin onayının harita üzerinde görsel olarak gösterilmesini sağlayın. Bu, kullanıcılara adresin doğru olduğundan emin olur.

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

Aşağıdaki örnekte, Android'de harita eklemek için temel adımlar açıklanmaktadır. Daha ayrıntılı bilgi 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çaya herkese açık kullanıcı adı verme ve geri çağırmayı kaydetme

  1. Parçaya herkese açık kullanıcı adı 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 herkese açık kullanıcı adını zaten aldığınız için bu adımı atlayın.

  2. Parçadaki 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);

      

Stil oluşturma 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 stilleri kullanır veya alternatif olarak Bulut Tabanlı Haritalar Stil ile tanımlanmış bir harita kimliğini de 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 denetimlerini devre dışı bırakma

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

Kullanıcı tarafından girilen adres, cihaz konumuyla karşılaştırılıyor

Adres belgesi almak (kullanıcının girdiği adreste olduğundan emin olmak) kullanıcının uzaktaki konumu, kullanıcıların yeni bir adrese taşınması veya elektrik/su/doğalgaz/internet faturaları ya da diğer belgelerde adres kanıtı sağlamak için ziyaret edebileceği fiziksel bir konumu olmayan dijital işletmeler (ör. dijital bankalar) gibi faktörler nedeniyle karmaşık olabilir. Kullanıcı adreslerini doğrulamak için dijital yöntemler sunmak, daha hızlı ve sorunsuz bir kayıt deneyimi sunmanıza olanak tanır.

Özellikle dijital kayıt sürecinde, adres kontrolü almanın en önemli noktası güvenliktir. Bu bölümde, bir kullanıcının kayıt sırasında bulunduğu konumun, kullanıcının kendi adresi olarak girdiği adresle eşleşip eşleşmediğini kontrol etmek için yönergeler ve örnekler sağlanmaktadır.

Girilen bir adresin cihaz konumuyla karşılaştırılması aşağıdaki adımları içerir:

  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 gereken maksimum mesafeyi siz belirlersiniz.

Aşağıdaki şekilde, kullanıcılardan girdikleri adresi mevcut konumlarıyla karşılaştırmalarını nasıl isteyeceğinize dair bir örnek verilmiştir.

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

Bu örnekte kullanım alanı: Android için Yerler SDK'sı Şunları da kullanabilirsiniz: iOS | JavaScript | Geocoding API

Kullanıcılar adres doğrulamayı kabul ettikten sonra (önceki şekilde "Şimdi orada olduğ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 Otomatik Yer 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 emin olun ve seçilen adresin coğrafi koordinatlarını almak için Place.getLatLng() yöntemini çağırın.

coordinates = place.getLatLng();

Kullanıcı adresini manuel olarak girdiyse veya Yer Otomatik Tamamlama alanları doldurduktan sonra düzenleme yaptıysa bu adrese karşılık gelen koordinatları aramak 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ı referansı: %20 = boşluk, %2B = + (artı), %2C = , (virgül)

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

Kullanıcının cihaz konumunu almak için kullanıcı izni istemeniz gerekir. Bu izin, konum hizmetlerini etkinleştirmenize de olanak tanır. Konumu algılayan uygulamalar oluşturma ile ilgili Android dokümanlarındaki yönergeleri kullanarak aşağıdaki akışı uygulayın:

  • Tek seferlik izin olarak kesin bir düzeyde (ACCESS_FINE_LOCATION) konum izni isteyin.

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

  • Kullanıcı konum erişimini reddederse reddetme sürecini sorunsuz bir şekilde tamamlayın. Örneğin, aşağıdaki türde bir mesaj sunabilirsiniz (kullanıcının geçerli konumunu depolamadığınız varsayıldığında):

    "Uygulamanın tam konumunuzu öğrenmesine 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 elde etmek için izin vermelerini isteyen örnek bir istem gösterilmektedir.

Konum iznini kontrol etmek için ActivityResultLauncher ile başlatılan etkinlikten sonuçları dinleyecek bir etkinlik başlatıcı hazırlayın. Sonuç geri çağırması, kullanıcının istenen izni verip vermediğini veya reddettiğ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ı kullanıp izin isteği etkinliğini başlatarak kullanıcıdan izin 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, cihazın bilinen son konumunu almak ve bundan bir LatLng nesnesi oluşturmak için çok kaynaklı konum sağlayıcıyı kullanın.

        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 koordinatı arasındaki mesafeyi hesaplamak için matematik yöntemini kullanın (girilen adres ve cihaz konumu). Açık kaynaklı Android Yardımcı Program Kitaplığı için Haritalar SDK'sı, Earth üzerindeki iki nokta arasındaki küresel mesafeyi hesaplamak için bazı kullanışlı yöntemler sunar.

Öncelikle, uygulamanızın build.gradle dosyasına aşağıdaki bağımlılığı ekleyerek Android Utility Library iç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 aldıktan sonra etkinlik dosyasına geri döndüğünüzde, 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 adresteki 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ının girdiği adres arasındaki mesafeyi hesaplamak için yardımcı program kitaplığı yöntemini computeDistanceBetween() kullanın. Mesafe, yukarıda tanımlanan yarıçap dahilindeyse eşleşen konumları değerlendirin.

// 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 uygulamada aşağıdaki şekilde gösterildiği gibi bir onay görüntüleyin.

Hızlı ve Doğrulanmış Kayıt özelliğini daha da geliştirmeye yönelik ipuçları

Kullanıcıların işletme veya önemli yer adına dayalı adres girmesine izin verin. "Önceden yazın" tahmin hizmeti yalnızca adresler için değil, aynı zamanda kullanıcıların işletme veya önemli nokta adları girmesine de izin vermeyi seçebilirsiniz. Hem adres hem de tesis adlarının girilmesine izin vermek için types özelliğini Otomatik tamamlama tanımından kaldırın.

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