সংক্ষিপ্ত বিবরণ
গুগল ম্যাপস প্ল্যাটফর্মটি ওয়েব (জেএস, টিএস), অ্যান্ড্রয়েড এবং আইওএসের জন্য উপলব্ধ এবং স্থান, দিকনির্দেশনা এবং দূরত্ব সম্পর্কে তথ্য পাওয়ার জন্য ওয়েব পরিষেবা APIও অফার করে। এই নির্দেশিকার নমুনাগুলি একটি প্ল্যাটফর্মের জন্য লেখা হয়েছে, তবে অন্যান্য প্ল্যাটফর্মে বাস্তবায়নের জন্য ডকুমেন্টেশন লিঙ্ক সরবরাহ করা হয়েছে।
গুগল ক্লাউড কনসোলে কুইক বিল্ডার আপনাকে একটি ইন্টারেক্টিভ UI ব্যবহার করে ঠিকানা ফর্ম অটোকমপ্লিশন তৈরি করতে দেয় যা আপনার জন্য জাভাস্ক্রিপ্ট কোড তৈরি করে।
ব্যবহারকারীরা এমন একটি ডিজিটাল জগতে বসবাস এবং পরিচালনা করতে অভ্যস্ত হয়ে উঠেছে যেখানে সুবিধা, গতি এবং নিরাপত্তাই মূল প্রত্যাশা। যখন তারা ক্রেডিট কার্ড, ব্যাংক অ্যাকাউন্ট বা ঋণের মতো কোনও কিছুর জন্য আবেদন করেন, তখন তারা আশা করেন যে প্রক্রিয়াটি দ্রুত এবং সহজ হবে।
যত বেশি ব্যবহারকারীদের ডুপ্লিকেট ডেটা টাইপ বা প্রবেশ করতে হবে, তাদের গ্রাহক হিসেবে ধরে রাখার সম্ভাবনা তত কম হবে। দ্রুত, সহজ এবং যাচাইকৃত সাইন-আপ অভিজ্ঞতা তৈরি করলে ব্যবহারকারীর অভিজ্ঞতা উন্নত হবে এবং আপনার সাইটে ব্যবহারকারীদের ধরে রাখার ক্ষেত্রে আপনাকে সাহায্য করবে।
ম্যানুয়ালি প্রবেশ করানো ঠিকানাগুলির ফলে রূপান্তর হ্রাস পেতে পারে, ভুল CRM ডেটা এবং ব্যয়বহুল ডেলিভারি ভুল হতে পারে। দ্রুত এবং যাচাইকৃত সাইন-আপ সাইন-আপকে দ্রুত করে তোলে, মাত্র কয়েকটি থাম্ব ট্যাপের মাধ্যমে তাৎক্ষণিকভাবে কাছাকাছি ঠিকানাগুলি সুপারিশ করে এবং ভিজ্যুয়াল নিশ্চিতকরণের জন্য ইনপুট করা ঠিকানাটি প্রদর্শন করে, ব্যবহারকারীকে আত্মবিশ্বাসী বোধ করতে সাহায্য করে যে তারা সঠিক ঠিকানা প্রবেশ করিয়েছে। ব্যবহারকারীর বর্তমান অবস্থান ব্যবহার করে তার ঠিকানা যাচাই করা জালিয়াতি প্রতিরোধেও সহায়তা করে এবং আপনার পণ্য এবং পরিষেবার প্রতি ব্যবহারকারীর আস্থা জোরদার করে। যাচাইকরণ তাৎক্ষণিকভাবে ভার্চুয়াল ব্যাংক এবং ক্রেডিট কার্ড সরবরাহের ক্ষেত্রে আপনার আত্মবিশ্বাস বাড়িয়ে তুলতে পারে।
এই বিষয়টি গুগল ম্যাপস প্ল্যাটফর্মের সাথে দ্রুত এবং যাচাইকৃত সাইন-আপ অভিজ্ঞতা তৈরির জন্য বাস্তবায়ন নির্দেশিকা প্রদান করে। যেহেতু ব্যবহারকারীরা সম্ভবত মোবাইল ডিভাইসে সাইন আপ করবেন, তাই এই বিষয়ের বেশিরভাগ বাস্তবায়ন উদাহরণ অ্যান্ড্রয়েডের উপর ফোকাস করে। (আপনি এখানে সম্পূর্ণ নমুনা উৎস দেখতে পারেন)। একই জিনিসগুলি সম্পন্ন করার জন্য আপনি iOS SDK ব্যবহার করতে পারেন।
নিচের চিত্রটি সমাধান তৈরিতে জড়িত মূল API গুলি দেখায় (বড় করতে ক্লিক করুন)।
API গুলি সক্ষম করা হচ্ছে
এই সুপারিশগুলি বাস্তবায়ন করতে, আপনাকে Google ক্লাউড কনসোলে নিম্নলিখিত API গুলি সক্ষম করতে হবে:
- অ্যান্ড্রয়েডের জন্য ম্যাপস SDK (অথবা আপনার পছন্দের প্ল্যাটফর্মের জন্য API)
- স্থান API
- জিওকোডিং এপিআই
সেটআপ সম্পর্কে আরও তথ্যের জন্য, গুগল ম্যাপস প্ল্যাটফর্ম দিয়ে শুরু করা দেখুন।
সেরা অনুশীলন বিভাগ
এই বিষয়ে আমরা যেসব অনুশীলন এবং কাস্টমাইজেশন সম্পর্কে আলোচনা করব তা নিম্নরূপ।
- চেক মার্ক আইকনটি একটি মূল সেরা অনুশীলন।
- সমাধান উন্নত করার জন্য তারকা আইকনটি ঐচ্ছিক কিন্তু প্রস্তাবিত কাস্টমাইজেশন।
| ইনপুট ক্ষেত্রগুলিতে স্বয়ংসম্পূর্ণ যোগ করা হচ্ছে | একটি ঠিকানা ফর্ম অটোফিল করুন। সমস্ত প্ল্যাটফর্মে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে এবং ন্যূনতম কীস্ট্রোকের মাধ্যমে ঠিকানার নির্ভুলতা উন্নত করতে টাইপ-অ্যাজ-ইউ-গো কার্যকারিতা যোগ করুন। | |
| ঠিকানার চাক্ষুষ নিশ্চিতকরণ প্রদান | ব্যবহারকারীরা সঠিক ঠিকানা লিখেছেন কিনা তা নিশ্চিত করার জন্য একটি চাক্ষুষ নিশ্চিতকরণ হিসেবে মানচিত্রে তাদের ঠিকানা দেখতে দিন। | |
| ব্যবহারকারীর প্রবেশ করানো ঠিকানার সাথে ডিভাইসের অবস্থানের তুলনা করা হচ্ছে | ব্যবহারকারীর নির্বাচিত বা প্রবেশ করানো ঠিকানাটি তাদের বর্তমান ডিভাইসের অবস্থানের সাথে তুলনা করে নির্ধারণ করুন যে তারা নির্দেশিত ঠিকানায় আছেন। (এটি কাজ করার জন্য, সাইন আপ করার সময় ব্যবহারকারীদের বাড়িতে থাকা উচিত।) | |
| দ্রুত এবং যাচাইকৃত সাইন-আপ আরও উন্নত করার টিপস | আপনি অটোকম্পলিট উইজেটের চেহারা এবং অনুভূতি কাস্টমাইজ করার মতো সংযোজনগুলির মাধ্যমে ঠিকানা এন্ট্রি আরও উন্নত করতে পারেন অথবা ব্যবহারকারীদের ঠিকানা হিসাবে কোনও ব্যবসার নাম বা ল্যান্ডমার্ক নির্বাচন করতে দিতে পারেন। |
ইনপুট ক্ষেত্রগুলিতে স্বয়ংসম্পূর্ণ যোগ করা হচ্ছে
| এই উদাহরণে ব্যবহার করা হয়: Android এর জন্য Places SDK | এছাড়াও উপলব্ধ: iOS | জাভাস্ক্রিপ্ট |
প্লেস অটোকম্পলিট আপনার অ্যাপ্লিকেশনে ঠিকানা এন্ট্রি সহজ করতে পারে, যার ফলে উচ্চতর রূপান্তর হার এবং আপনার গ্রাহকদের জন্য একটি নিরবচ্ছিন্ন অভিজ্ঞতা তৈরি হয়। অটোকম্পলিট "টাইপ-এহেড" ঠিকানা পূর্বাভাস সহ একটি একক, দ্রুত-এন্ট্রি ক্ষেত্র প্রদান করে যা স্বয়ংক্রিয়ভাবে একটি সাইন-আপ ঠিকানা ফর্ম পূরণ করতে ব্যবহার করা যেতে পারে। আপনার সাইন-আপ প্রবাহে প্লেস অটোকম্পলিট অন্তর্ভুক্ত করে, আপনি যা করতে পারেন:
- ঠিকানা প্রবেশের ত্রুটি হ্রাস করুন।
- সাইন-আপ প্রক্রিয়ার ধাপের সংখ্যা কমিয়ে দিন।
- মোবাইল বা পরিধেয় ডিভাইসে ঠিকানা প্রবেশের অভিজ্ঞতা সহজ করুন।
- গ্রাহকের সাইন আপ করার জন্য কীস্ট্রোক এবং মোট সময় উল্লেখযোগ্যভাবে হ্রাস করুন।
যখন ব্যবহারকারী স্বয়ংক্রিয়সম্পূর্ণ এন্ট্রি বাক্সটি নির্বাচন করে টাইপ করা শুরু করেন, তখন ঠিকানা পূর্বাভাসের একটি তালিকা উপস্থিত হয়।
যখন ব্যবহারকারী পূর্বাভাসের তালিকা থেকে একটি ঠিকানা নির্বাচন করেন, তখন আপনি ঠিকানাটি যাচাই করতে এবং অবস্থান পেতে প্রতিক্রিয়াটি ব্যবহার করতে পারেন। এরপর আপনার অ্যাপ্লিকেশনটি ঠিকানা এন্ট্রি ফর্মের সঠিক ক্ষেত্রগুলি পূরণ করতে পারে, যেমনটি নিম্নলিখিত চিত্রে দেখানো হয়েছে।

