মোবাইল অ্যাপে GPS এবং অবস্থান পরিষেবা — এগুলো কী এবং স্থানাঙ্ক পাওয়ার পদ্ধতি

লেখক: IT Sectr প্রকাশিত: 2026-03-22 পড়ার সময়: 8 মিনিট

মোবাইল অ্যাপে GPS এবং অবস্থান পরিষেবা হল উপগ্রহ, Wi-Fi এবং মোবাইল নেটওয়ার্ক ব্যবহার করে ডিভাইসের প্রকৃত অবস্থান নির্ধারণের জন্য API। Google Android Location Guide (2025) অনুসারে, 60% এর বেশি মোবাইল অ্যাপ সামগ্রী ব্যক্তিগতকরণের জন্য অবস্থান ডেটা ব্যবহার করে। Android এ Fused Location Provider নির্ভুলতা উন্নত করতে এবং শক্তি খরচ কমাতে একাধিক উৎস একত্রিত করে।

মূল বিষয়

  • GPS একটি বিশ্বব্যাপী উপগ্রহ ন্যাভিগেশন সিস্টেম যা খোলা জায়গায় 3-5 মিটার নির্ভুলতা প্রদান করে।
  • অবস্থান পরিষেবা Android এবং iOS এ GPS, Wi-Fi এবং সেল টাওয়ারের মাধ্যমে স্থানাঙ্ক পাওয়ার জন্য API প্রদান করে।
  • FusedLocationProviderClient Android এ নির্ভুলতা এবং শক্তি খরচের সর্বোত্তম ভারসাম্যের জন্য GPS, Wi-Fi এবং সেন্সর একত্রিত করে।
  • CLLocationManager iOS এ নির্ভুলতা সেটিংস এবং ব্যাকগ্রাউন্ড মোড সহ অবস্থান অনুরোধ পরিচালনা করে।
  • অবস্থান অনুমতি “ব্যবহারের সময়” এবং “সর্বদা” এ বিভক্ত — দ্বিতীয়টির জন্য অতিরিক্ত ব্যাখ্যা প্রয়োজন।

GPS এবং অবস্থান পরিষেবা কী

GPS (গ্লোবাল পজিশনিং সিস্টেম) একটি উপগ্রহ ন্যাভিগেশন সিস্টেম যা প্রায় 20,200 কিমি উচ্চতায় কক্ষপথে 31টি সক্রিয় উপগ্রহ নিয়ে গঠিত। মোবাইল ডিভাইসে, GPS চিপ উপগ্রহ থেকে সংকেত গ্রহণ করে এবং ত্রিপক্ষীয়করণের ভিত্তিতে স্থানাঙ্ক গণনা করে — একাধিক উপগ্রহ থেকে সংকেত ভ্রমণের সময় পরিমাপ করা। মোবাইল OS এ অবস্থান পরিষেবাগুলি দ্রুত অবস্থান নির্ধারণ (A-GPS) এবং অভ্যন্তরীণ নির্ভুলতা উন্নত করতে GPS এ Wi-Fi অ্যাক্সেস পয়েন্ট এবং সেল টাওয়ার থেকে ডেটা যোগ করে। GPS.gov (2024) অনুসারে, বেসামরিক GPS এর নির্ভুলতা পরিষ্কার আকাশে 3-5 মিটার এবং ঘন শহরাঞ্চলে 15 মিটার পর্যন্ত হয়।

অতিরিক্ত উপগ্রহ সিস্টেম

আধুনিক মোবাইল ডিভাইসগুলি কেবল আমেরিকান GPS সিস্টেমই নয়, অন্যান্য বৈশ্বিক ন্যাভিগেশন উপগ্রহ সিস্টেমও সমর্থন করে: রাশিয়ান GLONASS (24টি উপগ্রহ), ইউরোপীয় Galileo (28টি উপগ্রহ) এবং চীনা BeiDou। একসাথে একাধিক সিস্টেমের সমর্থন অবস্থান নির্ধারণের নির্ভুলতা এবং গতি উন্নত করে — ডিভাইসটি তার অবস্থান গণনা করতে বিভিন্ন সিস্টেমের 40টি পর্যন্ত উপগ্রহ ব্যবহার করতে পারে। iOS এবং Android এ, উপগ্রহ সিস্টেম নির্বাচন হার্ডওয়্যার চিপ স্তরে স্বয়ংক্রিয়ভাবে পরিচালিত হয়, ডেভেলপারদের এটি পরিচালনা করার প্রয়োজন নেই।

