जगह की जानकारी: Maps पर उपयोगकर्ता या डिवाइस की जगह की जानकारी दिखाना

खास जानकारी

इस ट्यूटोरियल में, Maps JavaScript API के साथ-साथ ब्राउज़र की HTML5 जियोलोकेशन सुविधा का इस्तेमाल करके, किसी डिवाइस की भौगोलिक जगह की जानकारी को Google मैप पर दिखाने का तरीका बताया गया है. जगह की जानकारी सिर्फ़ तब दिखेगी, जब उपयोगकर्ता ने जगह की जानकारी शेयर करने की अनुमति दी हो.

जब उपयोगकर्ता जगह की जानकारी का अनुरोध ट्रिगर करता है, तो उसे ब्राउज़र से डिवाइस की जगह की जानकारी का डेटा ऐक्सेस करने के लिए, सहमति देने का अनुरोध मिलेगा. अगर अनुरोध पूरा नहीं हो पाता है, तो इसकी वजह यह हो सकती है कि जगह की जानकारी की अनुमतियां नहीं दी गई हैं या डिवाइस की जगह की जानकारी का पता नहीं लगाया जा सका. यह सुविधा सिर्फ़ सुरक्षित कॉन्टेक्स्ट (एचटीटीपीएस) में उपलब्ध है. यह सुविधा, काम करने वाले कुछ या सभी ब्राउज़र में उपलब्ध है.

यहां एक मैप दिया गया है, जिससे उपयोगकर्ता के डिवाइस की मौजूदा जगह की पहचान की जा सकती है.

नीचे दिए गए सैंपल में, यह पूरा कोड दिखाया गया है जिसकी ज़रूरत आपको यह मैप बनाने के लिए होगी.

TypeScript

// Note: This example requires that you consent to location sharing when
// prompted by your browser. If you see the error "The Geolocation service
// failed.", it means you probably did not give permission for the browser to
// locate you.
let map: google.maps.Map, infoWindow: google.maps.InfoWindow;

function initMap(): void {
  map = new google.maps.Map(document.getElementById("map") as HTMLElement, {
    center: { lat: -34.397, lng: 150.644 },
    zoom: 6,
  });
  infoWindow = new google.maps.InfoWindow();

  const locationButton = document.createElement("button");

  locationButton.textContent = "Pan to Current Location";
  locationButton.classList.add("custom-map-control-button");

  map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);

  locationButton.addEventListener("click", () => {
    // Try HTML5 geolocation.
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(
        (position: GeolocationPosition) => {
          const pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude,
          };

          infoWindow.setPosition(pos);
          infoWindow.setContent("Location found.");
          infoWindow.open(map);
          map.setCenter(pos);
        },
        () => {
          handleLocationError(true, infoWindow, map.getCenter()!);
        }
      );
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter()!);
    }
  });
}

function handleLocationError(
  browserHasGeolocation: boolean,
  infoWindow: google.maps.InfoWindow,
  pos: google.maps.LatLng
) {
  infoWindow.setPosition(pos);
  infoWindow.setContent(
    browserHasGeolocation
      ? "Error: The Geolocation service failed."
      : "Error: Your browser doesn't support geolocation."
  );
  infoWindow.open(map);
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// Note: This example requires that you consent to location sharing when
// prompted by your browser. If you see the error "The Geolocation service
// failed.", it means you probably did not give permission for the browser to
// locate you.
let map, infoWindow;

function initMap() {
  map = new google.maps.Map(document.getElementById("map"), {
    center: { lat: -34.397, lng: 150.644 },
    zoom: 6,
  });
  infoWindow = new google.maps.InfoWindow();

  const locationButton = document.createElement("button");

  locationButton.textContent = "Pan to Current Location";
  locationButton.classList.add("custom-map-control-button");
  map.controls[google.maps.ControlPosition.TOP_CENTER].push(locationButton);
  locationButton.addEventListener("click", () => {
    // Try HTML5 geolocation.
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(
        (position) => {
          const pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude,
          };

          infoWindow.setPosition(pos);
          infoWindow.setContent("Location found.");
          infoWindow.open(map);
          map.setCenter(pos);
        },
        () => {
          handleLocationError(true, infoWindow, map.getCenter());
        },
      );
    } else {
      // Browser doesn't support Geolocation
      handleLocationError(false, infoWindow, map.getCenter());
    }
  });
}

function handleLocationError(browserHasGeolocation, infoWindow, pos) {
  infoWindow.setPosition(pos);
  infoWindow.setContent(
    browserHasGeolocation
      ? "Error: The Geolocation service failed."
      : "Error: Your browser doesn't support geolocation.",
  );
  infoWindow.open(map);
}

window.initMap = initMap;
उदाहरण देखें

सैंपल आज़माएं

जगह की जानकारी क्या है?

जगह की जानकारी से, डेटा इकट्ठा करने के अलग-अलग तरीकों का इस्तेमाल करके, किसी कंप्यूटिंग डिवाइस की जगह की जानकारी का पता चलता है. आम तौर पर, ज़्यादातर जगह की जानकारी वाली सेवाएं, नेटवर्क के रूटिंग पतों या डिवाइस में मौजूद जीपीएस चिप का इस्तेमाल करके, जगह की जानकारी का पता लगाती हैं. जगह की जानकारी पाने की सुविधा, डिवाइस के हिसाब से काम करने वाला एपीआई है. इसका मतलब है कि वेब ऐप्लिकेशन के ज़रिए जगह की जानकारी का इस्तेमाल करने के लिए, ब्राउज़र या डिवाइसों में जगह की जानकारी की सुविधा का होना ज़रूरी है.

W3C का जियोलोकेशन स्टैंडर्ड

जियोलोकेशन की सुविधा देने वाले ऐप्लिकेशन के लिए, W3C के जियोलोकेशन स्टैंडर्ड का इस्तेमाल करना ज़रूरी है. ध्यान दें कि ऊपर दिया गया सैंपल कोड, W3C navigator.geolocation एपीआई की मदद से डिवाइस की जगह की जानकारी का पता लगाता है.

कभी-कभी वेबसाइटें किसी डिवाइस की जगह की जानकारी का पता लगाने के लिए, आईपी पतों का इस्तेमाल करती हैं. हालांकि, इससे सिर्फ़ उस जगह का अनुमानित पता चलता है. W3C-स्टैंडर्ड एपीआई, सबसे ज़्यादा काम के और सटीक होते हैं. इसलिए, जगह की जानकारी पाने के अन्य तरीकों के मुकाबले, इन पर प्राथमिकता दी जानी चाहिए.