एलिवेशन सर्विस

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

खास जानकारी

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

ElevationService ऑब्जेक्ट, आपको पृथ्वी की ऊंचाई से जुड़े डेटा के बारे में क्वेरी करने के लिए, एक आसान इंटरफ़ेस देता है. साथ ही, आप पाथ के साथ ऊंचाई के सैंपल डेटा का अनुरोध कर सकते हैं. इससे आप रास्तों में बराबर ऊंचाई वाले बदलावों का हिसाब लगा सकते हैं. ElevationService ऑब्जेक्ट, Google Maps API ऊंचाई की जानकारी देने वाली सेवा से संपर्क करता है. इस सेवा को ऊंचाई के अनुरोध मिलते हैं और ऊंचाई से जुड़ा डेटा दिखाता है.

एलिवेशन सेवा के साथ, आप हाइकिंग और बाइकिंग के ऐप्लिकेशन, मोबाइल पोज़िशनिंग ऐप्लिकेशन या कम रिज़ॉल्यूशन वाले सर्वे के ऐप्लिकेशन बना सकते हैं.

शुरुआत करना

Maps JavaScript एपीआई में ऊंचाई से जुड़ी सेवा का इस्तेमाल करने से पहले, यह पक्का कर लें कि Google Cloud Console में उसी एपीआई को चालू किया जाए जो आपने Maps JavaScript API के लिए सेट अप किया है.

चालू किए गए एपीआई की सूची देखने के लिए:

  1. Google Cloud Console पर जाएं.
  2. प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे Maps JavaScript एपीआई के लिए सेट अप किया गया हो और खोलें पर क्लिक करें.
  3. डैशबोर्ड पर एपीआई की सूची में जाकर, एलिवेशन एपीआई ढूंढें.
  4. अगर आपको सूची में एपीआई दिख रहा है, तो आप इसे इस्तेमाल करने के लिए तैयार हैं. अगर एपीआई सूची में नहीं है, तो इसे चालू करें:
    1. पेज पर सबसे ऊपर, लाइब्रेरी टैब दिखाने के लिए, चालू करें एपीआई चुनें. इसके अलावा, बाईं ओर दिए गए मेन्यू से, लाइब्रेरी चुनें.
    2. एलिवेशन एपीआई खोजें, फिर नतीजों की सूची में से उसे चुनें.
    3. चालू करें को चुनें. प्रोसेस खत्म होने के बाद, डैशबोर्ड पर एपीआई की सूची में एलिवेशन एपीआई दिखता है.

कीमत और नीतियां

कीमत

16 जुलाई, 2018 से मैप पर पैसे चुकाने के तरीके, रास्ते और जगहें, के लिए पैसे चुकाने के तरीके वाला नया प्लान लागू हो गया है. JavaScript ऊंचाई की सेवा के इस्तेमाल के लिए, नई कीमत और इस्तेमाल की सीमाओं के बारे में ज़्यादा जानने के लिए, ऊंचाई से जुड़े एपीआई के इस्तेमाल और बिलिंग देखें.

नीतियां

ऊंचाई से जुड़ी सेवा का इस्तेमाल, ऊंचा करने की सुविधा से जुड़े एपीआई के लिए बताई गई नीतियों के मुताबिक होना चाहिए.

ऊंचाई के लिए अनुरोध

ऊंचाई बताने वाली सेवा का इस्तेमाल नहीं किया जा सकता, क्योंकि Google Maps API को बाहरी सर्वर पर कॉल करना होता है. इसी वजह से, आपको अनुरोध पूरा होने पर एक कॉलबैक तरीका पास करना होगा. कॉलबैक के इस तरीके से, नतीजों को प्रोसेस किया जाना चाहिए. ध्यान दें कि एलिवेशन सर्विस, स्टेटस कोड (ElevationStatus) और ElevationResult ऑब्जेक्ट की कैटगरी दिखाती है.

ElevationService दो तरह के अनुरोधों को हैंडल करता है:

  • LocationElevationRequest तरीके का इस्तेमाल करके, एक या उससे ज़्यादा जगहों की सूची पास की गई है. इसके लिए, getElevationForLocations() तरीके का इस्तेमाल किया गया है. इसमें अलग-अलग जगहों के लिए अनुरोध किया गया है.
  • getElevationAlongPath() तरीके का इस्तेमाल करके, पाथ के साथ जुड़े हुए पॉइंट की सीरीज़ पर एलिवेशन के अनुरोध. इन्हें PathElevationRequest ऑब्जेक्ट में, क्रम में लगाने के लिए पोस्ट के क्रम में पास किया जाता है. पाथ के साथ ऊंचाई का अनुरोध करते समय, आपको एक पैरामीटर भी पास करना होगा. इससे यह पता चलेगा कि आप उस पाथ पर कितने सैंपल लेना चाहते हैं.

