खास जानकारी
Google Maps Platform वेब (JS, TS), Android, और iOS के लिए उपलब्ध है. और स्थानों, दिशा-निर्देशों, और अन्य जानकारी और दूरियां तय करें. इस गाइड में दिए गए उदाहरण एक प्लैटफ़ॉर्म के लिए लिखे गए हैं, लेकिन दस्तावेज़ों के लिंक दिए जाते हैं, ताकि उन्हें दूसरे प्लैटफ़ॉर्म पर लागू किया जा सके.
क्विक बिल्डर की मदद से आपको अपने पते का फ़ॉर्म अपने-आप पूरा करने की सुविधा मिलती है. इसके लिए इंटरैक्टिव यूज़र इंटरफ़ेस (यूआई) जो आपके लिए JavaScript कोड जनरेट करता है.
उपयोगकर्ताओं को डिजिटल दुनिया में रहने और काम करने की आदत हो गई है जिनमें सुविधा, स्पीड, और सुरक्षा बुनियादी उम्मीदें हैं. जब वे क्रेडिट कार्ड, बैंक खाता या क़र्ज़ जैसी किसी चीज़ के लिए आवेदन करते हैं, तो वे उम्मीद करते हैं कि यह प्रक्रिया तेज़ और आसान होगी.
जितने ज़्यादा उपयोगकर्ताओं को डुप्लीकेट डेटा टाइप या डालना होगा, संभावना उतनी ही कम होगी नहीं करना चाहते और उन्हें ग्राहक के रूप में बनाए रखना चाहते हैं. जल्दी, आसानी से और पुष्टि के बाद साइन-अप करने का अनुभव, उपयोगकर्ता अनुभव को बेहतर बनाएगा अपनी साइट पर उपयोगकर्ताओं को जोड़े रखने में मदद मिलती है.
मैन्युअल रूप से डाले गए पतों की वजह से कन्वर्ज़न में कमी आ सकती है, यह गलत है सीआरएम डेटा और डिलीवरी में लगने वाली महंगी गलतियां. तेज़ और पुष्टि किए गए साइन-अप से साइन-अप हो जाता है और तेज़ी से, सिर्फ़ कुछ ही टैप में तुरंत आस-पास के पतों का सुझाव दे सकता है पुष्टि करने के लिए दिया गया पता दिखाता है, ताकि उपयोगकर्ता को मदद मिल सके उन्हें भरोसा हो सकता है कि उन्होंने सही पता डाला है. पुष्टि की जा रही है उपयोगकर्ता की मौजूदा जगह की जानकारी का इस्तेमाल करके, पता डालने से भी धोखाधड़ी को रोकने में मदद मिलती है और आपके प्रॉडक्ट और सेवाओं में उपयोगकर्ता का भरोसा बढ़ाता है. पुष्टि करने से, वर्चुअल प्लैटफ़ॉर्म पर जानकारी देने में आपका भरोसा बढ़ सकता है क्रेडिट कार्ड और बैंक की जानकारी फटाफट पाएं.
यह विषय आपको सूचना देने के लिए, इस्तेमाल करने के दिशा-निर्देश देता है. पुष्टि किया गया साइन-अप Google Maps Platform का इस्तेमाल करने का अनुभव है. क्योंकि उपयोगकर्ताओं को अपने मोबाइल डिवाइस से साइन अप कर सकते हैं. यहां दिए गए ज़्यादातर उदाहरण देखने के लिए, Android के लिए खास विषय. (आप सोर्स का पूरा सैंपल यहां देखें). इसी तरह के काम करने के लिए, iOS SDK टूल का इस्तेमाल भी किया जा सकता है.
नीचे दिया गया डायग्राम, समाधान बनाने में शामिल मुख्य एपीआई को दिखाता है (बड़ा करने के लिए क्लिक करें).
एपीआई चालू करना
इन सुझावों को लागू करने के लिए, आपको Google Cloud Console:
- Android के लिए Maps SDK टूल (या अपनी पसंद के प्लैटफ़ॉर्म का एपीआई)
- Location API
- जियोकोडिंग एपीआई
सेटअप के बारे में ज़्यादा जानकारी के लिए, देखें होना Google Maps Platform से शुरू किया है.
सबसे सही तरीके वाले सेक्शन
इस विषय में, नीचे दिए गए तरीके और कस्टमाइज़ेशन के बारे में बात की जाएगी.
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है सही का निशान आइकॉन सबसे सही तरीका है.
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है स्टार आइकॉन का इस्तेमाल करना ज़रूरी नहीं है, लेकिन इसे इस्तेमाल करने का सुझाव दिया जाता है समाधान को बेहतर बनाने के लिए.
इनपुट फ़ील्ड में ऑटोकंप्लीट की सुविधा जोड़ना | पते का फ़ॉर्म अपने-आप भरने की सुविधा. 'इस्तेमाल के हिसाब से टाइप करें' सुविधा जोड़ें सभी प्लैटफ़ॉर्म पर उपयोगकर्ता अनुभव को बेहतर बनाना और पते को बेहतर बनाना कम से कम कीस्ट्रोक का इस्तेमाल करके ज़्यादा सटीक बनाएं. | |
पते की पुष्टि विज़ुअल तौर पर करना | इस सुविधा की मदद से, उपयोगकर्ताओं को मैप पर अपना पता देखा जा सकता है. इसकी मदद से, उन्हें विज़ुअल की मदद से पुष्टि की जा सकती है कि उन्होंने सही पता डाला है. | |
उपयोगकर्ता के डाले गए पते की तुलना, डिवाइस की जगह की जानकारी से करना | उपयोगकर्ता के चुने या डाले गए पते की तुलना उनके दिए गए पते से करें डिवाइस की मौजूदा जगह की जानकारी से यह पता लगाने में मदद मिलती है कि वे उस जगह पर हैं या नहीं बताया गया पता. (यह सुविधा काम करे, इसके लिए उपयोगकर्ताओं को घर पर होना चाहिए साइन अप करते हैं.) | |
'क्विक और' सुविधा को और बेहतर बनाने के लिए सलाह पुष्टि किए गए साइन अप | पते जोड़ने के साथ-साथ, उसे और बेहतर भी बनाया जा सकता है विजेट के लुक और स्टाइल को पसंद के मुताबिक बनाने के लिए या उपयोगकर्ताओं को किसी कारोबार या लैंडमार्क के नाम को इससे पहले ही अपने कारोबार के हिसाब से name@yourcompany.com जैसा कोई ईमेल पता बनाएं. |
इनपुट फ़ील्ड में ऑटोकंप्लीट की सुविधा जोड़ी जा रही है
इस उदाहरण में इनका इस्तेमाल किया गया है: Android के लिए Places SDK टूल | ये सुविधाएं भी उपलब्ध हैं: iOS | JavaScript |
ऑटोकंप्लीट की सुविधा, आपके ऐप्लिकेशन में पता दर्ज करना आसान बना सकती है. इससे, साथ ही, ग्राहकों को बेहतरीन अनुभव भी दे सकते हैं. ऑटोकंप्लीट की सुविधा में, "पहले टाइप करें" के साथ एक सिंगल-एंट्री फ़ील्ड मौजूद होता है इस्तेमाल करें ऐसा सुझाव जिसका इस्तेमाल साइन-अप पते वाले फ़ॉर्म को अपने-आप भरने के लिए किया जा सकता है. अपने साइन-अप प्रवाह में स्थान ऑटोकंप्लीट को शामिल करके, आप ये कर सकते हैं:
- पता डालने से जुड़ी गड़बड़ियां कम करें.
- साइन-अप करने की प्रोसेस में शामिल चरणों की संख्या कम करें.
- मोबाइल या पहने जाने वाले डिवाइसों पर पता डालना आसान बनाएं.
- कीस्ट्रोक और ग्राहक को साइन अप करने में लगने वाले कुल समय को ज़रूरत के हिसाब से कम करें.
जब कोई उपयोगकर्ता ऑटोकंप्लीट एंट्री बॉक्स चुनता है और टाइप करना शुरू करता है, तो आपको एक सूची पते के अनुमान दिखाई देते हैं.
जब उपयोगकर्ता अनुमानों की सूची से कोई पता चुनता है, तो पता सत्यापित करने और स्थान प्राप्त करने के लिए प्रतिक्रिया. आपका आवेदन उसके बाद पता प्रविष्टि फ़ॉर्म की सही फ़ील्ड को पॉप्युलेट कर सकता है, जैसा कि यहां दी गई इमेज में बताया गया है.
वीडियो: जगह के ऑटोकंप्लीट की सुविधा की मदद से, पते के फ़ॉर्म को बेहतर बनाएं
पते के फ़ॉर्म
Android
iOS
वेब
Google Maps Platform मोबाइल के लिए एक स्थान ऑटोकंप्लीट विजेट देता है प्लैटफ़ॉर्म और वेब. पिछले आंकड़ों में दिखाए गए विजेट से पहले से मौजूद ऑटोकंप्लीट सुविधा की मदद से, खोज डायलॉग बॉक्स इसे जगह के हिसाब से खोज के लिए ऑप्टिमाइज़ करें.
यह अनुभाग बताता है कि तेज़ी से और खोज नतीजों में दिखाने के लिए पुष्टि की गई साइन अप.
स्थान ऑटोकंप्लीट विजेट जोड़ना
Android में, ऑटोकंप्लीट इंटेंट जो पता पंक्ति 1 इनपुट फ़ील्ड से प्लेस ऑटोकंप्लीट को लॉन्च करती है, जहां उपयोगकर्ता अपना पता डालना शुरू कर देगा. जब वे टाइप करना शुरू करते हैं, तो वे ऑटोकंप्लीट की सुविधा की सूची से अपना पता चुन सकते हैं.
सबसे पहले, इनका इस्तेमाल करके गतिविधि लॉन्चर तैयार करें
ActivityResultLauncher
जिसे किसी नतीजे के लिए सुना जाएगा
लॉन्च की गई गतिविधि के डेटा से बदल दिया जाता है. नतीजे के कॉलबैक में एक प्लेस ऑब्जेक्ट होगा
ऑटोकंप्लीट की सुविधा से, उपयोगकर्ता के चुने गए पते के हिसाब से
सुझाव.
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"); } });
इसके बाद, फ़ील्ड, लोकेशन, और प्रॉपर्टी टाइप
ऑटोकंप्लीट इंटेंट रखें और इसे
Autocomplete.IntentBuilder
.
आखिर में, ActivityResultLauncher
पिछला कोड सैंपल.
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); }
जगह के अपने-आप पूरे होने की सुविधा के ज़रिए मिलने वाले पते को मैनेज करना
ActivityResultLauncher
को पहले तय करने से यह भी तय होता है कि क्या होना चाहिए
तब किया जाता है, जब गतिविधि का नतीजा कॉलबैक में मिलता है. अगर उपयोगकर्ता
कोई सुझाव चुना गया है, तो यह इसमें दिए गए इंटेंट में डिलीवर किया जाएगा
ऑब्जेक्ट को कॉपी करने की सुविधा देता है. यह इंटेंट Autocomplete.IntentBuilder
ने बनाया था,
विधि Autocomplete.getPlaceFromIntent()
स्थान ऑब्जेक्ट को एक्सट्रैक्ट कर सकती है
से निकाल दिया है.
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()
पर कॉल करें और हर पते से मेल खाएं
कॉम्पोनेंट से जुड़ी इनपुट फ़ील्ड में, वैल्यू को जोड़ना
उपयोगकर्ता द्वारा चुने गए स्थान से मान वाली फ़ील्ड.
मैन्युअल रूप से डालने के बजाय, अनुमान से पते का डेटा कैप्चर किया जा रहा है पता सटीक है या नहीं, यह पक्का करने में मदद करता है कि पता सही है. को डिलीवर किया जा सकता है और उपयोगकर्ता कीस्ट्रोक को कम किया जा सकता है.
स्थान ऑटोकंप्लीट लागू करते समय ध्यान रखने वाली बातें
ऑटोकंप्लीट की सुविधा में ऐसे कई विकल्प मौजूद हैं जो इसे अन्य विजेट के साथ-साथ अन्य सुविधाओं का इस्तेमाल भी कर सकता है. Google Analytics 4 पर माइग्रेट करने के लिए, कई तरह की सेवाओं का इस्तेमाल कर सकते हैं, ताकि आपको किसी जगह से मेल खाने वाली जानकारी मिल सके सही तरीके से.
ADDRESS फ़ॉर्म के लिए, टाइप पैरामीटर को
address
पर सेट करें, ताकि पूरे मोहल्ले के पतों से मेल खाता है. इसके बारे में ज़्यादा जानें जगहों के अपने-आप पूरे होने की सुविधा देने वाले अनुरोधों के लिए उपलब्ध टाइप.सही पाबंदियां और पूर्वाग्रह सेट करना अगर आपको दुनिया भर में खोजने की ज़रूरत नहीं है. ऐसे कई पैरामीटर हैं जो का इस्तेमाल पूर्वाग्रह या किसी मिलान को सिर्फ़ खास इलाकों तक सीमित करने के लिए किया जा सकता है.
RectangularBounds
का इस्तेमाल करके आयताकार सीमाएं सेट करें कोई इलाका,setLocationRestriction()
का इस्तेमाल करके पक्का करें कि सिर्फ़ इस इलाके के पते मौजूद हैं वे क्षेत्र लौटाए जाते हैं.कुछ देशों में जवाबों को सीमित करने के लिए,
setCountries()
का इस्तेमाल करें.
अगर मैच से कुछ फ़ील्ड छूट जाते हैं, तो फ़ील्ड में बदलाव किया जा सकता है, और अगर ज़रूरी हो, तो ग्राहकों को पता अपडेट करने की सुविधा भी दें. क्योंकि ज़्यादातर पते स्थान ऑटोकंप्लीट के ज़रिए लौटाए गए प्रॉडक्ट में सब-प्रिमाइस नंबर नहीं होते हैं, जैसे कि अपार्टमेंट, सुइट या यूनिट नंबर का इस्तेमाल करते समय, फ़ोकस को पता पंक्ति 2 पर ले जाया जा सकता है ताकि ज़रूरत पड़ने पर उपयोगकर्ता को यह जानकारी भरने के लिए बढ़ावा दिया जा सके.
पते की विज़ुअल पुष्टि करना
इस उदाहरण में इनका इस्तेमाल किया गया है: 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.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); } }
फ़्रैगमेंट के लिए हैंडल पाना और कॉलबैक रजिस्टर करना
फ़्रैगमेंट का हैंडल पाने के लिए,
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 पर, इसे चालू करने का दूसरा विकल्प यह है सीमित समय के लिए लाइट मोड इंटरैक्टिविटी.
उपयोगकर्ता के डाले गए पते की तुलना डिवाइस की जगह की जानकारी से करना
पते का सबूत हासिल करना—इस बात का भरोसा होना कि उपयोगकर्ता उन्होंने जो पता डाला है—यह रिमोट पता जैसी चीज़ों की वजह से मुश्किल हो सकता है उपयोगकर्ता की जगह की जानकारी, नए पते पर माइग्रेट करने वाले उपयोगकर्ता या डिजिटल कारोबार (जैसे कि डिजिटल बैंक) जिनका कोई स्टोर नहीं है बिजली, पानी जैसी सुविधाओं के बिल या अन्य जानकारी देने के लिए, दस्तावेज़. उपयोगकर्ता के पतों की पुष्टि करने के डिजिटल तरीके उपलब्ध कराने पर, तो बिना किसी रुकावट के साइन-अप किया जा सकता है.
पते की जांच करना सुरक्षा की सबसे बड़ी ज़रूरत है. खास तौर पर, डिजिटल प्लैटफ़ॉर्म पर साइन-अप प्रोसेस. इस सेक्शन में, जांच के लिए दिशा-निर्देश और सैंपल दिए गए हैं क्या साइन-अप के दौरान उपयोगकर्ता की जगह, उसके डाले गए पते से मेल खाती है निजी ईमेल को सुरक्षित रखें.
डाले गए पते की तुलना डिवाइस की जगह से करने की प्रक्रिया में इसके लिए, नीचे दिया गया तरीका अपनाएं:
- उपयोगकर्ता के डाले गए पते को भौगोलिक निर्देशांक में बदलना.
- उपयोगकर्ता से उसके डिवाइस की जगह की जानकारी पाने की अनुमति मांगना.
- डाले गए पते और डिवाइस की जगह के बीच की दूरी का हिसाब लगाया जा रहा है. आपको पता चलता है कि पते और जगह की जानकारी के मेल खाने के लिए, तय की गई ज़्यादा से ज़्यादा दूरी.
नीचे दिए गए डायग्राम में यह दिखाया गया है कि किस तरह उपयोगकर्ताओं को अपने प्रॉडक्ट की तुलना करने के लिए कहा जा सकता है उनकी मौजूदा जगह पर डाला गया पता.
उपयोगकर्ता के डाले गए पते को भौगोलिक निर्देशांक में बदलना
इस उदाहरण में इनका इस्तेमाल किया गया है: Android के लिए Places SDK टूल | ये सुविधाएं भी उपलब्ध हैं: iOS | JavaScript | जियोकोडिंग एपीआई |
उपयोगकर्ताओं के पते की पुष्टि के लिए अपनी सहमति देने के बाद ("पुष्टि करें कि मैं अभी हूं" को छुएं ऊपर दिए गए डायग्राम में), मौजूदा पते से पते की तुलना करने का पहला चरण है जगह, डाले गए पते को भौगोलिक निर्देशांक में बदल रहा है.
अगर उपयोगकर्ता ने जगह के अपने-आप पूरे होने की सुविधा का इस्तेमाल करके अपना पता चुना है, तो अनुरोध करना न भूलें
Place.Field.LAT_LNG
विकल्प को अपने-आप पूरा होने वाले फ़ील्ड की सूची में, जैसा कि
स्थान ऑटोकंप्लीट विजेट जोड़ें कोड स्निपेट और
Place.getLatLng()
का तरीका देखें.
coordinates = place.getLatLng();
अगर उपयोगकर्ता ने स्थान के बाद अपना पता मैन्युअल रूप से डाला या बदलाव किए फ़ील्ड को अपने-आप पूरा करने के लिए, Android जियोकोडर सेवा या जियोकोडिंग एपीआई उस पते से संबंधित निर्देशांक देखने के लिए.
उदाहरण
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()); // ... }); }
डाले गए पते और डिवाइस की जगह के बीच की दूरी का हिसाब लगाया जा रहा है
दो अक्षांश/देशांतर निर्देशांकों के बीच की दूरी की गणना करने के लिए गणित का इस्तेमाल करें (पता और डिवाइस की जगह की जानकारी डालें). ओपन सोर्स Android यूटिलिटी लाइब्रेरी के लिए Maps SDK टूल इसमें गोलीय दूरी का पता लगाने के कुछ आसान तरीके हैं पृथ्वी पर दो बिंदुओं के बीच में दिखता है.
सबसे पहले, Android यूटिलिटी लाइब्रेरी के लिए Maps SDK टूल इंस्टॉल करें. इसके लिए, इन्हें जोड़ें
यह आपके ऐप्लिकेशन की build.gradle.kts
फ़ाइल पर निर्भर करता है:
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") }
फिर, आखिरी बार देखे गए डिवाइस की जगह की जानकारी पाने के बाद गतिविधि फ़ाइल में वापस जाएं, मीटर में दायरा निर्धारित करें, ताकि दोनों जगहों को "मिलान" माना जा सके. दायरा इतना बड़ा होना चाहिए कि उसमें जीपीएस सटीक तरीके से दिखने वाले फ़र्क़ को ध्यान में रखा जा सके और उपयोगकर्ता के डाले गए पते में जगह का साइज़. उदाहरण के लिए:
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 }
अगर पता और जगह की जानकारी मेल खाती है, तो ऐप्लिकेशन में पुष्टि करने वाला मैसेज दिखाएं, जैसा कि यहां दिखाया गया है यहां दी गई इमेज में बताया गया है.
Quick &Video को बेहतर बनाने के लिए सलाह पुष्टि किया गया साइन-अप
उपयोगकर्ताओं को किसी कारोबार या लोकप्रिय जगह के आधार पर पता डालने की अनुमति दें
नाम. "आगे टाइप करें" सुझाव सेवा सिर्फ़ पते के लिए काम नहीं करती,
लेकिन उपयोगकर्ताओं को कारोबार या लैंडमार्क का नाम डालने की अनुमति भी दी जा सकती है.
पते और संस्थान नाम दोनों डालने के लिए, हटाएं
ऑटोकंप्लीट की सुविधा से ली गई types
प्रॉपर्टी.
किसी जगह के लिए ऑटोकंप्लीट की सुविधा वाले बॉक्स के लुक और स्टाइल को पसंद के मुताबिक बनाएं, वेबसाइट स्टाइल. अगर आप स्थान के दृश्य और अनुभव को नियंत्रित करना चाहते हैं Google के विजेट का इस्तेमाल करने के बजाय, अपने ऐप्लिकेशन में ऑटोकंप्लीट की सुविधा दें. प्रोग्राम के हिसाब से, जगह के ऑटोकंप्लीट की सुविधा चालू करना का उपयोग करें.