Hızlı ve doğrulanmış kayıt

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 de sunar. Bu kılavuzdaki örnekler tek bir platform için yazılmıştır ancak diğer platformlarda uygulama 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 oluşturmanıza olanak tanır.

Kullanıcılar; kolaylık, hız ve güvenliğin temel beklentiler olduğu dijital bir dünyada yaşamaya ve çalışmaya alıştı. Kredi kartı, banka hesabı veya kredi gibi bir şeye başvurduklarında sürecin hızlı ve kolay olmasını beklerler.

Kullanıcıların ne kadar çok yazması veya yinelenen veriler girmesi gerekirse onları müşteri olarak elde tutma şansınız o kadar azalır. Hızlı, kolay ve doğrulanmış bir kaydolma 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, CRM verilerinin hatalı olmasına ve maliyetli teslimat hatalarına yol açabilir. Hızlı ve Doğrulanmış Kayıt özelliği, kayıt işlemini hızlandırır. Yalnızca birkaç parmak dokunuşuyla yakındaki adresleri anında önerir ve girilen adresi görsel onay için göstererek kullanıcının doğru adresi girdiğinden emin olmasını sağlar. Kullanıcının adresini mevcut konumunu kullanarak doğrulamak, sahtekarlığı önlemeye 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 belgede, Google Haritalar Platformu ile Hızlı ve Doğrulanmış Kayıt deneyimi oluşturmaya yönelik uygulama kılavuzu sunulmaktadır. Kullanıcılar büyük olasılıkla mobil cihazlarda kaydolacağından, bu belgedeki uygulama örneklerinin çoğu Android'e odaklanmaktadır. Eksiksiz örnek için örnek kaynak koduna bakın. Aynı hedeflere ulaşmak 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 başlıklı makaleyi inceleyin.

En iyi uygulamalar bölümleri

Bu belgede aşağıdaki uygulamalar ve özelleştirmeler ele alınmaktadır.

  • Onay işareti simgesi, temel bir en iyi uygulamadır.
  • 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 doldurma Tüm platformlarda kullanıcı deneyimini iyileştirmek ve minimum tuş vuruşuyla adres doğruluğunu artırmak için yazarken tamamlama işlevini ekleyin.
Adresin görsel olarak doğrulanması Kullanıcıların doğru adresi girdiklerine dair görsel onay olarak adreslerini haritada görmelerini sağlayın.
Kullanıcı tarafından girilen adres ile cihaz konumunu karşılaştırma Kullanıcının seçtiği veya girdiği adresi mevcut cihaz konumuyla karşılaştırarak belirtilen adreste olduğunu belirlemeye yardımcı olun. (Bu özelliğin çalışması için kullanıcıların kaydolurken evde olması gerekir.)
Hızlı ve Doğrulanmış Kayıt özelliğini daha da iyileştirmeye yönelik ipuçları Otomatik tamamlama widget'ının görünümünü ve tarzını özelleştirme veya kullanıcıların adres olarak bir işletmenin ya da önemli yerin adını seçmesine izin verme gibi eklemelerle adres girişini daha da iyileştirebilirsiniz.

Giriş alanlarına otomatik tamamlama ekleme

Bu örnekte kullanılanlar: Android için Yerler SDK'sı Şu dillerde de kullanılabilir: iOS | JavaScript

Yer Adı Otomatik Tamamlama, uygulamanızda adres girişini basitleştirerek daha yüksek dönüşüm oranları ve müşterileriniz için sorunsuz bir deneyim sağlayabilir. Otomatik tamamlama, "yazarken tahmin" adres tahminiyle tek bir hızlı giriş alanı sağlar. Bu alan, kayıt adresi formunu otomatik olarak doldurmak için kullanılabilir. Yer Adı Otomatik Tamamlama özelliğini kayıt akışınıza dahil ederek şunları yapabilirsiniz:

  • Adres girişi hatalarını azaltın.
  • Kayıt sürecindeki adım sayısını azaltın.
  • Mobil veya giyilebilir cihazlarda adres girişini basitleştirin.
  • Müşterinin kaydolması için gereken tuş vuruşlarını ve toplam süreyi önemli ölçüde azaltın.

Kullanıcı, otomatik tamamlama giriş kutusunu seçip yazmaya başladığında adres tahminlerinin listesi 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 resimde gösterildiği gibi adres giriş formunun doğru alanlarını doldurabilir.

Videolar: Yer Adı Otomatik Tamamlama ile adres formlarını geliştirme

Adres formları

Android

iOS

Web

Google Haritalar Platformu, mobil platformlar ve web için Yer Adı Otomatik Tamamlama widget'ı sunar. Önceki şekillerde gösterilen widget, yerel 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 Yer Adı Otomatik Tamamlama'nın nasıl uygulanacağı açıklanmaktadır.

Yer Adı Otomatik Tamamlama widget'ını ekleme

Android'de, kullanıcının adresini girmeye başlayacağı Adres Satırı 1 giriş alanından Yer Adı Otomatik Tamamlama'yı başlatan bir Autocomplete intent kullanarak otomatik tamamlama widget'ını ekleyebilirsiniz. Yazmaya başladıklarında, otomatik tamamlama tahminleri listesinden adreslerini seçebilirler.

İlk olarak, başlatılan etkinlikten sonuç bekleyecek 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, Yer Adı Otomatik Tamamlama amacının alanlarını, konumunu ve tür özelliklerini tanımlayın ve Autocomplete.IntentBuilder ile oluşturun. Son olarak, önceki kod örneğinde tanımlanan ActivityResultLauncher kullanarak intent'i 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.LOCATION, Place.Field.VIEWPORT);

        // Build the autocomplete intent with field, country, and type filters applied
        Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.OVERLAY, fields)
                .setCountries(List.of("US"))
                // IMPORTANT: the widget uses the legacy api
                .setTypesFilter(List.of(PlaceTypes.ADDRESS))
                .build(this);
        startAutocomplete.launch(intent);
    }

Yer Adı Otomatik Tamamlama tarafından döndürülen adresi işleme

ActivityResultLauncher öğesini daha önce tanımlarken, etkinlik sonucu geri çağırmada döndürüldüğünde ne yapılması gerektiğini de tanımlamıştık. Kullanıcı bir tahmin seçtiyse bu tahmin, sonuç nesnesinde yer alan intent içinde iletilir. Intent Autocomplete.IntentBuilder tarafından oluşturulduğu için Autocomplete.getPlaceFromIntent() yöntemi, Place nesnesini intent'ten çı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ştirerek alanı kullanıcının seçtiği yerin değeriyle doldurun.

Adres verilerinin manuel olarak girilen bir adres yerine tahminden alınması, adresin doğruluğunu ve bilinen bir adres olmasını sağlar. Ayrıca, adresin teslim edilebilir olmasını sağlar ve kullanıcıların tuş vuruşlarını azaltır.

Yer Adı Otomatik Tamamlama özelliğini uygularken dikkat edilmesi gerekenler

Yer Adı Otomatik Tamamlama, yalnızca widget'ı kullanmak istemiyorsanız uygulanması konusunda esnek olmasını sağlayan çeşitli seçeneklere sahiptir. Bir konumu doğru şekilde eşleştirmek için tam olarak ihtiyacınız olanı elde etmek amacıyla hizmetlerin bir kombinasyonunu kullanabilirsiniz.

  • ADDRESS formunda, eşleşmeleri tam açık adreslerle kısıtlamak için types parametresini address olarak ayarlayın. Yer Adı Otomatik 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ıkları ayarlayın. Herhangi bir eşleşmeyi yalnızca belirli bölgelerle sınırlamak veya bu bölgelere yönlendirmek için kullanılabilecek çeşitli parametreler vardır.

    • Bir alanın sınırlandırılacağı dikdörtgen sınırları ayarlamak için RectangularBounds, yalnızca bu alanlardaki adreslerin döndürülmesini sağlamak 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 eksik olması ihtimaline karşı alanları düzenlenebilir bırakın ve müşterilerin gerektiğinde adresi güncellemesine izin verin. Yer Adı Otomatik Tamamlama tarafından döndürülen çoğu adres; apartman dairesi, süit veya birim numaraları gibi alt tesis numaralarını içermediğinden, odağı Adres Satırı 2'ye taşıyarak kullanıcıyı gerekirse bu bilgileri doldurmaya teşvik edebilirsiniz.

Adresin görsel olarak doğrulanması

Bu örnekte kullanılanlar: Android için Haritalar SDK'sı Şu dillerde de kullanılabilir: iOS | JavaScript

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

Aşağıdaki resimde, adresin altında, girilen adrese eklenmiş bir raptiye simgesi bulunan bir harita gösterilir.

Aşağıdaki örnekte, Android'de harita eklemeyle ilgili temel adımlar uygulanmaktadır. Daha fazla bilgi için belgelere göz atın.

SupportMapFragment ekleniyor

Öncelikle 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 mevcut değilse parçayı programatik olarak ekleyin.

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

        // 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 erişme ve geri çağırmayı kaydetme

  1. Parçanın referansı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, 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);

      

Haritayı stilize etme 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. Alternatif olarak, bulut tabanlı harita stilleri ile tanımlanmış bir harita kimliği 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));
    }

(Kod örneğinin tamamını inceleyin)

Harita kontrollerini devre dışı bırakma

Pusula veya araç çubuğu gibi ek harita kontrolleri olmadan konumu göstererek haritayı temiz tutmak için ihtiyacınız olmayan kontrolleri devre dışı bırakabilirsiniz. Android'de, sınırlı etkileşim sağlamak için Lite modunu etkinleştirmek de başka bir seçenektir.

Kullanıcının girdiği adresi cihaz konumuyla karşılaştırma

Kullanıcının girdiği adreste bulunduğundan emin olmak için adres belgesi almak; kullanıcının uzak bir konumda olması, yeni bir adrese taşınması veya dijital işletmelerin (ör. dijital bankalar) kullanıcıların adres belgesi sunmak için ziyaret edebileceği fiziksel bir konumunun olmaması gibi faktörler nedeniyle karmaşık olabilir. Kullanıcı adreslerini doğrulamak için dijital yöntemler sunarak daha hızlı ve sorunsuz bir kaydolma deneyimi sağlayabilirsiniz.

Adres kontrolü alırken, özellikle dijital kayıt sürecinde güvenlik son derece önemlidir. Bu bölümde, kayıt sırasında kullanıcının bulunduğu konumun kendi adresi olarak girdiği adresle eşleşip eşleşmediğini kontrol etme konusunda rehberlik ve örnekler sunulmaktadır.

Girilen bir adresi cihaz konumuyla karşılaştırma işlemi aşağıdaki adımları içerir:

  1. Kullanıcı tarafından girilen adresi coğrafi koordinatlara dönüştürme.
  2. Kullanıcıdan cihazının konumunu alma izni isteme
  3. Girilen adres ile cihaz konumu arasındaki mesafeyi hesaplama. Adres-konum eşleşmesi için geçerli olan maksimum mesafeyi siz belirlersiniz.

Aşağıdaki resimde, kullanıcılardan girdikleri adresi mevcut konumlarıyla karşılaştırmalarını nasıl isteyebileceğiniz gösterilmektedir.

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

Bu örnekte şunlar kullanılmaktadır: Android için Yerler SDK'sı Şu dillerde de kullanılabilir: iOS | JavaScript | Geocoding API

Kullanıcılar adres doğrulamayı kabul ettikten sonra (önceki şekilde "Şu anda oradayım"a dokunarak) adresi mevcut konumla karşılaştırmanın ilk adımı, girilen adresi coğrafi koordinatlara dönüştürmektir.

Kullanıcı, adresini Yer Adı Otomatik Tamamlama ile seçtiyse Place.Field.LAT_LNG isteğinde bulunduğunuzdan emin olun. Yer Adı Otomatik Tamamlama widget'ını ekleme kod snippet'inde gösterildiği gibi Yer Adı Otomatik Tamamlama alan listesinde 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 Place Autocomplete alanları doldurduktan sonra düzenlemeler 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 çağrısını URL kodlaması ile yaptığınızdan emin olun.

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

Kullanıcıdan cihazının konumunu almak için izin isteme

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

  • Konum iznini bir defaya mahsus olmak üzere tam düzeyde isteyin (ACCESS_FINE_LOCATION).

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

  • Kullanıcı konum erişimini reddederse bu durumu sorunsuz bir şekilde yönetin. Örneğin, aşağıdaki türde bir mesaj gösterebilirsiniz (kullanıcının mevcut konumunu depolamadığınızı varsayarsak):

    "Uygulamaya tam konumunuzu bildirmezseniz hesabınızı etkinleştirmek için posta yoluyla doğrulama yapmanız gerekir. [OK]"

Aşağıdaki şekilde, kullanıcılardan cihaz konumunu almak için izin vermelerini isteyen örnek bir istem gösterilmektedir.

Konum iznini kontrol etmek için başlatılan etkinlikten bir sonuç dinleyecek bir etkinlik başlatıcı hazırlayın. Bunun için ActivityResultLauncher kullanın. Sonuç geri çağırma işlevi, kullanıcının istenen izni verip vermediğini belirten 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 ACCESS_FINE_LOCATION iznine sahip olup olmadığını kontrol edin. İzin verilmemişse önceki adımda tanımlanan başlatıcıyı kullanarak izin isteği etkinliğini başlatıp 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 bu konumdan 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 mesafeyi hesaplama

İki enlem ve boylam koordinatı (girilen adres ve cihaz konumu) arasındaki mesafeyi hesaplamak için matematiksel yöntemleri kullanın. Açık kaynaklı Android Yardımcı Program Kitaplığı İçin Haritalar SDK'sı, dünyadaki iki nokta arasındaki küresel mesafeyi hesaplamak için bazı kullanışlı yöntemler içerir.

Öncelikle, aşağıdaki bağımlılığı uygulamanızın build.gradle.kts dosyasına ekleyerek Android Yardımcı Program Kitaplığı İç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(libs.android.maps.utils)
}

Ardından, bilinen son cihaz konumunu aldıktan sonra etkinlik dosyasına dönün ve iki konumun "eşleştiğini" 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 konumu arasındaki mesafeyi hesaplamak için yardımcı program kitaplığı yöntemini (computeDistanceBetween()) kullanın. Mesafe yukarıda tanımlanan yarıçap içindeyse konumlar eşleşmiş kabul edilir.

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

(Kod örneğinin tamamını inceleyin.)

Adres ve konum eşleşirse uygulamada aşağıdaki resimde gösterildiği gibi bir onay mesajı gösterin.

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

Kullanıcıların bir işletme veya önemli yer adına göre adres girmesine izin verin. "Yazarken tahmin et" tahmin hizmeti yalnızca adresler için çalışmaz. Kullanıcıların işletme veya önemli yer adları girmesine de izin verebilirsiniz. Hem adreslerin hem de kuruluş adlarının girilmesine izin vermek için types özelliğini otomatik tamamlama tanımından kaldırın.

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