खास जानकारी
Google Maps Platform, वेब (JS, TS), Android, और iOS के लिए उपलब्ध है. साथ ही, यह जगहों, दिशाओं, और दूरियों के बारे में जानकारी पाने के लिए, वेब सेवाओं के एपीआई भी उपलब्ध कराता है. इस गाइड में दिए गए सैंपल, किसी एक प्लैटफ़ॉर्म के लिए लिखे गए हैं. हालांकि, अन्य प्लैटफ़ॉर्म पर इन्हें लागू करने के लिए, दस्तावेज़ के लिंक दिए गए हैं.
क्विक बिल्डर Google Cloud कंसोल में मौजूद है. इसकी मदद से, पते के फ़ॉर्म को अपने-आप पूरा करने की सुविधा बनाई जा सकती है. इसके लिए, इंटरैक्टिव यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल किया जाता है. यह यूज़र इंटरफ़ेस (यूआई), आपके लिए JavaScript कोड जनरेट करता है.
उपयोगकर्ताओं को डिजिटल दुनिया में रहने और काम करने की आदत पड़ गई है. इस दुनिया में, सुविधा, तेज़ी, और सुरक्षा उनकी बुनियादी ज़रूरतें हैं. क्रेडिट कार्ड, बैंक खाता या लोन के लिए आवेदन करते समय, वे चाहते हैं कि यह प्रोसेस आसान और तेज़ी से पूरी हो.
अगर उपयोगकर्ताओं को ज़्यादा टाइप करना पड़ता है या डुप्लीकेट डेटा डालना पड़ता है, तो उन्हें ग्राहक के तौर पर बनाए रखने की संभावना कम हो जाती है. साइन-अप करने का आसान, तेज़, और वेरिफ़ाइड तरीका देने से, उपयोगकर्ता अनुभव बेहतर होगा. साथ ही, उपयोगकर्ताओं को अपनी साइट पर बनाए रखने में मदद मिलेगी.
मैन्युअल तरीके से डाले गए पतों की वजह से, कन्वर्ज़न कम हो सकते हैं, सीआरएम का डेटा गलत हो सकता है, और डिलीवरी में गड़बड़ियां हो सकती हैं. इन गड़बड़ियों की वजह से, ज़्यादा लागत लग सकती है. क्विक और वेरिफ़ाइड साइन-अप की सुविधा से, साइन-अप करने में कम समय लगता है. साथ ही, कुछ ही टैप में आस-पास के पतों के सुझाव तुरंत मिलते हैं. इसके अलावा, डाले गए पते को विज़ुअल पुष्टि के लिए दिखाया जाता है. इससे उपयोगकर्ता को यह भरोसा होता है कि उसने सही पता डाला है. उपयोगकर्ता की मौजूदा जगह की जानकारी का इस्तेमाल करके, उसके पते की पुष्टि करने से, धोखाधड़ी रोकने में मदद मिलती है. साथ ही, आपके प्रॉडक्ट और सेवाओं पर उपयोगकर्ता का भरोसा बढ़ता है. पुष्टि करने की सुविधा से, वर्चुअल बैंक और क्रेडिट कार्ड तुरंत उपलब्ध कराने में भी मदद मिलती है.
इस दस्तावेज़ में, Google Maps Platform की मदद से, क्विक और वेरिफ़ाइड साइन-अप की सुविधा बनाने के बारे में जानकारी दी गई है. ज़्यादातर उपयोगकर्ता, मोबाइल डिवाइसों पर साइन अप करते हैं. इसलिए, इस दस्तावेज़ में दिए गए ज़्यादातर उदाहरण, Android पर लागू करने से जुड़े हैं. पूरा उदाहरण देखने के लिए, सोर्स कोड का सैंपल देखें. इसी तरह के लक्ष्य हासिल करने के लिए, iOS SDK का भी इस्तेमाल किया जा सकता है.
इस डायग्राम में, समाधान बनाने में शामिल मुख्य एपीआई दिखाए गए हैं. बड़ा करने के लिए, इस पर क्लिक करें.
एपीआई चालू करना
इन सुझावों को लागू करने के लिए, आपको Google Cloud कंसोल में ये एपीआई चालू करने होंगे:
- Android के लिए Maps SDK (या अपने चुने हुए प्लैटफ़ॉर्म के लिए एपीआई)
- Places API
- Geocoding API
सेटअप के बारे में ज़्यादा जानकारी के लिए, Google Maps Platform का इस्तेमाल शुरू करना लेख पढ़ें.
सबसे सही तरीके वाले सेक्शन
इस दस्तावेज़ में, इन तरीकों और पसंद के मुताबिक बदलावों के बारे में बताया गया है.
- सही के निशान वाला आइकॉन, सबसे सही तरीके का एक अहम हिस्सा है.
- तारे वाला आइकॉन, समाधान को बेहतर बनाने के लिए, पसंद के मुताबिक बदलाव करने का एक विकल्प है. हालांकि, हमारा सुझाव है कि आप इसका इस्तेमाल करें.
| इनपुट फ़ील्ड में ऑटोकंप्लीट की सुविधा जोड़ना | पते के फ़ॉर्म को ऑटोमैटिक तरीके से भरना. टाइप करते ही सुझाव दिखने की सुविधा जोड़ें, ताकि सभी प्लैटफ़ॉर्म पर उपयोगकर्ता अनुभव बेहतर हो. साथ ही, कम कीस्ट्रोक में पते की सटीक जानकारी मिले. | |
| पते की विज़ुअल पुष्टि की सुविधा देना | उपयोगकर्ताओं को मैप पर अपना पता देखने की सुविधा दें, ताकि उन्हें यह पुष्टि हो सके कि उन्होंने सही पता डाला है. | |
| उपयोगकर्ता के डाले गए पते की तुलना, डिवाइस की जगह की जानकारी से करना | उपयोगकर्ता के चुने या डाले गए पते की तुलना, उसके डिवाइस की मौजूदा जगह की जानकारी से करें, ताकि यह पता लगाया जा सके कि वह बताए गए पते पर है या नहीं. (इसके लिए, साइन अप करते समय उपयोगकर्ताओं को घर पर होना चाहिए जब वे साइन अप करते हैं.) | |
| क्विक और वेरिफ़ाइड साइन-अप की सुविधा को और बेहतर बनाने के लिए सुझाव | पते की जानकारी डालने की सुविधा को और बेहतर बनाया जा सकता है. इसके लिए, ऑटोकंप्लीट विजेट के लुक और स्टाइल में बदलाव किया जा सकता है. इसके अलावा, उपयोगकर्ताओं को पते के तौर पर, किसी कारोबार या लैंडमार्क का नाम चुनने की सुविधा दी जा सकती है. |
इनपुट फ़ील्ड में ऑटोकंप्लीट की सुविधा जोड़ना
| इस उदाहरण में, इनका इस्तेमाल किया गया है: Places SDK for Android | ये भी उपलब्ध हैं: iOS | JavaScript |
Place Autocomplete की मदद से, आपके ऐप्लिकेशन में पते की जानकारी डालने की प्रोसेस आसान हो सकती है. इससे, कन्वर्ज़न रेट बढ़ सकते हैं और आपके ग्राहकों को बेहतर अनुभव मिल सकता है. ऑटोकंप्लीट की सुविधा में, एक ऐसा फ़ील्ड होता है जिसमें पते की जानकारी तुरंत डाली जा सकती है. इसमें "टाइप करते ही सुझाव दिखने" की सुविधा होती है. इसका इस्तेमाल, साइन-अप के लिए पते का फ़ॉर्म अपने-आप भरने के लिए किया जा सकता है. साइन-अप फ़्लो में Place Autocomplete को शामिल करके, ये काम किए जा सकते हैं:
- पते की जानकारी डालने में होने वाली गड़बड़ियों को कम किया जा सकता है.
- साइन-अप प्रोसेस में लगने वाले चरणों की संख्या कम की जा सकती है.
- मोबाइल या पहने जाने वाले डिवाइसों पर, पते की जानकारी डालने की प्रोसेस को आसान बनाया जा सकता है.
- साइन-अप करने के लिए, ग्राहक को लगने वाले कीस्ट्रोक और कुल समय को काफ़ी हद तक कम किया जा सकता है.
जब कोई उपयोगकर्ता, ऑटोकंप्लीट के लिए बने एंट्री बॉक्स को चुनकर टाइप करना शुरू करता है, तो पते के सुझावों की सूची दिखती है.
जब कोई उपयोगकर्ता, सुझावों की सूची से कोई पता चुनता है, तो उस पते की पुष्टि करने और जगह की जानकारी पाने के लिए, रिस्पॉन्स का इस्तेमाल किया जा सकता है. इसके बाद, आपका ऐप्लिकेशन, पते की जानकारी डालने वाले फ़ॉर्म के सही फ़ील्ड में जानकारी भर सकता है. जैसा कि यहां दी गई इमेज में दिखाया गया है.

