खास जानकारी
ऊंचाई से जुड़ी सेवा, धरती की सतह पर मौजूद जगहों की ऊंचाई से जुड़ा डेटा उपलब्ध कराती है. इसमें, समुद्र के तल पर गहराई की उन जगहों की जानकारी भी शामिल होती है जहां नेगेटिव वैल्यू मिलती है. ऐसी स्थितियों में, जहां Google आपके अनुरोध किए गए सटीक जगह पर ऊंचाई की सटीक माप नहीं रखता है, वहां सेवा आस-पास के चार जगहों की जानकारी का इस्तेमाल करके, एक औसत वैल्यू दिखाएगा.
ElevationService
ऑब्जेक्ट,
आपको धरती पर ऊंचाई से जुड़े डेटा को खोजने के लिए एक आसान इंटरफ़ेस देता है. साथ ही, आप पाथ के साथ-साथ ऊंचाई के डेटा के नमूनों का अनुरोध कर सकते हैं. इससे आप रास्तों के साथ-साथ ऊंचाई के डेटा का हिसाब लगा सकते हैं. ElevationService
ऑब्जेक्ट,
Google Maps API एलिवेशन सर्विस के साथ काम करता है
जिसके लिए, एलिवेशन रिक्वेस्ट की सुविधा मिलती है.
ऊंचाई बताने वाली सेवा की मदद से, हाइकिंग और बाइकिंग के ऐप्लिकेशन, मोबाइल पोज़िशनिंग ऐप्लिकेशन या कम रिज़ॉल्यूशन के सर्वे के ऐप्लिकेशन बनाए जा सकते हैं.
शुरू करना
Maps JavaScript एपीआई में ऊंचाई बताने वाली सेवा का इस्तेमाल करने से पहले, पक्का करें कि Google Cloud Console में वही एपीआई चालू हो जो आपने Maps JavaScript एपीआई के लिए सेट अप किया है.
चालू किए गए एपीआई की सूची देखने के लिए:
- Google Cloud Console पर जाएं.
- प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript एपीआई के लिए सेट अप किया है. इसके बाद, खोलें पर क्लिक करें.
- डैशबोर्ड पर एपीआई की सूची में, Elevation API देखें.
- अगर आपको सूची में एपीआई दिखता है, तो आप पूरी तरह से तैयार हैं. अगर एपीआई सूची में नहीं है, तो
इसे चालू करें:
- पेज पर सबसे ऊपर, लाइब्रेरी टैब दिखाने के लिए, एपीआई चालू करें चुनें. इसके अलावा, बाईं ओर दिए गए मेन्यू से, लाइब्रेरी चुनें.
- Elevation API खोजें, फिर नतीजों की सूची से इसे चुनें.
- चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर Elevation API, एपीआई की सूची में दिखता है.
कीमत और नीतियां
कीमत
16 जुलाई, 2018 से 'मैप', 'रास्ते' और 'जगहों' के लिए, इस्तेमाल के मुताबिक पैसे चुकाने का नया प्लान शुरू हो गया. 'JavaScript एलिवेशन सेवा' के आपके इस्तेमाल के लिए तय की गई नई कीमत और इस्तेमाल की सीमाओं के बारे में ज़्यादा जानने के लिए, एलिवेशन एपीआई का इस्तेमाल और बिलिंग देखें.
नीतियां
Elevation सेवा का इस्तेमाल, Elevation API के लिए बताई गई नीतियों के मुताबिक होना चाहिए.
खोज नतीजों में कॉन्टेंट हटाने के अनुरोध
ऊंचाई बताने वाली सेवा ऐक्सेस नहीं की जा सकती, क्योंकि
Google Maps API को किसी बाहरी सर्वर को कॉल करना होगा. इसलिए, अनुरोध पूरा होने पर, आपको एक कॉलबैक तरीका पास करना होगा. इस
कॉलबैक तरीके को, नतीजों को प्रोसेस करना चाहिए. ध्यान दें कि
एलिवेशन सेवा एक स्टेटस कोड (ElevationStatus
)
और अलग-अलग ElevationResult
ऑब्जेक्ट की श्रेणी
दिखाती है.
ElevationService
दो तरह के अनुरोधों को मैनेज करता है:
getElevationForLocations()
तरीके का इस्तेमाल करके अलग-अलग, अलग-अलग जगहों के लिए अनुरोध, जिन्हेंLocationElevationRequest
ऑब्जेक्ट का इस्तेमाल करके एक या एक से ज़्यादा जगहों की सूची में पास किया गया है.getElevationAlongPath()
तरीके का इस्तेमाल करके, पाथ पर कनेक्ट किए गए पॉइंट की सीरीज़ पर ऊंचाई के अनुरोध, जिन्हेंPathElevationRequest
ऑब्जेक्ट में पाथ वर्टेक्स के क्रम में लगाया गया है. पाथ पर ऊंचाई का अनुरोध करते समय, आपको एक पैरामीटर भी पास करना होगा. इससे यह पता चलेगा कि उस पाथ पर आप कितने सैंपल लेना चाहते हैं.
लौटाए गए ElevationResult
और ElevationStatus
ऑब्जेक्ट को मैनेज करने के लिए, इन तरीकों में से, किसी कॉलबैक का तरीका भी पास किया जाना चाहिए.
जगह की जानकारी को बढ़ाने के अनुरोध
LocationElevationRequest
ऑब्जेक्ट लिटरल में
यह फ़ील्ड शामिल होता है:
{ locations[]: LatLng }
locations
(ज़रूरी है) पृथ्वी पर मौजूद जगह(जगहों) की जानकारी देता है, जहां से ऊंचाई का डेटा दिखाया जाना चाहिए. यह पैरामीटर LatLng
की कैटगरी लेता है.
जब तक आप सेवा कोटे को पार नहीं करते, तब तक आप किसी क्रम में एक से ज़्यादा कोऑर्डिनेट पास कर सकते हैं. ध्यान दें कि एक से ज़्यादा निर्देशांक पास करने पर, किसी एक कोऑर्डिनेट के लिए डेटा का अनुरोध करने के मुकाबले, दिए गए किसी भी डेटा का सटीक रिज़ॉल्यूशन कम हो सकता है.
सैंपल एलिवेशन अनुरोध
PathElevationRequest
ऑब्जेक्ट लिटरल में
ये फ़ील्ड शामिल हैं:
{ path[]: LatLng, samples: Number }
इन फ़ील्ड के बारे में नीचे बताया गया है:
path
(ज़रूरी है) पृथ्वी पर मौजूद ऐसा पाथ बताता है जिसके लिए ऊंचाई का डेटा देना होता है.path
पैरामीटर दो या ज़्यादाLatLng
ऑब्जेक्ट की कैटगरी का इस्तेमाल करके, दो या उससे ज़्यादा क्रम वाले {Latitude,देशांतर} जोड़ों के सेट के बारे में बताता है.samples
(ज़रूरी है) पाथ के साथ सैंपल पॉइंट की संख्या बताता है जिसके लिए ऊंचाई का डेटा देना होता है.samples
पैरामीटर, दिए गएpath
को पाथ के साथ-साथ बराबर के पॉइंट में सेट करता है.
पोज़िशनल अनुरोधों की तरह, path
पैरामीटर भी अक्षांश और देशांतर वैल्यू के सेट के बारे में बताता है. हालांकि, पोज़िशनल अनुरोध से उलट, path
, कोनों की एक व्यवस्थित सेट के बारे में बताता है. ऊपरी हिस्से में ऊंचाई के डेटा को दिखाने के बजाय, पाथ के अनुरोधों को पाथ की लंबाई के साथ सैंपल किया जाता है. इस पाथ में हर सैंपल एक-दूसरे से बराबर होता है (इसमें एंडपॉइंट भी शामिल हैं).
एलिवेशन रिस्पॉन्स
हर मान्य अनुरोध के लिए, एलिवेशन सेवा तय किए गए कॉलबैक पर वापस लौटेगी, जिसमें ElevationResult
ऑब्जेक्ट के साथ ElevationStatus
ऑब्जेक्ट का सेट होगा.
ऊंचाई की स्थितियां
हर एलिवेशन अनुरोध अपने कॉलबैक फ़ंक्शन में एक 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;