অবস্থান নির্ধারণ কীভাবে কাজ করে

মোবাইল ডিভাইসে অবস্থান নির্ধারণের প্রক্রিয়াটি বেশ কয়েকটি ধাপ নিয়ে গঠিত: উৎস থেকে ডেটা সংগ্রহ (উপগ্রহ, Wi-Fi, সেল), ত্রুটি ফিল্টারিং এবং সংশোধন, স্থানাঙ্ক গণনা এবং ফলাফল অ্যাপে প্রদান। অপারেটিং সিস্টেম একটি সমন্বিত অবস্থান পরিষেবার মাধ্যমে এই প্রক্রিয়াটি পরিচালনা করে যা ব্যাটারি সাশ্রয়ের জন্য সমস্ত উৎস অপ্টিমাইজ করে। নীচে অবস্থান ডেটার তিনটি প্রধান উৎস বর্ণনা করা হয়েছে।

GPS এবং উপগ্রহ ন্যাভিগেশন

উপগ্রহ ন্যাভিগেশন সর্বোচ্চ নির্ভুলতা (3-5 মিটার) প্রদান করে, তবে এর জন্য আকাশের স্পষ্ট দৃশ্য প্রয়োজন। বাড়ির ভিতরে বা ঘন শহরাঞ্চলে, GPS সংকেত দুর্বল হতে পারে বা সম্পূর্ণরূপে হারিয়ে যেতে পারে। প্রথম অবস্থান নির্ধারণের সময় (TTFF) কোল্ড স্টার্টের জন্য 30-60 সেকেন্ড এবং হট স্টার্টের জন্য 5-10 সেকেন্ড। A-GPS (অ্যাসিস্টেড GPS) উপগ্রহ থেকে ডেটার জন্য অপেক্ষা না করে ইন্টারনেটের মাধ্যমে উপগ্রহ এফিমেরিস ডেটা ডাউনলোড করে স্টার্ট দ্রুততর করে।

Wi-Fi এবং সেল টাওয়ার অবস্থান নির্ধারণ

Wi-Fi অবস্থান নির্ধারণ পরিচিত স্থানাঙ্ক সহ অ্যাক্সেস পয়েন্টের MAC ঠিকানার ডেটাবেস ব্যবহার করে। Wi-Fi কভারেজের মধ্যে নির্ভুলতা 10-50 মিটার। সেল টাওয়ার টাওয়ার ঘনত্বের উপর নির্ভর করে 100 মিটার থেকে কয়েক কিলোমিটার পর্যন্ত নির্ভুলতা প্রদান করে। সমস্ত উৎসের সংমিশ্রণ (Fused Location) ন্যূনতম শক্তি খরচে যুক্তিসঙ্গত নির্ভুলতার সাথে স্থানাঙ্ক পাওয়ার অনুমতি দেয় — বিশেষ করে যখন GPS চিপ বন্ধ থাকে বা উপগ্রহ সংকেত উপলব্ধ না থাকে।

Android এবং iOS এ অবস্থান প্রদানকারী

উভয় প্ল্যাটফর্মে, অবস্থান পরিষেবা বিমূর্ততার বিভিন্ন স্তরের সাথে সিস্টেম API এর মাধ্যমে বাস্তবায়িত হয়। Android Google Play Services থেকে FusedLocationProviderClient ব্যবহার করে, iOS Core Location থেকে CLLocationManager ব্যবহার করে। উভয় API এককালীন অবস্থানের অনুরোধ বা নিয়মিত আপডেটে সাবস্ক্রাইব করার অনুমতি দেয়। নীচে Kotlin এ Fused Location Provider ব্যবহার করে Android এ স্থানাঙ্ক পাওয়ার একটি উদাহরণ দেওয়া হল।

Android এ স্থানাঙ্ক পাওয়া

kotlin
val fusedClient = LocationServices.getFusedLocationProviderClient(this)

val locationRequest = LocationRequest.Builder(
    Priority.PRIORITY_HIGH_ACCURACY
)
.setIntervalMillis(5000)
.setMinUpdateIntervalMillis(2000)
.build()