वीडियो: Place Autocomplete की मदद से, पते के फ़ॉर्म को बेहतर बनाना
पते के फ़ॉर्म
Android
iOS
वेब
Google Maps Platform, मोबाइल प्लैटफ़ॉर्म और वेब के लिए, Place Autocomplete विजेट उपलब्ध कराता है. विजेट में, खोज के लिए एक डायलॉग बॉक्स होता है. इसमें ऑटोकंप्लीट की सुविधा पहले से मौजूद होती है. इसे जगह के हिसाब से खोज के लिए भी ऑप्टिमाइज़ किया जा सकता है. यह विजेट, पिछली इमेज में दिखाया गया है.
इस सेक्शन में, क्विक और वेरिफ़ाइड साइन-अप के लिए, Place Autocomplete को लागू करने का तरीका बताया गया है.
Place Autocomplete विजेट जोड़ना
Android में, ऑटोकंप्लीट विजेट को Autocomplete intent का इस्तेमाल करके जोड़ा जा सकता है. इससे, पते की पहली लाइन वाले इनपुट फ़ील्ड से Place Autocomplete लॉन्च होता है, जहां उपयोगकर्ता अपना पता डालना शुरू करेगा. टाइप करना शुरू करने पर, वे ऑटोकंप्लीट के सुझावों की सूची से अपना पता चुन पाएंगे.
सबसे पहले, गतिविधि लॉन्च करने वाला टूल तैयार करें. इसके लिए, ActivityResultLauncher का इस्तेमाल करें. यह टूल, लॉन्च की गई गतिविधि से मिलने वाले नतीजे को सुनेगा. नतीजे के कॉलबैक में, Place ऑब्जेक्ट होगा. यह ऑब्जेक्ट, उस पते से जुड़ा होगा जिसे उपयोगकर्ता, ऑटोकंप्लीट के सुझावों में से चुनता है.
private final ActivityResultLauncher<Intent> startAutocomplete = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() == Activity.RESULT_OK) { Intent intent = result.getData(); if (intent != null) { Place place = Autocomplete.getPlaceFromIntent(intent); // Write a method to read the address components from the Place // and populate the form with the address components Log.d(TAG, "Place: " + place.getAddressComponents()); fillInAddress(place); } } else if (result.getResultCode() == Activity.RESULT_CANCELED) { // The user canceled the operation. Log.i(TAG, "User canceled autocomplete"); } });
इसके बाद,
Place Autocomplete intent के फ़ील्ड, जगह, और टाइप की प्रॉपर्टी तय करें. साथ ही,
Autocomplete.IntentBuilder की मदद से इसे बनाएं.
आखिर में, पिछले कोड सैंपल में तय किए गए ActivityResultLauncher का इस्तेमाल करके, intent लॉन्च करें.
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); }
Place Autocomplete से मिले पते को मैनेज करना
ActivityResultLauncher को पहले से तय करने पर, यह भी तय हो जाता है कि कॉलबैक में गतिविधि का नतीजा मिलने पर क्या करना है. अगर उपयोगकर्ता ने कोई सुझाव चुना है, तो यह नतीजे वाले ऑब्जेक्ट में मौजूद intent में डिलीवर किया जाएगा. Autocomplete.IntentBuilder की मदद से intent बनाया गया था. इसलिए, Autocomplete.getPlaceFromIntent() तरीका, इससे Place ऑब्जेक्ट को एक्सट्रैक्ट कर सकता है.
private final ActivityResultLauncher<Intent> startAutocomplete = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() == Activity.RESULT_OK) { Intent intent = result.getData(); if (intent != null) { Place place = Autocomplete.getPlaceFromIntent(intent); // Write a method to read the address components from the Place // and populate the form with the address components Log.d(TAG, "Place: " + place.getAddressComponents()); fillInAddress(place); } } else if (result.getResultCode() == Activity.RESULT_CANCELED) { // The user canceled the operation. Log.i(TAG, "User canceled autocomplete"); } });
इसके बाद, Place.getAddressComponents() को कॉल करें और पते के हर कॉम्पोनेंट को, पते के फ़ॉर्म में मौजूद उसके इनपुट फ़ील्ड से मैच करें. साथ ही, उपयोगकर्ता के चुने गए Place की वैल्यू से फ़ील्ड में जानकारी भरें.
मैन्युअल तरीके से डाले गए पते के बजाय, सुझाव से पते का डेटा कैप्चर करने से, पते की सटीक जानकारी मिलती है. साथ ही, यह पक्का होता है कि पते की जानकारी मौजूद है और उस पते पर डिलीवरी की जा सकती है. इसके अलावा, उपयोगकर्ता को कम कीस्ट्रोक करने पड़ते हैं.
Place Autocomplete को लागू करते समय ध्यान देने वाली बातें
Place Autocomplete में कई विकल्प होते हैं. इनकी मदद से, अगर आपको सिर्फ़ विजेट के अलावा कुछ और इस्तेमाल करना है, तो इसे अपनी ज़रूरत के हिसाब से लागू किया जा सकता है. ज़रूरत के मुताबिक, सही तरीके से किसी जगह की जानकारी पाने के लिए, सेवाओं के कॉम्बिनेशन का इस्तेमाल किया जा सकता है.
ADDRESS फ़ॉर्म के लिए, टाइप पैरामीटर को
addressपर सेट करें, ताकि सिर्फ़ पूरे पते के सुझाव दिखें. Place Autocomplete के अनुरोधों में इस्तेमाल किए जा सकने वाले टाइप के बारे में ज़्यादा जानें.अगर आपको दुनिया भर में खोज करने की ज़रूरत नहीं है, तो सही पाबंदियां और पूर्वाग्रह सेट करें. ऐसे कई पैरामीटर हैं जिनका इस्तेमाल, किसी भी मैच को सिर्फ़ खास इलाकों तक सीमित करने या पूर्वाग्रह सेट करने के लिए किया जा सकता है.
किसी इलाके के लिए, आयताकार सीमाएं सेट करने के लिए
RectangularBoundsका इस्तेमाल करें. साथ ही, यह पक्का करने के लिए कि सिर्फ़ उन इलाकों के पते दिखें,setLocationRestriction()का इस्तेमाल करें.जवाबों को कुछ देशों तक सीमित करने के लिए,
setCountries()का इस्तेमाल करें.
अगर मैच में कुछ फ़ील्ड छूट जाते हैं, तो उन्हें एडिट किया जा सकने वाला छोड़ें. साथ ही, अगर ज़रूरत हो, तो ग्राहकों को पता अपडेट करने की अनुमति दें. Place Autocomplete से मिले ज़्यादातर पतों में, अपार्टमेंट, सुइट या यूनिट नंबर जैसे सबप्रमाइस नंबर शामिल नहीं होते. इसलिए, उपयोगकर्ता को वह जानकारी भरने के लिए बढ़ावा देने के लिए, फ़ोकस को पते की दूसरी लाइन पर ले जाया जा सकता है.
पते की विज़ुअल पुष्टि की सुविधा देना
| इस उदाहरण में, इनका इस्तेमाल किया गया है: Android के लिए Maps SDK | ये भी उपलब्ध हैं: iOS | JavaScript |
पते की जानकारी डालते समय, उपयोगकर्ताओं को मैप पर पते की विज़ुअल पुष्टि की सुविधा दें. इससे उपयोगकर्ताओं को यह भरोसा होता है कि पता सही है.
यहां दी गई इमेज में, पते के नीचे एक मैप दिखाया गया है. इसमें, डाले गए पते पर एक पिन मौजूद है.

यहां दिए गए उदाहरण में, Android में मैप जोड़ने के बुनियादी चरणों के बारे में बताया गया है. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
SupportMapFragmentजोड़ना. इस मामले में, डाइनैमिक तरीके से फ़्रैगमेंट जोड़ना- फ़्रैगमेंट का हैंडल पाना और कॉलबैक रजिस्टर करना
- मैप में स्टाइल जोड़ना और मार्कर जोड़ना
- मैप कंट्रोल बंद करना
SupportMapFragment जोड़ना
सबसे पहले, SupportMapFragment फ़्रैगमेंट को
लेआउट एक्सएमएल फ़ाइल में जोड़ें.
<fragment
android:name="com.google.android.gms.maps.SupportMapFragment"
android:id="@+id/confirmation_map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>इसके बाद, अगर फ़्रैगमेंट पहले से मौजूद नहीं है, तो इसे प्रोग्राम के ज़रिए जोड़ें.
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);
}
}फ़्रैगमेंट का हैंडल पाना और कॉलबैक रजिस्टर करना
फ़्रैगमेंट का हैंडल पाने के लिए,
FragmentManager.findFragmentByIdतरीके को कॉल करें और इसे अपने लेआउट फ़ाइल में फ़्रैगमेंट का रिसॉर्स आईडी पास करें. अगर आपने फ़्रैगमेंट डाइनैमिक तरीके से जोड़ा है, तो यह चरण छोड़ दें, क्योंकि आपने पहले ही हैंडल वापस पा लिया है.फ़्रैगमेंट पर कॉलबैक सेट करने के लिए,
getMapAsyncतरीके को कॉल करें.
उदाहरण के लिए, अगर आपने फ़्रैगमेंट को स्टैटिक तरीके से जोड़ा है, तो:
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);
मैप में स्टाइल जोड़ना और मार्कर जोड़ना
मैप तैयार होने पर, स्टाइल सेट करें, कैमरे को बीच में लाएं, और डाले गए पते के कोऑर्डिनेट पर मार्कर जोड़ें. यहां दिए गए कोड में, JSON ऑब्जेक्ट में तय की गई स्टाइल का इस्तेमाल किया गया है. इसके अलावा, ऐसा मैप आईडी लोड किया जा सकता है जिसे क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करके तय किया गया है.
@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)); }
मैप कंट्रोल बंद करना
मैप को साफ़-सुथरा रखने के लिए, कंपास या टूलबार जैसे अन्य मैप कंट्रोल के बिना, सिर्फ़ जगह की जानकारी दिखाएं. इसके लिए, उन कंट्रोल को बंद करें जिनकी आपको ज़रूरत नहीं है. Android पर, सीमित इंटरैक्टिविटी देने के लिए, लाइट मोड चालू करने का भी विकल्प है.
उपयोगकर्ता के डाले गए पते की तुलना, डिवाइस की जगह की जानकारी से करना
पते का सबूत पाना मुश्किल हो सकता है. जैसे, दूर-दराज के इलाकों में रहने वाले उपयोगकर्ता, नए पते पर जाने वाले उपयोगकर्ता या डिजिटल कारोबार (जैसे, डिजिटल बैंक) के मामले में. डिजिटल कारोबार की कोई फ़िज़िकल जगह नहीं होती, जहां उपयोगकर्ता जाकर बिजली, पानी, फ़ोन वगैरह के बिल या अन्य दस्तावेज़ों से पते का सबूत दे सकें. उपयोगकर्ता के पतों की पुष्टि करने के लिए, डिजिटल तरीकों का इस्तेमाल करने से, साइन-अप करने का आसान और तेज़ तरीका मिलता है.
पते की पुष्टि करना सुरक्षा के लिहाज़ से बहुत ज़रूरी है. खास तौर पर, डिजिटल साइन-अप प्रोसेस में. इस सेक्शन में, यह जांचने के लिए दिशा-निर्देश और सैंपल दिए गए हैं कि साइन-अप के दौरान उपयोगकर्ता की जगह की जानकारी, उसके डाले गए पते से मैच करती है या नहीं.
डाले गए पते की तुलना, डिवाइस की जगह की जानकारी से करने की प्रोसेस में ये चरण शामिल हैं:
- उपयोगकर्ता के डाले गए पते को भौगोलिक कोऑर्डिनेट में बदलना.
- उपयोगकर्ता से उसके डिवाइस की जगह की जानकारी पाने की अनुमति के लिए अनुरोध करना.
- डाले गए पते और डिवाइस की जगह की जानकारी के बीच की दूरी का हिसाब लगाना. आपके पास यह तय करने का विकल्प होता है कि पते और जगह की जानकारी के मैच के लिए, ज़्यादा से ज़्यादा कितनी दूरी को गिना जाए.
यहां दी गई इमेज में, यह दिखाया गया है कि उपयोगकर्ताओं से, डाले गए पते की तुलना उनकी मौजूदा जगह की जानकारी से करने के लिए, किस तरह अनुरोध किया जा सकता है.

उपयोगकर्ता के डाले गए पते को भौगोलिक कोऑर्डिनेट में बदलना
| इस उदाहरण में, इनका इस्तेमाल किया गया है: Places SDK for Android | ये भी उपलब्ध हैं: iOS | JavaScript | Geocoding API |
उपयोगकर्ताओं के पते की पुष्टि करने की सहमति देने के बाद (पिछली इमेज में "पुष्टि करें कि मैं अभी यहां हूं" पर टैप करके), मौजूदा जगह की जानकारी से पते की तुलना करने का पहला चरण है, डाले गए पते को भौगोलिक कोऑर्डिनेट में बदलना.
अगर उपयोगकर्ता ने Place Autocomplete की मदद से अपना पता चुना है, तो Place Autocomplete के फ़ील्ड की सूची में
Place.Field.LAT_LNG के लिए अनुरोध करना न भूलें. यह जानकारी,
Place Autocomplete विजेट जोड़ने के कोड स्निपेट में दिखाई गई है. साथ ही, चुने गए पते के भौगोलिक कोऑर्डिनेट पाने के लिए,
Place.getLatLng()
तरीके को कॉल करें.
coordinates = place.getLatLng();
अगर उपयोगकर्ता ने मैन्युअल तरीके से अपना पता डाला है या Place Autocomplete से फ़ील्ड भरने के बाद बदलाव किए हैं, तो उस पते से जुड़े कोऑर्डिनेट देखने के लिए, Android Geocoder सेवा या Geocoding API का इस्तेमाल करें.
उदाहरण
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%2BParkway%2C%20Mountain%20View%2C%20CA%2094043&key=YOUR_API_KEY
Geocoding API को कॉल करने के लिए, यूआरएल को कोड में बदलना न भूलें.
यूआरएल को कोड में बदलने के लिए, क्विक रेफ़रंस: %20 = स्पेस, %2B = + (प्लस), %2C = , (कॉमा)
उपयोगकर्ता से उसके डिवाइस की जगह की जानकारी पाने की अनुमति के लिए अनुरोध करना
उपयोगकर्ता के डिवाइस की जगह की जानकारी पाने के लिए, आपको जगह की जानकारी की सेटिंग चालू करने के लिए, उपयोगकर्ता की अनुमति का अनुरोध करना होगा. जगह की जानकारी का पता लगाने वाले ऐप्लिकेशन बनाने के बारे में, Android के दस्तावेज़ में दिए गए निर्देशों का इस्तेमाल करके, यह फ़्लो लागू करें:
जगह की जानकारी की अनुमति के लिए, एक बार अनुमति देने का अनुरोध करें. यह अनुमति, सटीक लेवल (
ACCESS_FINE_LOCATION) पर होनी चाहिए.अगर उपयोगकर्ता, जगह की जानकारी ऐक्सेस करने की अनुमति देता है, तो उपयोगकर्ता की जगह की जानकारी पाएं.
अगर उपयोगकर्ता, जगह की जानकारी ऐक्सेस करने की अनुमति नहीं देता है, तो अनुमति न देने की स्थिति को मैनेज करें. उदाहरण के लिए, इस तरह का मैसेज दिखाया जा सकता है. यह मानकर चलें कि उपयोगकर्ता की मौजूदा जगह की जानकारी सेव नहीं की जा रही है:
"अगर आपने ऐप्लिकेशन को अपनी सटीक जगह की जानकारी ऐक्सेस करने की अनुमति नहीं दी, तो आपको अपना खाता चालू करने के लिए, ईमेल से पुष्टि करनी होगी. [ठीक है]"
यहां दी गई इमेज में, उपयोगकर्ताओं से डिवाइस की जगह की जानकारी पाने की अनुमति के लिए अनुरोध करने का एक उदाहरण दिखाया गया है.