लौटाए गए ElevationResult और ElevationStatus ऑब्जेक्ट को मैनेज करने के लिए, इन सभी तरीकों में कॉलबैक का तरीका भी पास होना चाहिए.

जगह की जानकारी को बेहतर करने के अनुरोध

LocationElevationRequest ऑब्जेक्ट लिटरल में ये फ़ील्ड शामिल हैं:

{
  locations[]: LatLng
}

locations (ज़रूरी है) पृथ्वी पर उस जगह की जानकारी देता है जहां से ऊंचाई का डेटा दिखाना है. यह पैरामीटर, LatLng की कैटगरी का इस्तेमाल करता है.

अगर आप सेवा कोटा को पार नहीं करते हैं, तो आप किसी कैटगरी में एक से ज़्यादा निर्देशांक पास कर सकते हैं. ध्यान दें, एक से ज़्यादा निर्देशांक पास करने पर, लौटाए गए किसी भी डेटा का सटीक होना, एक निर्देशांक के लिए डेटा का अनुरोध करने के रिज़ॉल्यूशन से कम हो सकता है.

पाथ बढ़ाने के सैंपल का अनुरोध

PathElevationRequest ऑब्जेक्ट लिटरल में ये फ़ील्ड होते हैं:

{
  path[]: LatLng,
  samples: Number
}

इन फ़ील्ड के बारे में यहां बताया गया है:

  • path (ज़रूरी है) पृथ्वी पर एक रास्ता बताता है जिसके लिए ऊंचाई का डेटा देना होता है. path पैरामीटर, दो या उससे ज़्यादा क्रम में लगाए गए {अक्षांश, देशांतर} पेयर के सेट के बारे में बताता है. इसके लिए, दो या उससे ज़्यादा LatLng ऑब्जेक्ट की कैटगरी का इस्तेमाल किया जाता है.
  • samples (ज़रूरी है) पाथ के साथ सैंपल पॉइंट की संख्या बताता है, जिसके लिए ऊंचाई का डेटा दिखाना होता है. samples पैरामीटर, दिए गए path को, पाथ के बराबर बिंदुओं के क्रम में बांटता है.

पोज़िशनल अनुरोधों की तरह ही, path पैरामीटर भी अक्षांश और देशांतर वैल्यू का सेट तय करता है. हालांकि, पोज़िशनल अनुरोध के उलट, path वर्टेक्स के क्रम वाला सेट बताता है. किनारों पर ऊंचाई से जुड़े डेटा को दिखाने के बजाय, पाथ के अनुरोधों को पाथ के साथ-साथ सैंपल किया जाता है. इस सैंपल में, हर सैंपल एक-दूसरे से बराबर होता है (इसमें एंडपॉइंट भी शामिल हैं).

एलिवेशन रिस्पॉन्स

हर मान्य अनुरोध के लिए, ऊंचाई बताने वाली सेवा, तय ऑब्जेक्ट पर ElevationStatus ऑब्जेक्ट के साथ ElevationResult ऑब्जेक्ट का सेट दिखाएगी.

ऊंचाई की स्थितियां

हर ऊंचाई का अनुरोध, अपने कॉलबैक फ़ंक्शन में एक ElevationStatus कोड दिखाता है. इस status कोड में इनमें से कोई एक वैल्यू होगी:

  • OK बताता है कि सेवा का अनुरोध पूरा हो गया है
  • INVALID_REQUEST बताता है कि सेवा का अनुरोध गलत है
  • OVER_QUERY_LIMIT से पता चलता है कि अनुरोध करने वाले ने कोटा पार कर लिया है
  • REQUEST_DENIED यह बताता है कि सेवा ने अनुरोध पूरा नहीं किया. ऐसा शायद अमान्य पैरामीटर की वजह से हुआ
  • UNKNOWN_ERROR गड़बड़ी की जानकारी देता है

OK के इस स्टेटस कोड की जांच करके, आपको यह पता करना चाहिए कि आपका कॉलबैक पूरा हुआ या नहीं.

एलिवेशन से जुड़े नतीजे

