W3C Geolocation API एक मानक तय करती है जिसके ज़रिए वेब ब्राउज़र मोबाइल फ़ोन, टैबलेट और डेस्कटॉप कंप्यूटर के लोकेशन हार्डवेयर तक पहुँचते हैं।
JavaScript के ग्लोबल ऑब्जेक्ट navigator.geolocation के ज़रिए उपलब्ध यह इंटरफ़ेस वेब ऐप्लिकेशन—हमारे GPS Coordinates Finder और Where Am I टूल सहित—को उपयोगकर्ता की सहमति से सुरक्षित रूप से भौगोलिक निर्देशांक माँगने की सुविधा देता है। इस गाइड में हम वेब डेवलपर्स और जिज्ञासु उपयोगकर्ताओं, दोनों के लिए पूरी तकनीकी जानकारी देते हैं।
अपने ब्राउज़र का Geolocation डेटा देखें
पूरे GeolocationPosition ऑब्जेक्ट—निर्देशांक, स्पीड, दिशा, ऊँचाई और टाइमस्टैम्प—देखने के लिए लाइव navigator.geolocation कॉल ट्रिगर करें।
1. मुख्य आर्किटेक्चर और API मेथड्स
W3C Geolocation स्पेसिफिकेशन तीन प्रमुख मेथड देती है:
navigator.geolocation.getCurrentPosition(success, error, options)
उपयोगकर्ता की मौजूदा भौगोलिक स्थिति का एक बार का स्नैपशॉट माँगता है। सफलता पर GeolocationPosition ऑब्जेक्ट और विफलता पर GeolocationPositionError लौटाता है।
navigator.geolocation.watchPosition(success, error, options)
एक हैंडलर फ़ंक्शन रजिस्टर करता है जो डिवाइस की लोकेशन बदलने पर अपने-आप कॉल हो जाता है। रीयल-टाइम मूवमेंट और स्पीड ट्रैकिंग के लिए एक पूर्णांक watchId लौटाता है।
navigator.geolocation.clearWatch(watchId)
watchPosition() से रजिस्टर की गई चालू लोकेशन वॉच को रद्द करता है, जिससे बैटरी बचती है और सेंसर पोलिंग बंद होती है।
2. प्रोडक्शन-रेडी JavaScript इंप्लीमेंटेशन
यहाँ टाइमआउट हैंडलिंग, फ़ॉलबैक लॉजिक और सख़्त सटीकता सेटिंग्स के साथ एक मज़बूत, प्रोडक्शन-रेडी स्निपेट दिया गया है:
// Check browser support
if ('geolocation' in navigator) {
const options = {
enableHighAccuracy: true, // Request GPS hardware rather than IP lookup
timeout: 10000, // Maximum wait time of 10 seconds
maximumAge: 0 // Do not return cached coordinates
};
function successCallback(position) {
const { latitude, longitude, accuracy, altitude, heading, speed } = position.coords;
console.log(`Latitude: ${latitude}, Longitude: ${longitude}`);
console.log(`Accuracy radius: ${accuracy} meters`);
}
function errorCallback(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
console.error("User denied Geolocation permission.");
break;
case error.POSITION_UNAVAILABLE:
console.error("Location information is unavailable (weak GPS/Wi-Fi signal).");
break;
case error.TIMEOUT:
console.error("The request to get user location timed out.");
break;
}
}
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
} else {
console.warn("Geolocation API is not supported in this browser.");
}3. प्रमुख कॉन्फ़िगरेशन विकल्प: PositionOptions
| ऑप्शन प्रॉपर्टी | टाइप | डिफ़ॉल्ट | व्यवहार और तकनीकी प्रभाव |
|---|---|---|---|
enableHighAccuracy | Boolean | false | true होने पर ब्राउज़र इंटरनल GPS/GNSS रिसीवर चिप चालू करता है, जिससे 3–5 मीटर से बेहतर सटीकता मिलती है। false होने पर कम-पावर Wi-Fi/सेल्युलर ट्रायंगुलेशन या IP लुकअप उपयोग होता है। |
timeout | Positive integer (ms) | Infinity | ब्राउज़र को TIMEOUT एरर कोड लौटाने से पहले अधिकतम जो समय (मिलीसेकंड में) मिलता है। सुझाव: 8,000 से 12,000 ms। |
maximumAge | Positive integer (ms) | 0 | कैश की गई लोकेशन की अधिकतम स्वीकार्य आयु। 0 सेट करने पर डिवाइस को ताज़ा सैटेलाइट/Wi-Fi फ़िक्स लेने के लिए मजबूर किया जाता है। |
4. सुरक्षा और Permissions Policy आवश्यकताएँ
- सिक्योर कॉन्टेक्स्ट (HTTPS अनिवार्य): Chrome 50 और iOS 10 से Geolocation API असुरक्षित HTTP कनेक्शन पर पूरी तरह बंद रहती है। वेब ऐप्लिकेशन वैध HTTPS पर ही चलाए जाने चाहिए।
- उपयोगकर्ता जेस्चर आवश्यक: बटन क्लिक (जैसे 'Get My Location') पर geolocation कॉल ट्रिगर करना, पेज लोड होते ही अनचाहा प्रॉम्प्ट दिखाने की तुलना में उपयोगकर्ता की सहमति की दर बेहतर देता है।
- Iframe Permissions-Policy: अगर geolocation टूल को <iframe> के अंदर एम्बेड कर रहे हैं, तो iframe टैग में allow='geolocation' एट्रिब्यूट ज़रूर डिक्लेयर करें।
Geolocation API के दशमलव डिग्री बदलें
navigator.geolocation के दशमलव आउटपुट को आसानी से डिग्री, मिनट, सेकंड (DMS) या Universal Transverse Mercator (UTM) में बदलें।