ভিডিও: প্লেস অটোকম্পলিট ব্যবহার করে ঠিকানা ফর্মগুলি উন্নত করুন
ঠিকানা ফর্ম
অ্যান্ড্রয়েড
আইওএস
ওয়েব
গুগল ম্যাপস প্ল্যাটফর্ম মোবাইল প্ল্যাটফর্ম এবং ওয়েবের জন্য একটি প্লেস অটোকম্পলিট উইজেট প্রদান করে। পূর্ববর্তী চিত্রগুলিতে দেখানো উইজেটটি অন্তর্নির্মিত অটোকম্পলিট কার্যকারিতা সহ একটি অনুসন্ধান ডায়ালগ প্রদান করে যা আপনি অবস্থান-স্কোপযুক্ত অনুসন্ধানের জন্যও অপ্টিমাইজ করতে পারেন।
এই বিভাগটি দ্রুত এবং যাচাইকৃত সাইন-আপের জন্য প্লেস অটোকম্পলিট কীভাবে বাস্তবায়ন করতে হয় তা বর্ণনা করে।
প্লেস অটোকম্পলিট উইজেট যোগ করা হচ্ছে
অ্যান্ড্রয়েডে, আপনি একটি অটোকম্পলিট ইন্টেন্ট ব্যবহার করে অটোকম্পলিট উইজেট যোগ করতে পারেন যা অ্যাড্রেস লাইন ১ ইনপুট ফিল্ড থেকে প্লেস অটোকম্পলিট চালু করে, যেখানে ব্যবহারকারী তাদের ঠিকানা লিখতে শুরু করবে। যখন তারা টাইপ করা শুরু করবে, তখন তারা অটোকম্পলিট পূর্বাভাসের তালিকা থেকে তাদের ঠিকানা নির্বাচন করতে সক্ষম হবে।
প্রথমে, 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"); } });
এরপর, 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")) .setTypesFilter(List.of("establishment")) .build(this); startAutocomplete.launch(intent); }
প্লেস অটোকম্পলিট দ্বারা ফেরত পাঠানো ঠিকানা পরিচালনা করা
পূর্বে ActivityResultLauncher সংজ্ঞায়িত করার মাধ্যমে কলব্যাকে অ্যাক্টিভিটি ফলাফল ফেরত আসলে কী করা উচিত তাও সংজ্ঞায়িত করা হয়েছিল। ব্যবহারকারী যদি একটি পূর্বাভাস নির্বাচন করেন, তাহলে এটি ফলাফল বস্তুর মধ্যে থাকা অভিপ্রায় অনুসারে বিতরণ করা হবে। যেহেতু অভিপ্রায়টি Autocomplete.IntentBuilder দ্বারা তৈরি করা হয়েছিল, তাই 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() কল করুন এবং প্রতিটি ঠিকানা উপাদানকে ঠিকানা ফর্মের সংশ্লিষ্ট ইনপুট ক্ষেত্রের সাথে মেলান, ব্যবহারকারীর নির্বাচিত স্থান থেকে মান দিয়ে ক্ষেত্রটি পূরণ করুন।
ম্যানুয়ালি প্রবেশ করানো ঠিকানার পরিবর্তে পূর্বাভাস থেকে ঠিকানার ডেটা ক্যাপচার করা ঠিকানার নির্ভুলতা নিশ্চিত করতে সাহায্য করে, ঠিকানাটি জানা আছে এবং পৌঁছে দেওয়া যেতে পারে তা নিশ্চিত করে এবং ব্যবহারকারীর কীস্ট্রোক কম করে।
প্লেস অটোকম্পলিট বাস্তবায়নের সময় বিবেচনাগুলি
প্লেস অটোকমপ্লিটের বেশ কিছু বিকল্প রয়েছে যা এটিকে বাস্তবায়নের সাথে নমনীয় করে তোলে যদি আপনি কেবল উইজেটের চেয়ে বেশি ব্যবহার করতে চান। সঠিক উপায়ে একটি অবস্থানের সাথে মেলে ঠিক কী প্রয়োজন তা পেতে আপনি পরিষেবার সংমিশ্রণ ব্যবহার করতে পারেন।
একটি ADDRESS ফর্মের জন্য, সম্পূর্ণ রাস্তার ঠিকানাগুলিতে মিল সীমাবদ্ধ করার জন্য টাইপ প্যারামিটারটিকে
addressসেট করুন। প্লেস অটোকম্পলিট অনুরোধগুলিতে সমর্থিত টাইপ সম্পর্কে আরও জানুন।যদি আপনার বিশ্বব্যাপী অনুসন্ধানের প্রয়োজন না হয়, তাহলে উপযুক্ত বিধিনিষেধ এবং পক্ষপাত সেট করুন। এমন অনেক পরামিতি রয়েছে যা শুধুমাত্র নির্দিষ্ট অঞ্চলে যেকোনো মিলকে পক্ষপাত বা সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে।
একটি এলাকার জন্য সীমাবদ্ধ করার জন্য আয়তক্ষেত্রাকার সীমানা সেট করতে
RectangularBoundsব্যবহার করুন,setLocationRestriction()ব্যবহার করুন যাতে নিশ্চিত করা যায় যে শুধুমাত্র সেই এলাকার ঠিকানাগুলি ফেরত দেওয়া হচ্ছে।নির্দিষ্ট কিছু দেশের মধ্যে প্রতিক্রিয়া সীমাবদ্ধ করতে
setCountries()ব্যবহার করুন।
ম্যাচ থেকে কিছু নির্দিষ্ট ক্ষেত্র বাদ পড়লে ক্ষেত্রগুলি সম্পাদনাযোগ্য রাখুন এবং প্রয়োজনে গ্রাহকদের ঠিকানা আপডেট করার অনুমতি দিন। যেহেতু প্লেস অটোকম্পলিট দ্বারা ফেরত দেওয়া বেশিরভাগ ঠিকানায় অ্যাপার্টমেন্ট, স্যুট বা ইউনিট নম্বরের মতো সাবপ্রিমাইজ নম্বর থাকে না, তাই প্রয়োজনে ব্যবহারকারীকে সেই তথ্য পূরণ করতে উৎসাহিত করার জন্য আপনি ফোকাসটি ঠিকানা লাইন 2-এ স্থানান্তর করতে পারেন।
ঠিকানার চাক্ষুষ নিশ্চিতকরণ প্রদান
| এই উদাহরণে ব্যবহার করা হয়: Android এর জন্য Maps SDK | এছাড়াও উপলব্ধ: iOS | জাভাস্ক্রিপ্ট |
ঠিকানা এন্ট্রির অংশ হিসেবে, ব্যবহারকারীদের একটি মানচিত্রে ঠিকানার ভিজ্যুয়াল নিশ্চিতকরণ প্রদান করুন। এটি ব্যবহারকারীদের অতিরিক্ত নিশ্চয়তা দেয় যে ঠিকানাটি সঠিক।
নিচের চিত্রটি ঠিকানার নীচে একটি মানচিত্র দেখায় যেখানে প্রবেশ করানো ঠিকানায় একটি পিন রয়েছে।

নিচের উদাহরণটি অ্যান্ড্রয়েডে একটি মানচিত্র যোগ করার প্রাথমিক ধাপগুলি অনুসরণ করে। আরও বিস্তারিত জানার জন্য ডকুমেন্টেশনটি দেখুন।
-
SupportMapFragmentযোগ করা (এই ক্ষেত্রে, গতিশীলভাবে একটি খণ্ড যোগ করা) - খণ্ডটির একটি হ্যান্ডেল পাওয়া এবং কলব্যাক নিবন্ধন করা
- মানচিত্রে স্টাইলিং এবং মার্কার যোগ করা
- মানচিত্র নিয়ন্ত্রণ অক্ষম করা হচ্ছে
SupportMapFragment যোগ করা হচ্ছে
প্রথমে, লেআউট XML ফাইলে একটি 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পদ্ধতিতে কল করুন।
উদাহরণস্বরূপ, যদি আপনি খণ্ডটি স্থিরভাবে যোগ করেন:
কোটলিন
val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this)
জাভা
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 | এছাড়াও উপলব্ধ: iOS | জাভাস্ক্রিপ্ট | জিওকোডিং API |
ব্যবহারকারীরা ঠিকানা যাচাইকরণে সম্মত হওয়ার পর (পূর্ববর্তী চিত্রে "যাচাই করুন আমি এখন সেখানে আছি" স্পর্শ করে), বর্তমান অবস্থানের সাথে ঠিকানা তুলনা করার প্রথম ধাপ হল প্রবেশ করানো ঠিকানাটিকে ভৌগলিক স্থানাঙ্কে রূপান্তর করা।
যদি ব্যবহারকারী Place Autocomplete দিয়ে তাদের ঠিকানা নির্বাচন করে থাকেন, তাহলে Adding the Place Autocomplete উইজেট কোড স্নিপেটে দেখানো Place Autocomplete ফিল্ড তালিকায় Place.Field.LAT_LNG অনুরোধ করতে ভুলবেন না এবং নির্বাচিত ঠিকানার ভৌগোলিক স্থানাঙ্ক পেতে Place.getLatLng() পদ্ধতিটি কল করুন।
coordinates = place.getLatLng();
যদি ব্যবহারকারী প্লেস অটোকম্পলিট ফিল্ডগুলি পূরণ করার পরে ম্যানুয়ালি তাদের ঠিকানা লিখে থাকেন বা সম্পাদনা করেন, তাহলে সেই ঠিকানার সাথে সম্পর্কিত স্থানাঙ্কগুলি দেখতে অ্যান্ড্রয়েড জিওকোডার পরিষেবা বা জিওকোডিং API ব্যবহার করুন।
উদাহরণ
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%2BParkway%2C%20Mountain%20View%2C%20CA%2094043&key= YOUR_API_KEY
জিওকোডিং API-তে কলটি URL এনকোড করতে ভুলবেন না।
URL এনকোডিং দ্রুত রেফারেন্স: %20 = স্থান, %2B = + (প্লাস), %2C = , (কমা)
ব্যবহারকারীর ডিভাইসের অবস্থান জানার জন্য অনুমতি চাওয়া
ব্যবহারকারীর ডিভাইসের অবস্থান জানতে, আপনাকে অবস্থান পরিষেবা সক্ষম করার জন্য ব্যবহারকারীর অনুমতির জন্য অনুরোধ করতে হবে। অবস্থান-সচেতন অ্যাপ তৈরির বিষয়ে অ্যান্ড্রয়েড ডকুমেন্টেশনের নির্দেশিকা ব্যবহার করে, নিম্নলিখিত প্রবাহটি বাস্তবায়ন করুন:
একটি সুনির্দিষ্ট স্তরে (
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());
// ...
});
}প্রবেশ করানো ঠিকানা এবং ডিভাইসের অবস্থানের মধ্যে দূরত্ব গণনা করা হচ্ছে
দুটি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের (প্রবেশকৃত ঠিকানা এবং ডিভাইসের অবস্থান) মধ্যে দূরত্ব গণনা করতে গণিত ব্যবহার করুন। ওপেন সোর্স ম্যাপস SDK ফর অ্যান্ড্রয়েড ইউটিলিটি লাইব্রেরিতে পৃথিবীর দুটি বিন্দুর মধ্যে গোলাকার দূরত্ব গণনা করার জন্য কিছু সহজ পদ্ধতি রয়েছে।
প্রথমে, আপনার অ্যাপের build.gradle.kts ফাইলে নিম্নলিখিত নির্ভরতা যোগ করে Android Utility Library এর জন্য Maps SDK ইনস্টল করুন:
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.19.0") }
তারপর, শেষ জানা ডিভাইসের অবস্থান পাওয়ার পর অ্যাক্টিভিটি ফাইলে ফিরে যান, দুটি অবস্থানকে "মিলিত" হিসাবে বিবেচনা করার জন্য মিটারে একটি ব্যাসার্ধ নির্ধারণ করুন। ব্যাসার্ধটি যথেষ্ট বড় হওয়া উচিত যাতে ব্যবহারকারীর প্রবেশ করানো ঠিকানায় GPS নির্ভুলতার পরিবর্তনশীলতা এবং স্থানের আকার বিবেচনা করা যায়। উদাহরণস্বরূপ:
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 বৈশিষ্ট্যগুলি সরিয়ে দিন।
আপনার ওয়েবসাইটের স্টাইলের সাথে মানানসই করে প্লেস অটোকম্পলিট বক্সের লুক এবং ফিল কাস্টমাইজ করুন। যদি আপনি গুগলের উইজেট ব্যবহার করার পরিবর্তে আপনার অ্যাপে প্লেস অটোকম্পলিটের লুক এবং ফিল নিয়ন্ত্রণ করতে চান, তাহলে প্লেস অটোকম্পলিট পরিষেবার মাধ্যমে আপনার তৈরি UI কে শক্তিশালী করার জন্য আপনি প্রোগ্রাম্যাটিকভাবে প্লেস অটোকম্পলিট ব্যবহার করতে পারেন।