खास जानकारी
मैप शुरू करते समय, heading
और tilt
प्रॉपर्टी को शामिल करके और मैप पर setTilt
और setHeading
तरीकों को कॉल करके, वेक्टर मैप पर हेडिंग झुकाने और घुमाने (हेडिंग) की सुविधा सेट की जा सकती है. इस उदाहरण में, मैप में कुछ बटन जोड़े गए हैं. ये बटन 20 डिग्री के हिसाब से, प्रोग्राम के हिसाब से झुकाने की सुविधा और शीर्षक को दिखाते हैं.
TypeScript
function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: { lat: 37.7893719, lng: -122.3942, }, zoom: 16, heading: 320, tilt: 47.5, mapId: "90f87356969d889c", } ); const buttons: [string, string, number, google.maps.ControlPosition][] = [ ["Rotate Left", "rotate", 20, google.maps.ControlPosition.LEFT_CENTER], ["Rotate Right", "rotate", -20, google.maps.ControlPosition.RIGHT_CENTER], ["Tilt Down", "tilt", 20, google.maps.ControlPosition.TOP_CENTER], ["Tilt Up", "tilt", -20, google.maps.ControlPosition.BOTTOM_CENTER], ]; buttons.forEach(([text, mode, amount, position]) => { const controlDiv = document.createElement("div"); const controlUI = document.createElement("button"); controlUI.classList.add("ui-button"); controlUI.innerText = `${text}`; controlUI.addEventListener("click", () => { adjustMap(mode, amount); }); controlDiv.appendChild(controlUI); map.controls[position].push(controlDiv); }); const adjustMap = function (mode: string, amount: number) { switch (mode) { case "tilt": map.setTilt(map.getTilt()! + amount); break; case "rotate": map.setHeading(map.getHeading()! + amount); break; default: break; } }; } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { center: { lat: 37.7893719, lng: -122.3942, }, zoom: 16, heading: 320, tilt: 47.5, mapId: "90f87356969d889c", }); const buttons = [ ["Rotate Left", "rotate", 20, google.maps.ControlPosition.LEFT_CENTER], ["Rotate Right", "rotate", -20, google.maps.ControlPosition.RIGHT_CENTER], ["Tilt Down", "tilt", 20, google.maps.ControlPosition.TOP_CENTER], ["Tilt Up", "tilt", -20, google.maps.ControlPosition.BOTTOM_CENTER], ]; buttons.forEach(([text, mode, amount, position]) => { const controlDiv = document.createElement("div"); const controlUI = document.createElement("button"); controlUI.classList.add("ui-button"); controlUI.innerText = `${text}`; controlUI.addEventListener("click", () => { adjustMap(mode, amount); }); controlDiv.appendChild(controlUI); map.controls[position].push(controlDiv); }); const adjustMap = function (mode, amount) { switch (mode) { case "tilt": map.setTilt(map.getTilt() + amount); break; case "rotate": map.setHeading(map.getHeading() + amount); break; default: break; } }; } window.initMap = initMap;
सीएसएस
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } .ui-button { background-color: #fff; border: 0; border-radius: 2px; box-shadow: 0 1px 4px -1px rgba(0, 0, 0, 0.3); margin: 10px; padding: 0 0.5em; font: 400 18px Roboto, Arial, sans-serif; overflow: hidden; height: 40px; cursor: pointer; } .ui-button:hover { background: rgb(235, 235, 235); }
एचटीएमएल
<html> <head> <title>Tilt and Rotation</title> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <div id="map"></div> <!-- The `defer` attribute causes the script to execute after the full HTML document has been parsed. For non-blocking uses, avoiding race conditions, and consistent behavior across browsers, consider loading using Promises. See https://developers.google.com/maps/documentation/javascript/load-maps-js-api for more information. --> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly" defer ></script> </body> </html>
सैंपल आज़माएं
माउस और कीबोर्ड के जेस्चर का इस्तेमाल करना
अगर प्रोग्राम के हिसाब से या Google Cloud Console में जाकर, झुकाव और घुमाव (हेडिंग) के लिए उपयोगकर्ता इंटरैक्शन की सुविधा चालू की गई है, तो उपयोगकर्ता माउस और कीबोर्ड का इस्तेमाल करके झुकाव और घुमाव में बदलाव कर सकते हैं:
- माउस का इस्तेमाल करके, Shift बटन को दबाकर रखें. इसके बाद, झुकाव में बदलाव करने के लिए माउस को ऊपर और नीचे क्लिक करके खींचें और छोड़ें. हेडिंग में बदलाव करने के लिए, माउस को दाईं और बाईं ओर क्लिक करके खींचें और छोड़ें.
- कीबोर्ड का इस्तेमाल करके, Shift बटन को दबाकर रखें, फिर झुकाव को अडजस्ट करने के लिए अप और डाउन ऐरो बटन का इस्तेमाल करें. साथ ही, हेडिंग को अडजस्ट करने के लिए राइट और लेफ़्ट ऐरो का इस्तेमाल करें.
प्रोग्राम के हिसाब से झुकाव और हेडिंग में बदलाव करना
वेक्टर मैप पर झुकाव और हेडिंग को प्रोग्राम के हिसाब से अडजस्ट करने के लिए, setTilt()
और setHeading()
तरीकों का इस्तेमाल करें. हेडिंग वह दिशा है जिसमें कैमरे उत्तर की दिशा में घड़ी की सुई की दिशा में है और map.setHeading(90)
मैप को घुमाएगा, ताकि पूर्व दिशा ऊपर की ओर रहे. झुकाव का कोण सबसे ऊपर की ओर से मापा जाता है. इसलिए, map.setTilt(0)
सीधे नीचे की ओर देख रहा है, जबकि map.setTilt(45)
तिरछा व्यू देगा.
- मैप का झुकाव कोण सेट करने के लिए
setTilt()
पर कॉल करें. झुकाव की मौजूदा वैल्यू पाने के लिए,getTilt()
का इस्तेमाल करें. - मैप का शीर्षक सेट करने के लिए
setHeading()
पर कॉल करें. हेडिंग की मौजूदा वैल्यू पाने के लिए,getHeading()
का इस्तेमाल करें.
झुकाव और हेडिंग को बनाए रखते हुए, मैप के बीच में मौजूद जगह को बदलने के लिए,
map.setCenter()
या map.panBy()
का इस्तेमाल करें.
ध्यान दें कि इस्तेमाल किए जा सकने वाले ऐंगल की रेंज, मौजूदा ज़ूम लेवल के हिसाब से अलग-अलग होती है. इस सीमा से बाहर की वैल्यू, मौजूदा अनुमति वाली सीमा में शामिल की जाएगी.
हेडिंग, टिल्ट, सेंटर, और ज़ूम को प्रोग्राम के हिसाब से बदलने के लिए, moveCamera
तरीके का इस्तेमाल भी किया जा सकता है. ज़्यादा जानें.
अन्य तरीकों पर असर
मैप पर झुकाव या घुमाव लागू करने पर, Maps JavaScript API के अन्य तरीकों के व्यवहार पर असर पड़ता है:
map.getBounds()
हमेशा सबसे छोटा बाउंडिंग बॉक्स दिखाता है, जिसमें दिखने वाला क्षेत्र शामिल होता है. जब झुकाव लागू किया जाता है, तो नतीजे के तौर पर दिखाई गई बाउंड, मैप के व्यूपोर्ट के दिखने वाले क्षेत्र से बड़े क्षेत्र को दिखा सकती हैं.map.fitBounds()
, सीमाओं को फ़िट करने से पहले, झुकाव और हेडिंग को शून्य पर रीसेट कर देगा.- बाउंड को पैन करने से पहले,
map.panToBounds()
झुकाव और हेडिंग को रीसेट करके शून्य पर सेट कर देगा. map.setTilt()
कोई भी वैल्यू स्वीकार करता है, लेकिन मैप के मौजूदा ज़ूम लेवल के आधार पर ज़्यादा से ज़्यादा झुकाव को सीमित करता है.map.setHeading()
किसी भी वैल्यू को स्वीकार करता है और उसे [0, 360] की रेंज में फ़िट करने के लिए बदल देगा.