सफल होने पर, आपके कॉलबैक फ़ंक्शन के results आर्ग्युमेंट में ElevationResult ऑब्जेक्ट का एक सेट होगा. इन ऑब्जेक्ट में ये एलिमेंट शामिल हैं:

  • उस पोज़िशन का location एलिमेंट (जिसमें LatLng ऑब्जेक्ट होते हैं) जिसकी ऊंचाई का डेटा कैलकुलेट किया जा रहा है. ध्यान दें कि पाथ के अनुरोधों के लिए, location एलिमेंट के सेट में पाथ के साथ सैंपल किए गए पॉइंट होंगे.
  • मीटर में जगह की ऊंचाई बताने वाला elevation एलिमेंट.
  • एक resolution वैल्यू, जो उन डेटा पॉइंट के बीच ज़्यादा से ज़्यादा दूरी को दिखाती है जहां से ऊंचाई इंटरपोलेट की गई थी. अगर रिज़ॉल्यूशन नहीं पता है, तो यह प्रॉपर्टी मौजूद नहीं होगी. ध्यान दें कि एक से ज़्यादा पॉइंट पास होने पर, ऊंचाई का डेटा ज़्यादा ठीक (resolution वैल्यू का बड़ा) हो जाता है. किसी पॉइंट की सबसे सटीक ऊंचाई वैल्यू पाने के लिए, उसे अलग-अलग क्वेरी की जानी चाहिए.

ऊंचाई से जुड़े उदाहरण

यह कोड, LocationElevationRequest ऑब्जेक्ट का इस्तेमाल करके मैप पर हुए क्लिक को ऊंचाई के अनुरोध में बदलता है:

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 63.333, lng: -150.5 }, // Denali.
      mapTypeId: "terrain",
    }
  );
  const elevator = new google.maps.ElevationService();
  const infowindow = new google.maps.InfoWindow({});

  infowindow.open(map);

  // Add a listener for the click event. Display the elevation for the LatLng of
  // the click inside the infowindow.
  map.addListener("click", (event) => {
    displayLocationElevation(event.latLng, elevator, infowindow);
  });
}

function displayLocationElevation(
  location: google.maps.LatLng,
  elevator: google.maps.ElevationService,
  infowindow: google.maps.InfoWindow
) {
  // Initiate the location request
  elevator
    .getElevationForLocations({
      locations: [location],
    })
    .then(({ results }) => {
      infowindow.setPosition(location);

      // Retrieve the first result
      if (results[0]) {
        // Open the infowindow indicating the elevation at the clicked position.
        infowindow.setContent(
          "The elevation at this point <br>is " +
            results[0].elevation +
            " meters."
        );
      } else {
        infowindow.setContent("No results found");
      }
    })
    .catch((e) =>
      infowindow.setContent("Elevation service failed due to: " + e)
    );
}

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

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 63.333, lng: -150.5 },
    mapTypeId: "terrain",
  });
  const elevator = new google.maps.ElevationService();
  const infowindow = new google.maps.InfoWindow({});

  infowindow.open(map);
  // Add a listener for the click event. Display the elevation for the LatLng of
  // the click inside the infowindow.
  map.addListener("click", (event) => {
    displayLocationElevation(event.latLng, elevator, infowindow);
  });
}

function displayLocationElevation(location, elevator, infowindow) {
  // Initiate the location request
  elevator
    .getElevationForLocations({
      locations: [location],
    })
    .then(({ results }) => {
      infowindow.setPosition(location);
      // Retrieve the first result
      if (results[0]) {
        // Open the infowindow indicating the elevation at the clicked position.
        infowindow.setContent(
          "The elevation at this point <br>is " +
            results[0].elevation +
            " meters."
        );
      } else {
        infowindow.setContent("No results found");
      }
    })
    .catch((e) =>
      infowindow.setContent("Elevation service failed due to: " + e)
    );
}

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

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

नीचे दिए गए उदाहरण में, निर्देशांकों के एक सेट को दी गई पॉलीलाइन को बनाया गया है. साथ ही, Google विज़ुअलाइज़ेशन एपीआई का इस्तेमाल करके, उस पाथ पर मौजूद ऊंचाई का डेटा दिखाया जाता है. (आपको Google API लोडर का इस्तेमाल करके इस एपीआई को लोड करना चाहिए.) ऊंचाई का अनुरोध करने के लिए, PathElevationRequest का इस्तेमाल किया जाता है:

TypeScript

// Load the Visualization API and the columnchart package.
// @ts-ignore TODO update to newest visualization library
google.load("visualization", "1", { packages: ["columnchart"] });

function initMap(): void {
  // The following path marks a path from Mt. Whitney, the highest point in the
  // continental United States to Badwater, Death Valley, the lowest point.
  const path = [
    { lat: 36.579, lng: -118.292 }, // Mt. Whitney
    { lat: 36.606, lng: -118.0638 }, // Lone Pine
    { lat: 36.433, lng: -117.951 }, // Owens Lake
    { lat: 36.588, lng: -116.943 }, // Beatty Junction
    { lat: 36.34, lng: -117.468 }, // Panama Mint Springs
    { lat: 36.24, lng: -116.832 },
  ]; // Badwater, Death Valley

  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: path[1],
      mapTypeId: "terrain",
    }
  );

  // Create an ElevationService.
  const elevator = new google.maps.ElevationService();

  // Draw the path, using the Visualization API and the Elevation service.
  displayPathElevation(path, elevator, map);
}