जगह की जानकारी की अनुमति की जांच करने के लिए, गतिविधि लॉन्च करने वाला टूल तैयार करें. यह टूल, लॉन्च की गई गतिविधि से मिलने वाले नतीजे को सुनेगा.ActivityResultLauncher
नतीजे के कॉलबैक में, एक स्ट्रिंग होगी. इससे यह पता चलेगा कि उपयोगकर्ता ने अनुरोध की गई अनुमति दी है या नहीं.
// 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"); } });
इसके बाद, देखें कि ऐप्लिकेशन के पास पहले से ACCESS_FINE_LOCATION की अनुमति है या नहीं.
अगर अनुमति नहीं है, तो पिछले चरण में तय किए गए लॉन्चर का इस्तेमाल करके, अनुमति का अनुरोध करने वाली गतिविधि लॉन्च करके, उपयोगकर्ता से अनुमति के लिए पूछें.
private void checkLocationPermissions() { if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { getAndCompareLocations(); } else { requestPermissionLauncher.launch( ACCESS_FINE_LOCATION); } }
ACCESS_FINE_LOCATION की अनुमति मिलने के बाद,
डिवाइस की पिछली जगह की जानकारी पाने के लिए, फ़्यूज़्ड लोकेशन
प्रोवाइडर का इस्तेमाल करें. साथ ही, इससे LatLng ऑब्जेक्ट बनाएं.
FusedLocationProviderClient fusedLocationClient =
LocationServices.getFusedLocationProviderClient(this);
fusedLocationClient.getLastLocation()
.addOnSuccessListener(this, location -> {
// Got last known location. In some rare situations this can be null.
if (location == null) {
return;
}
deviceLocation = new LatLng(location.getLatitude(), location.getLongitude());
// ...
});
}डाले गए पते और डिवाइस की जगह की जानकारी के बीच की दूरी का हिसाब लगाना
अक्षांश और देशांतर के दो कोऑर्डिनेट (डाला गया पता और डिवाइस की जगह की जानकारी) के बीच की दूरी का हिसाब लगाने के लिए, गणित का इस्तेमाल करें. ओपन सोर्स Maps SDK for Android Utility Library में, पृथ्वी पर दो बिंदुओं के बीच की गोलाकार दूरी का हिसाब लगाने के लिए, कुछ काम के तरीके मौजूद हैं.
सबसे पहले, अपने ऐप्लिकेशन की build.gradle.kts फ़ाइल में यह डिपेंडेंसी जोड़कर, Maps SDK for Android Utility Library इंस्टॉल करें:
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) }
इसके बाद, डिवाइस की पिछली जगह की जानकारी पाने के बाद, गतिविधि की फ़ाइल में वापस जाएं. साथ ही, दो जगहों को "मैच" के तौर पर मानने के लिए, मीटर में रेडियस तय करें. रेडियस इतना बड़ा होना चाहिए कि जीपीएस की सटीक जानकारी में होने वाले बदलाव और उपयोगकर्ता के डाले गए पते पर मौजूद जगह के साइज़ को ध्यान में रखा जा सके. उदाहरण के लिए:
private static final double acceptableProximity = 150;
इसके बाद, डिवाइस की जगह की जानकारी और उपयोगकर्ता के डाले गए पते की जगह की जानकारी के बीच की दूरी का हिसाब लगाने के लिए, यूटिलिटी लाइब्रेरी के computeDistanceBetween()
तरीके का इस्तेमाल करें. अगर दूरी, ऊपर तय किए गए रेडियस के अंदर है, तो जगहों को मैच माना जाएगा.
// 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 }
अगर पता और जगह की जानकारी मैच होती है, तो ऐप्लिकेशन में पुष्टि की जानकारी दिखाएं. जैसा कि यहां दी गई इमेज में दिखाया गया है.

