Genel Bakış
Google Haritalar Platformu web (JS, TS), Android ve iOS için kullanılabilir. Ayrıca yerler, yönler 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 doküman bağlantıları sağlanmıştır.
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 ö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ışmıştır. 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 kopya veri yazması veya girmesi gerekirse onları müşteri olarak elde tutma şansınız o kadar azalır. Hızlı, kolay ve doğrulanmış bir kayıt deneyimi oluşturmak, kullanıcı deneyimini iyileştirir ve kullanıcıları sitenizde tutma konusunda size avantaj sağlar.
Manuel olarak girilen adresler, dönüşümlerin azalmasına, hatalı CRM verilerine ve maliyetli yayınlama hatalarına neden olabilir. Hızlı ve Doğrulanmış Kaydolma, kaydolma 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örüntüler. Böylece 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 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 konuda, Google Haritalar Platformu ile Hızlı Kayıt ve Doğrulama deneyimi oluşturmayla ilgili uygulama yönergeleri sağlanmaktadır. Kullanıcılar büyük olasılıkla mobil cihazlarda kaydolacağından bu konudaki uygulama örneklerinin çoğu Android'e odaklanır. (Tam örnek kaynağını burada görebilirsiniz). Aynı işlemleri yapmak 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:
- Android için Haritalar SDK'sı (veya tercih ettiğiniz platformun API'si)
- Places API
- Geocoding API
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 konuda ele alacağımız uygulamalar ve özelleştirmeler aşağıda verilmiştir.
- Onay işareti simgesi, temel en iyi uygulamalardan biridir.
- Yıldız simgesi, çözümü iyileş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 en az tuş vuruşuyla adres doğruluğunu artırmak için yazarken düzeltme işlevi ekleyin. | |
Adresin görsel olarak onaylanması | Kullanıcıların, doğru adresi girdiklerini görsel olarak doğrulamak için adreslerini haritada görmelerine izin verin. | |
Kullanıcı tarafından girilen adresi cihaz konumuyla karşılaştırma | Kullanıcının seçtiği veya girdiği adresi, belirtilen adreste olup olmadığını belirlemek için mevcut cihaz konumuyla karşılaştırın. (Bu özelliğin çalışması için kullanıcıların kaydolurken evde olması gerekir.) | |
Hızlı ve Doğrulanmış Kaydolma'yı 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 veya önemli bir yerin adını seçmesine izin verme gibi eklemelerle adres girişini daha da geliştirebilirsiniz. |
Giriş alanlarına otomatik tamamlama ekleme
Bu örnekte şunlar kullanılır: Android için Yerler SDK'sı | Ayrıca kullanılabilir: iOS | JavaScript |
Yer otomatik tamamlama özelliği, uygulamanızda adres girişini basitleştirerek daha yüksek dönüşüm oranları elde etmenize ve müşterilerinize sorunsuz bir deneyim sunmanıza yardımcı olabilir. Otomatik tamamlama, "önceden yazma" adres tahmini içeren tek bir hızlı giriş alanı sağlar. Bu alan, kayıt adres formunu otomatik olarak doldurmak için kullanılabilir. Yer Otomatik Tamamlama özelliğini kayıt akışınıza ekleyerek şunları yapabilirsiniz:
- Adres girişi hatalarını azaltın.
- Kayıt işlemindeki adım sayısını azaltın.
- Mobil cihazlarda veya giyilebilir cihazlarda adres girişi deneyimini basitleştirin.
- Müşterilerin 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 bir adres tahminleri listesi gösterilir.
Kullanıcı tahminler listesinden bir adres seçtiğinde, adresi doğrulamak ve konumu almak için yanıtı kullanabilirsiniz. Ardından uygulamanız, aşağıdaki şekilde gösterildiği gibi adres giriş formunun doğru alanlarını doldurabilir.
Videolar: Yer Otomatik Tamamlama ile adres formlarını geliştirme
Adres formları
Yapay Zeka
iOS
Web
Google Haritalar Platformu, mobil platformlar ve web için bir Yer Otomatik Tamamlama widget'ı sağlar. Önceki şekillerde gösterilen widget, yerleşik otomatik tamamlama işlevine sahip bir arama iletişim kutusu sağlar. Bu işlevi, konum kapsamlı arama için optimize edebilirsiniz.
Bu bölümde, Hızlı ve Doğrulanmış Kaydolma için Yer Otomatik Tamamlama özelliğinin 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 otomatik tamamlama intent'i kullanarak otomatik tamamlama widget'ını ekleyebilirsiniz. Kullanıcılar yazmaya başladığında, otomatik tamamlama tahminleri listesinden adreslerini seçebilirler.
Öncelikle, ActivityResultLauncher
kullanarak, başlatılan etkinlikten sonuç dinleyecek bir etkinlik başlatıcı 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 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"); } });
Ardından, yer 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
öğesini 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.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); }
Yer otomatik tamamlama tarafından döndürülen adresi işleme
ActivityResultLauncher
daha önce tanımlandığında, geri çağırma işlevinde etkinlik sonucu döndürüldüğünde ne yapılması gerektiği de tanımlanmış olur. Kullanıcı bir tahmin seçtiyse bu tahmin, sonuç nesnesinde bulunan intent'te yayınlanır. Intent, Autocomplete.IntentBuilder
tarafından oluşturulduğundan Autocomplete.getPlaceFromIntent()
yöntemi, Place nesnesini buradan 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"); } });
Ardından Place.getAddressComponents()
işlevini çağırın ve her adres bileşenini adres formundaki ilgili giriş alanıyla eşleştirin. Bu işlemi yaparken alanı, kullanıcının seçtiği yerle ilişkili değerle doldurun.
Manuel olarak girilen adres yerine tahminden adres verileri alınması, adresin doğruluğunun sağlanmasına, adresin bilinmesine ve teslim edilebilmesine yardımcı olur ve kullanıcı tuş vuruşlarını azaltır.
Yer otomatik tamamlama özelliğini uygularken dikkat edilmesi gereken noktalar
Yer Otomatik Tamamlama, widget'tan daha fazlasını kullanmak istiyorsanız uygulama konusunda esneklik sağlayan çeşitli seçeneklere sahiptir. Bir konumu doğru şekilde eşleştirmek için tam olarak ihtiyacınız olan bilgileri almak üzere çeşitli hizmetleri birlikte kullanabilirsiniz.
ADDRESS formunda, eşleşmeleri tam açık adreslerle sınırlamak için types parametresini
address
olarak ayarlayın. Place otomatik tamamlama isteklerinde desteklenen türler hakkında daha fazla bilgi edinin.Dünya genelinde arama yapmanız gerekmiyorsa uygun kısıtlamaları ve önyargıları ayarlayın. Herhangi bir eşleşmeyi yalnızca belirli bölgelere yönlendirmek veya kısıtlamak için kullanılabilecek çeşitli parametreler vardır.
Bir alanı kısıtlamak için dikdörtgen sınırları ayarlamak üzere
RectangularBounds
'ü, yalnızca bu alanlardaki adreslerin döndürülmesini sağlamak içinsetLocationRestriction()
'ü kullanın.Yanıtları belirli bir ülke grubuyla kısıtlamak için
setCountries()
simgesini kullanın.
Eşleştirmede belirli alanların atlanması ihtimaline karşı alanları düzenlenebilir bırakın ve müşterilerin gerekirse adresi güncellemesine izin verin. Yer Otomatik Tamamlama tarafından döndürülen adreslerin çoğu apartman, daire veya birim numarası gibi alt tesis numaraları içermediğinden, kullanıcıyı gerekirse bu bilgileri doldurmaya teşvik etmek için odağı Adres Satırı 2'ye taşıyabilirsiniz.
Adresin görsel olarak onaylanması
Bu örnekte şunlar kullanılır: Android için Haritalar SDK'sı | Ayrıca 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 emin olabilir.
Aşağıdaki resimde, girilen adresin altında bir raptiyenin gösterildiği bir harita yer almaktadır.
Aşağıdaki örnekte, Android'de harita eklemeyle ilgili temel adımlar uygulanmaktadır. Daha fazla bilgi için dokümanları inceleyin.
SupportMapFragment
ekleme (bu durumda, dinamik olarak bir parça ekleme)- Fragmanın adını alma ve geri arama işlevini kaydetme
- Haritaya stil uygulama ve işaretçi ekleme
- Harita kontrollerini devre dışı bırakma
SupportMapFragment
ekleniyor
Öncelikle düzenleme 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.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); } }
Fragment için bir tutamak alma ve geri çağırma işlevini kaydetme
Parçanın adı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.Parçadaki geri çağırma işlevini ayarlamak için
getMapAsync
yöntemini çağırın.
Örneğin, snippet'i 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);
Haritaya stil uygulama ve işaretçi ekleme
Harita hazır olduğunda stili ayarlayın, kamerayı merkeze alın ve girilen adresin koordinatlarına bir işaretçi ekleyin. Aşağıdaki kodda, JSON nesnesinde tanımlanan stil kullanılı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)); }
Harita kontrollerini devre dışı bırakma
Haritayı basit tutmak için konumu ek harita kontrolleri (ör. pusula, araç çubuğu veya diğer yerleşik özellikler) olmadan göstererek gerekli bulmadığınız kontrolleri devre dışı bırakabilirsiniz. Android'de sınırlı etkileşim sağlamak için basit modu etkinleştirmek de bir seçenektir.
Kullanıcı tarafından girilen adresin cihaz konumuyla karşılaştırılması
Adres belgesi almak (kullanıcıların girdikleri adreste bulunduklarından emin olmak), uzak kullanıcı konumu, yeni bir adrese taşınan kullanıcılar veya kullanıcıların altyapı faturaları ya da diğer belgelerle adres belgesi sağlamak için ziyaret edebileceği fiziksel bir konumu olmayan dijital işletmeler (dijital bankalar gibi) gibi faktörler nedeniyle karmaşık olabilir. Kullanıcı adreslerini doğrulamanın dijital yollarını sunmak, daha hızlı ve sorunsuz bir kaydolma deneyimi sunmanıza olanak tanır.
Özellikle dijital kayıt sürecinde adres kontrolü yaparken güvenlik büyük önem taşır. Bu bölümde, kullanıcının kayıt sırasındaki konumunun kendi adresi olarak girdikleri adresle eşleşip eşleşmediğini kontrol etmeyle ilgili yol gösterici bilgiler ve örnekler sağlanmaktadır.
Girilmiş bir adresi cihaz konumuyla karşılaştırma işlemi aşağıdaki adımları içerir:
- Kullanıcı tarafından girilen adresi coğrafi koordinatlara dönüştürme.
- Kullanıcıdan cihazının konumunu almak için izin isteme.
- 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 isteyeceğinize dair bir örnek verilmiştir.
Kullanıcı tarafından girilen adresi coğrafi koordinatlara dönüştürme
Bu örnekte şunlar kullanılır: Android için Yerler SDK'sı | Ayrıca kullanılabilir: iOS | JavaScript | Geocoding API |
Kullanıcılar adres doğrulamayı kabul ettikten sonra (önceki resimde "Şu anda burada olduğumu doğrula"ya 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 Otomatik Tamamlama ile seçtiyse Yer Otomatik Tamamlama widget'ını ekleme kod snippet'inde gösterildiği gibi Yer Otomatik Tamamlama alan listesinde Place.Field.LAT_LNG
isteğinde bulunun 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 Yerler Autocomplete alanları doldurduktan sonra düzenlemeler yaptıysa söz konusu adrese karşılık gelen koordinatları aramak için Android Coğrafi Kodlayıcı 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)
Kullanıcıdan cihazının konumunu alma izni isteme
Kullanıcının cihaz konumunu almak için konum hizmetlerini etkinleştirmek üzere kullanıcı izni almanız gerekir. Android dokümanlarında konum kullanım özelliği olan uygulamalar oluşturma ile ilgili yönergeleri kullanarak aşağıdaki akışı uygulayın:
Tam konum düzeyinde (
ACCESS_FINE_LOCATION
) tek seferlik izin olarak konum izni isteyin.Kullanıcı konum erişimi verirse kullanıcının konumunu alın.
Kullanıcı konum erişimini reddederse bu durumu nazikçe ele alın. Örneğin, aşağıdaki türde bir mesaj gösterebilirsiniz (kullanıcı konumunu saklamadığınız varsayılarak):
"Uygulamanın tam konumunuzu bilmesine izin vermezseniz hesabınızı etkinleştirmek için postayla doğrulama yapmanız gerekir. [Tamam]"
Aşağıdaki resimde, kullanıcıların cihaz konumunu elde etme izni vermesi için örnek bir istem gösterilmektedir.
Konum iznini kontrol etmek için, ActivityResultLauncher
ile başlatılan etkinlikten sonuç dinleyecek bir etkinlik başlatıcı hazırlayı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
izninin olup olmadığını kontrol edin.
Aksi takdirde, önceki adımda tanımlanan başlatıcıyı kullanarak 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 bu konumdan bir LatLng
nesnesi oluşturmak için birleştirilmiş 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()); // ... }); }
Girilmiş adres ile cihaz konumu arasındaki mesafeyi hesaplama
İki enlem/boylam koordinatı (girilen adres ve cihaz konumu) arasındaki mesafeyi hesaplamak için matematik kullanın. Açık kaynak Android için Haritalar SDK'sı Yardımcı Kitaplığı, Dünya'daki iki nokta arasındaki küresel mesafeyi hesaplamak için bazı kullanışlı yöntemler içerir.
Öncelikle, uygulamanızın build.gradle.kts
dosyasına aşağıdaki bağımlılığı ekleyerek Android için Haritalar SDK'sı Yardımcı Kitaplığı'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.2") }
Ardından, bilinen son cihaz konumunu aldıktan sonra etkinlik dosyasında, 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 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 içindeyse konumlar eşleşir.
// 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 }
Adres ve konum eşleşirse aşağıdaki şekilde gösterildiği gibi uygulamada bir onay gösterin.
Hızlı ve Doğrulanmış Kaydolma ö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. "Önceden yazma" tahmin hizmeti yalnızca adresler için değil, kullanıcıların işletme veya önemli yer adları girmesine izin vermek için de kullanılabilir.
Hem adreslerin hem de tesis adlarının girilmesine izin vermek için types
mülkünü otomatik tamamlama tanımından kaldırın.
Otomatik Yer Tamamlama kutusunun görünümünü ve tarzını web sitenizin tarzına uyacak şekilde özelleştirin. Google'ın widget'ını kullanmak yerine uygulamanızdaki Yer Otomatik Tamamlama'nın görünümünü ve tarzını kontrol etmeyi tercih ediyorsanız Yer Otomatik Tamamlama hizmetiyle oluşturduğunuz kullanıcı arayüzünü desteklemek için Yer Otomatik Tamamlama'yı programatik olarak kullanabilirsiniz.