function displayPathElevation(
  path: google.maps.LatLngLiteral[],
  elevator: google.maps.ElevationService,
  map: google.maps.Map
) {
  // Display a polyline of the elevation path.
  new google.maps.Polyline({
    path: path,
    strokeColor: "#0000CC",
    strokeOpacity: 0.4,
    map: map,
  });

  // Create a PathElevationRequest object using this array.
  // Ask for 256 samples along that path.
  // Initiate the path request.
  elevator
    .getElevationAlongPath({
      path: path,
      samples: 256,
    })
    .then(plotElevation)
    .catch((e) => {
      const chartDiv = document.getElementById(
        "elevation_chart"
      ) as HTMLElement;

      // Show the error code inside the chartDiv.
      chartDiv.innerHTML = "Cannot show elevation: request failed because " + e;
    });
}

// Takes an array of ElevationResult objects, draws the path on the map
// and plots the elevation profile on a Visualization API ColumnChart.
function plotElevation({ results }: google.maps.PathElevationResponse) {
  const chartDiv = document.getElementById("elevation_chart") as HTMLElement;

  // Create a new chart in the elevation_chart DIV.
  const chart = new google.visualization.ColumnChart(chartDiv);

  // Extract the data from which to populate the chart.
  // Because the samples are equidistant, the 'Sample'
  // column here does double duty as distance along the
  // X axis.
  const data = new google.visualization.DataTable();

  data.addColumn("string", "Sample");
  data.addColumn("number", "Elevation");

  for (let i = 0; i < results.length; i++) {
    data.addRow(["", results[i].elevation]);
  }

  // Draw the chart using the data within its DIV.
  chart.draw(data, {
    height: 150,
    legend: "none",
    // @ts-ignore TODO update to newest visualization library
    titleY: "Elevation (m)",
  });
}

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

JavaScript

// Load the Visualization API and the columnchart package.
// @ts-ignore TODO update to newest visualization library
google.load("visualization", "1", { packages: ["columnchart"] });

function initMap() {
  // The following path marks a path from Mt. Whitney, the highest point in the
  // continental United States to Badwater, Death Valley, the lowest point.
  const path = [
    { lat: 36.579, lng: -118.292 },
    { lat: 36.606, lng: -118.0638 },
    { lat: 36.433, lng: -117.951 },
    { lat: 36.588, lng: -116.943 },
    { lat: 36.34, lng: -117.468 },
    { lat: 36.24, lng: -116.832 },
  ]; // Badwater, Death Valley
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: path[1],
    mapTypeId: "terrain",
  });
  // Create an ElevationService.
  const elevator = new google.maps.ElevationService();

  // Draw the path, using the Visualization API and the Elevation service.
  displayPathElevation(path, elevator, map);
}

function displayPathElevation(path, elevator, map) {
  // Display a polyline of the elevation path.
  new google.maps.Polyline({
    path: path,
    strokeColor: "#0000CC",
    strokeOpacity: 0.4,
    map: map,
  });
  // Create a PathElevationRequest object using this array.
  // Ask for 256 samples along that path.
  // Initiate the path request.
  elevator
    .getElevationAlongPath({
      path: path,
      samples: 256,
    })
    .then(plotElevation)
    .catch((e) => {
      const chartDiv = document.getElementById("elevation_chart");

      // Show the error code inside the chartDiv.
      chartDiv.innerHTML = "Cannot show elevation: request failed because " + e;
    });
}

// Takes an array of ElevationResult objects, draws the path on the map
// and plots the elevation profile on a Visualization API ColumnChart.
function plotElevation({ results }) {
  const chartDiv = document.getElementById("elevation_chart");
  // Create a new chart in the elevation_chart DIV.
  const chart = new google.visualization.ColumnChart(chartDiv);
  // Extract the data from which to populate the chart.
  // Because the samples are equidistant, the 'Sample'
  // column here does double duty as distance along the
  // X axis.
  const data = new google.visualization.DataTable();

  data.addColumn("string", "Sample");
  data.addColumn("number", "Elevation");

  for (let i = 0; i < results.length; i++) {
    data.addRow(["", results[i].elevation]);
  }

  // Draw the chart using the data within its DIV.
  chart.draw(data, {
    height: 150,
    legend: "none",
    // @ts-ignore TODO update to newest visualization library
    titleY: "Elevation (m)",
  });
}

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

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