क्विक और वेरिफ़ाइड साइन-अप की सुविधा को और बेहतर बनाने के लिए सुझाव
उपयोगकर्ताओं को किसी कारोबार या दिलचस्पी की जगह के नाम के आधार पर पता डालने की अनुमति दें. "टाइप करते ही सुझाव दिखने" की सुविधा, सिर्फ़ पतों के लिए काम नहीं करती. इसके अलावा, उपयोगकर्ताओं को कारोबार या लैंडमार्क के नाम डालने की अनुमति भी दी जा सकती है.
पते और जगह के नाम, दोनों डालने की अनुमति देने के लिए, ऑटोकंप्लीट की परिभाषा से types प्रॉपर्टी हटाएं.
अपनी वेबसाइट की स्टाइल से मैच करने के लिए, Place Autocomplete बॉक्स के लुक और स्टाइल में बदलाव करें. अगर आपको Google के विजेट का इस्तेमाल करने के बजाय, अपने ऐप्लिकेशन में Place Autocomplete के लुक और स्टाइल को कंट्रोल करना है, तो Place Autocomplete सेवा की मदद से बनाए गए यूज़र इंटरफ़ेस (यूआई) को बेहतर बनाने के लिए, Place Autocomplete को प्रोग्राम के ज़रिए इस्तेमाल किया जा सकता है.