val locationCallback = object : LocationCallback() {
    override fun onLocationResult(result: LocationResult) {
        result.lastLocation?.let { location ->
            Log.d("অবস্থান", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

if (checkLocationPermission()) {
    fusedClient.requestLocationUpdates(
        locationRequest, locationCallback,
        Looper.getMainLooper()
    )
}

উদাহরণে, LocationRequest PRIORITY_HIGH_ACCURACY দিয়ে কনফিগার করা হয়েছে — এটি সর্বোচ্চ নির্ভুলতার জন্য GPS সক্ষম করে। setIntervalMillis পছন্দসই আপডেট ব্যবধান (5 সেকেন্ড) সেট করে, setMinUpdateIntervalMillis ন্যূনতম ব্যবধান (2 সেকেন্ড) সেট করে। onLocationResult কলব্যাক প্রতিবার কল করা হয় যখন সিস্টেম নতুন স্থানাঙ্ক পায়। requestLocationUpdates কল করার আগে অনুমতি পরীক্ষা করা গুরুত্বপূর্ণ — অন্যথায় অ্যাপটি SecurityException দিয়ে ক্র্যাশ হবে।

iOS এ স্থানাঙ্ক পাওয়া

swift
import CoreLocation

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

// চিহ্ন: - CLLocationManagerDelegate
func locationManager(
    _ manager: CLLocationManager,
    didUpdateLocations locations: [CLLocation]
) {
    guard let location = locations.last else { return }
    print("Location: \(location.coordinate.latitude), \(location.coordinate.longitude)")
}

iOS এ, desiredAccuracy অনুরোধের নির্ভুলতা নির্ধারণ করে: kCLLocationAccuracyBest সমস্ত উপলব্ধ উৎস (GPS + Wi-Fi + সেল) ব্যবহার করে। requestWhenInUseAuthorization এর মাধ্যমে অনুমতি অনুরোধ করার পরে, সিস্টেম ব্যবহারকারীকে একটি ডায়ালগ দেখায়। didUpdateLocations ডেলিগেট স্থানাঙ্ক, উচ্চতা, গতি এবং দিক সহ CLLocation অবজেক্টের একটি অ্যারে গ্রহণ করে। আপডেট বন্ধ করতে, ব্যাটারি বাঁচাতে stopUpdatingLocation কল করা হয়।

অবস্থান অনুমতির অনুরোধ

অবস্থানে অ্যাক্সেসের জন্য উভয় প্ল্যাটফর্মে ব্যবহারকারীর স্পষ্ট অনুমতি প্রয়োজন। Android এ, ACCESS_FINE_LOCATION (GPS) এবং ACCESS_COARSE_LOCATION (Wi-Fi/সেল) অনুমতি ব্যবহার করা হয়। Android 10 থেকে, ব্যাকগ্রাউন্ড অ্যাক্সেসের জন্য একটি পৃথক অনুমতি ACCESS_BACKGROUND_LOCATION প্রয়োজন। iOS এ, তিনটি স্তর উপলব্ধ: requestWhenInUseAuthorization (শুধুমাত্র যখন অ্যাপ সক্রিয়), requestAlwaysAuthorization (ব্যাকগ্রাউন্ডে), এবং সুনির্দিষ্ট অবস্থান নির্ধারণের জন্য অস্থায়ী টাইমস্ট্যাম্প। Apple Info.plist এ বাধ্যতামূলক বিবরণ প্রয়োজন: NSLocationWhenInUseUsageDescription বা NSLocationAlwaysAndWhenInUseUsageDescription। এই কীগুলি ছাড়া, অনুমতি অনুরোধ উপেক্ষা করা হয়।

শক্তি খরচ অপ্টিমাইজেশন

GPS এর ক্রমাগত ব্যবহার ব্যাটারি উল্লেখযোগ্যভাবে নিষ্কাশন করে — সর্বোচ্চ নির্ভুলতায় ক্রমাগত অপারেশনের প্রতি ঘন্টায় 30% পর্যন্ত। শক্তি খরচ অপ্টিমাইজ করতে, শুধুমাত্র প্রয়োজন হলে অবস্থান পরিষেবা ব্যবহার করার এবং অ্যাপ ব্যাকগ্রাউন্ডে গেলে আপডেট বন্ধ করার পরামর্শ দেওয়া হয়। Android এ, FusedLocationProviderClient প্রাপ্যতা এবং অনুরোধের অগ্রাধিকারের উপর নির্ভর করে স্বয়ংক্রিয়ভাবে GPS এবং নেটওয়ার্ক উৎসের মধ্যে স্যুইচ করে। iOS এ, ন্যূনতম শক্তি খরচ সহ আপডেটের জন্য significant-change location service (startMonitoringSignificantLocationChanges) ব্যবহার করুন — নির্ভুলতা কম (500 মিটার পর্যন্ত), কিন্তু ব্যাটারি প্রায় নিষ্কাশন হয় না। এছাড়াও ব্যাচ প্রসেসিং অনুশীলন করুন: 5-10 মিনিটের ব্যবধানে স্থানাঙ্ক সংগ্রহ করুন এবং Android এ WorkManager বা iOS এ BGTaskScheduler এর মাধ্যমে একটি অনুরোধে সার্ভারে পাঠান। অনুরোধের ফ্রিকোয়েন্সি 1 সেকেন্ড থেকে 30 সেকেন্ডে কমালে অবস্থান পরিষেবার শক্তি খরচ 85% কমে যায়।

অবস্থান নির্ধারণের ব্যবহারের ক্ষেত্র

অবস্থান নির্ধারণ মোবাইল অ্যাপের বিস্তৃত পরিসরে ব্যবহৃত হয়: ন্যাভিগেটর থেকে ডেলিভারি পরিষেবা পর্যন্ত। সবচেয়ে সাধারণ পরিস্থিতিগুলির মধ্যে রয়েছে মানচিত্রে ব্যবহারকারীকে প্রদর্শন করা, ভূ-টার্গেটেড বিজ্ঞাপন, কুরিয়ার ট্র্যাকিং, পুশ বিজ্ঞপ্তির জন্য জিওফেন্সিং এবং ফিটনেস কার্যকলাপ ট্র্যাকিং। প্রতিটি পরিস্থিতির জন্য নির্ভুলতা এবং আপডেট ফ্রিকোয়েন্সির নিজস্ব পদ্ধতির প্রয়োজন। নীচে বিভিন্ন অ্যাপ প্রকারের জন্য কনফিগারেশন সুপারিশ সহ একটি টেবিল দেওয়া হল।

অ্যাপ প্রকারনির্ভুলতাব্যবধানব্যাকগ্রাউন্ড মোড
ন্যাভিগেটরHIGH (GPS)1-2 সেকেন্ডহ্যাঁ
ডেলিভারিBALANCED (GPS+Wi-Fi)10-30 সেকেন্ডহ্যাঁ
আবহাওয়াLOW (Wi-Fi/সেল)একবারনা
সামাজিক নেটওয়ার্কBALANCEDখোলার সময়না
ফিটনেসHIGH (GPS)5-10 সেকেন্ডহ্যাঁ

অবস্থান নির্ধারণ কার্যকারিতা ডিজাইন করার সময়, এটি বিবেচনা করা গুরুত্বপূর্ণ যে ব্যবহারকারীরা সিস্টেম সেটিংসের মাধ্যমে যে কোনও সময় অনুমতি প্রত্যাহার করতে পারেন। অ্যাপটির উচিত এমন পরিস্থিতিগুলি সঠিকভাবে পরিচালনা করা যেখানে অবস্থান নির্ধারণ উপলব্ধ নয় এবং কার্যকারিতা কেন সীমিত তার একটি স্পষ্ট ব্যাখ্যা দেখানো উচিত।

জিওফেন্সিং (Geofencing)

Geofencing মানচিত্রে ভার্চুয়াল সীমানা তৈরি করার একটি প্রযুক্তি। যখন এই সীমানাগুলি অতিক্রম করা হয়, অ্যাপটি একটি বিজ্ঞপ্তি পায়। Android এ, জিওফেন্স Google Play Services এর GeofencingClient এর মাধ্যমে বাস্তবায়িত হয়, iOS এ — Core Location এর CLCircularRegion এর মাধ্যমে। একটি এলাকায় প্রবেশ বা ছেড়ে যাওয়ার সময়, সিস্টেম অ্যাপটিকে জাগ্রত করে এবং একটি ইভেন্ট পাঠায় এমনকি যদি অ্যাপটি বন্ধ বা ছোট করা হয়। এটি দোকানের কাছে আসার সময় পুশ বিজ্ঞপ্তি, অবস্থান-ভিত্তিক কাজের অনুস্মারক এবং IoT ডিভাইস অটোমেশনের জন্য ব্যবহৃত হয়। জিওফেন্সের সর্বাধিক সংখ্যা সীমিত: Android এ 100, iOS এ একসাথে 20। ন্যূনতম অঞ্চল ব্যাসার্ধ উভয় প্ল্যাটফর্মে 50 মিটার — অন্যথায় অবস্থান নির্ধারণের অশুদ্ধতার কারণে সিস্টেম ট্রিগার নাও হতে পারে। একটি এলাকায় প্রবেশ করার সময়, সিস্টেম Android এ Intent শুরু করে বা iOS এ locationManager:didEnterRegion ডেলিগেট কল করে।

সচরাচর জিজ্ঞাসা

মোবাইল ডিভাইসে GPS কী?

স্মার্টফোনে GPS হল উপগ্রহ ন্যাভিগেশন সিস্টেম সংকেতের একটি অন্তর্নির্মিত রিসিভার যা 3-5 মিটার নির্ভুলতার সাথে স্থানাঙ্ক নির্ধারণ করে। ডিভাইসগুলি নির্ভুলতা এবং অবস্থান নির্ধারণের গতি উন্নত করতে GLONASS, Galileo এবং BeiDou সমর্থন করে।

GPS কীভাবে অবস্থান পরিষেবা থেকে আলাদা?

GPS শুধুমাত্র স্থানাঙ্ক নির্ধারণের একটি উপগ্রহ পদ্ধতি। অবস্থান পরিষেবাগুলি দ্রুত এবং আরও শক্তি-দক্ষ অবস্থান নির্ধারণের জন্য GPS, Wi-Fi অবস্থান এবং সেল টাওয়ার ডেটা একত্রিত করে, বিশেষ করে বাড়ির ভিতরে।

iOS এ কীভাবে অবস্থান অনুমতি অনুরোধ করবেন?

CLLocationManager ইনস্ট্যান্সে requestWhenInUseAuthorization() বা requestAlwaysAuthorization() কল করুন। প্রথমে, Info.plist এ NSLocationWhenInUseUsageDescription যোগ করুন যেখানে অবস্থান পরিষেবার প্রয়োজনীয়তার স্পষ্ট ব্যাখ্যা থাকবে।

অ্যাপে GPS শক্তি খরচ কীভাবে কমানো যায়?

Android এ FusedLocationProviderClient এবং iOS এ significant-change location service ব্যবহার করুন। অনুরোধের মধ্যে ব্যবধান 10-30 সেকেন্ডে বাড়ান, স্ক্রিন বন্ধ থাকলে আপডেট বন্ধ করুন এবং সার্ভারে স্থানাঙ্কের ব্যাচ প্রেরণ প্রয়োগ করুন।

GPS ছাড়া কি অবস্থান পাওয়া যায়?

হ্যাঁ, GPS ছাড়া আপনি Wi-Fi অ্যাক্সেস পয়েন্ট (নির্ভুলতা 10-50 মিটার) বা সেল টাওয়ার (নির্ভুলতা 100-5000 মিটার) ব্যবহার করে আনুমানিক অবস্থান নির্ধারণ করতে পারেন। Android এ, এর জন্য ACCESS_COARSE_LOCATION ব্যবহার করা হয়।

সারাংশ

  • GPS 3-5 মিটার নির্ভুলতা সহ একটি উপগ্রহ ন্যাভিগেশন সিস্টেম, যা GLONASS, Galileo এবং BeiDou দ্বারা পরিপূরক।
  • অবস্থান পরিষেবা দ্রুত এবং সঠিক স্থানাঙ্ক নির্ধারণের জন্য GPS, Wi-Fi এবং সেল টাওয়ার একত্রিত করে।
  • Android নির্ভুলতা এবং আপডেট ব্যবধান কনফিগার করতে FusedLocationProviderClient এবং LocationRequest ব্যবহার করে।
  • iOS স্থানাঙ্ক পাওয়ার জন্য desiredAccuracy এবং didUpdateLocations ডেলিগেট সহ CLLocationManager ব্যবহার করে।
  • অনুমতি “ব্যবহারের সময়” এবং “সর্বদা” এ বিভক্ত — ব্যাকগ্রাউন্ড অ্যাক্সেসের জন্য পৃথক ব্যবহারকারীর অনুমোদন প্রয়োজন।
  • GPS শক্তি খরচ ব্যবধান বাড়িয়ে এবং গুরুত্বপূর্ণ অবস্থান পরিবর্তন ব্যবহার করে 85% পর্যন্ত কমানো যেতে পারে।
  • সুপারিশ — পরিস্থিতি অনুযায়ী নির্ভুলতা এবং আপডেট ব্যবধান চয়ন করুন: ন্যাভিগেটরের HIGH প্রয়োজন, আবহাওয়ার LOW প্রয়োজন।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন