मोबाइल ऐप्स में GPS और स्थान सेवाएँ उपग्रहों, Wi-Fi और मोबाइल नेटवर्क का उपयोग करके डिवाइस के भौतिक स्थान को निर्धारित करने के लिए API हैं। Google Android Location Guide (2025) के अनुसार, 60% से अधिक मोबाइल ऐप्स सामग्री को वैयक्तिकृत करने के लिए स्थान डेटा का उपयोग करते हैं। Android पर Fused Location Provider सटीकता में सुधार और बिजली खपत को कम करने के लिए कई स्रोतों को जोड़ता है।
मुख्य बातें
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, सेल), त्रुटियों को फ़िल्टर और सुधारना, निर्देशांक की गणना करना और परिणाम ऐप को देना। ऑपरेटिंग सिस्टम एक एकीकृत स्थान सेवा के माध्यम से इस प्रक्रिया का प्रबंधन करता है जो बैटरी बचत के लिए सभी स्रोतों को अनुकूलित करता है। नीचे स्थान डेटा के तीन मुख्य स्रोतों का वर्णन किया गया है।
उपग्रह नेविगेशन अधिकतम सटीकता (3-5 मीटर) प्रदान करता है, लेकिन इसके लिए आकाश का स्पष्ट दृश्य आवश्यक है। घर के अंदर या घने शहरी क्षेत्रों में, GPS सिग्नल कमजोर हो सकता है या पूरी तरह से खो सकता है। पहली स्थिति निर्धारण का समय (TTFF) कोल्ड स्टार्ट के लिए 30-60 सेकंड और हॉट स्टार्ट के लिए 5-10 सेकंड है। A-GPS (असिस्टेड GPS) उपग्रहों से डेटा की प्रतीक्षा करने के बजाय इंटरनेट के माध्यम से उपग्रह पंचांग डेटा डाउनलोड करके स्टार्ट को गति देता है।
Wi-Fi स्थिति निर्धारण ज्ञात निर्देशांक वाले एक्सेस पॉइंट के MAC पतों के डेटाबेस का उपयोग करता है। Wi-Fi कवरेज के भीतर सटीकता 10-50 मीटर है। सेल टावर टावर घनत्व के आधार पर 100 मीटर से लेकर कई किलोमीटर तक की सटीकता प्रदान करते हैं। सभी स्रोतों (Fused Location) का संयोजन न्यूनतम बिजली खपत पर उचित सटीकता के साथ निर्देशांक प्राप्त करने की अनुमति देता है — विशेष रूप से जब GPS चिप बंद हो या उपग्रह सिग्नल उपलब्ध न हों।
दोनों प्लेटफार्मों पर, स्थान सेवाएँ अमूर्तन के विभिन्न स्तरों के साथ सिस्टम API के माध्यम से कार्यान्वित की जाती हैं। Android Google Play Services से FusedLocationProviderClient का उपयोग करता है, iOS Core Location से CLLocationManager का उपयोग करता है। दोनों API एक बार की स्थिति का अनुरोध करने या नियमित अपडेट की सदस्यता लेने की अनुमति देते हैं। नीचे Kotlin में Fused Location Provider का उपयोग करके Android पर निर्देशांक प्राप्त करने का एक उदाहरण दिया गया है।
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 के साथ क्रैश हो जाएगा।
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 मानचित्र पर आभासी सीमाएँ बनाने की एक तकनीक है। जब ये सीमाएँ पार की जाती हैं, तो ऐप को एक सूचना प्राप्त होती है। Android पर, जियोफेंस को Google Play Services के GeofencingClient के माध्यम से कार्यान्वित किया जाता है, iOS पर — Core Location के CLCircularRegion के माध्यम से। किसी क्षेत्र में प्रवेश करने या छोड़ने पर, सिस्टम ऐप को जगाता है और एक घटना भेजता है भले ही ऐप बंद या छोटा किया गया हो। इसका उपयोग स्टोर के पास पहुँचने पर पुश सूचनाओं, स्थान-आधारित कार्य अनुस्मारक और IoT डिवाइस ऑटोमेशन के लिए किया जाता है। जियोफेंस की अधिकतम संख्या सीमित है: Android पर 100, iOS पर एक साथ 20। न्यूनतम क्षेत्र त्रिज्या दोनों प्लेटफार्मों पर 50 मीटर है — अन्यथा स्थान निर्धारण अशुद्धि के कारण सिस्टम ट्रिगर नहीं हो सकता है। किसी क्षेत्र में प्रवेश करने पर, सिस्टम Android पर Intent शुरू करता है या iOS पर locationManager:didEnterRegion डेलिगेट को कॉल करता है।
अक्सर पूछे जाने वाले प्रश्न
स्मार्टफोन में GPS उपग्रह नेविगेशन सिस्टम सिग्नलों का एक अंतर्निर्मित रिसीवर है जो 3-5 मीटर की सटीकता के साथ निर्देशांक निर्धारित करता है। डिवाइस सटीकता और स्थिति निर्धारण गति में सुधार के लिए GLONASS, Galileo और BeiDou का भी समर्थन करते हैं।
GPS केवल निर्देशांक निर्धारित करने की एक उपग्रह विधि है। स्थान सेवाएँ तेज़ और अधिक ऊर्जा-कुशल स्थान निर्धारण के लिए GPS, Wi-Fi स्थिति निर्धारण और सेल टावर डेटा को जोड़ती हैं, विशेष रूप से घर के अंदर।
CLLocationManager इंस्टेंस पर requestWhenInUseAuthorization() या requestAlwaysAuthorization() कॉल करें। पहले, Info.plist में NSLocationWhenInUseUsageDescription जोड़ें जिसमें स्थान सेवाओं की आवश्यकता का स्पष्ट स्पष्टीकरण हो।
Android पर FusedLocationProviderClient और iOS पर significant-change location service का उपयोग करें। अनुरोधों के बीच अंतराल को 10-30 सेकंड तक बढ़ाएँ, स्क्रीन बंद होने पर अपडेट बंद करें और सर्वर पर निर्देशांक की बैच सेंडिंग लागू करें।
हाँ, GPS के बिना आप Wi-Fi एक्सेस पॉइंट (सटीकता 10-50 मीटर) या सेल टावरों (सटीकता 100-5000 मीटर) का उपयोग करके अनुमानित स्थान निर्धारित कर सकते हैं। Android पर, इसके लिए ACCESS_COARSE_LOCATION का उपयोग किया जाता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें