- खास जानकारी
- लाइब्रेरी का इस्तेमाल करना
- DrawingManager के विकल्प
- ड्राइंग टूल कंट्रोल को अपडेट करना
- ड्रॉइंग इवेंट
खास जानकारी
DrawingManager
क्लास, उपयोगकर्ताओं को ग्राफ़िकल इंटरफ़ेस उपलब्ध कराता है. इसकी मदद से, वे मैप पर पॉलीगॉन, रेक्टैंगल, पॉलीलाइन, सर्कल, और मार्कर बना सकते हैं.
लाइब्रेरी का इस्तेमाल करना
ड्रॉइंग टूल, एक अलग लाइब्रेरी है. यह Maps API के मुख्य JavaScript कोड से अलग होती है. इस लाइब्रेरी में मौजूद फ़ंक्शन का इस्तेमाल करने के लिए, आपको इसे सबसे पहले Maps API के बूटस्ट्रैप यूआरएल में libraries
पैरामीटर का इस्तेमाल करके लोड करना होगा:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=drawing&callback=initMap">
</script>
लाइब्रेरी पैरामीटर जोड़ने के बाद, यहां दिए गए तरीके से DrawingManager
ऑब्जेक्ट बनाया जा सकता है:
var drawingManager = new google.maps.drawing.DrawingManager(); drawingManager.setMap(map);
DrawingManager के विकल्प
DrawingManager
कंस्ट्रक्टर, विकल्पों का एक सेट लेता है. इससे यह तय होता है कि कौनसे कंट्रोल दिखाने हैं, कंट्रोल की पोज़िशन क्या होगी, और शुरुआती ड्राइंग की स्थिति क्या होगी.
DrawingManager
कीdrawingMode
प्रॉपर्टी, DrawingManager की शुरुआती ड्राइंग की स्थिति तय करती है. यहgoogle.maps.drawing.OverlayType
कॉन्स्टेंट स्वीकार करता है. डिफ़ॉल्ट वैल्यूnull
होती है. इस मामले में, DrawingManager के शुरू होने पर कर्सर, ड्रॉइंग मोड में नहीं होता है.DrawingManager
कीdrawingControl
प्रॉपर्टी, मैप पर ड्राइंग टूल चुनने के इंटरफ़ेस के दिखने की स्थिति तय करती है. यह बूलियन वैल्यू स्वीकार करता है.DrawingManager
कीdrawingControlOptions
प्रॉपर्टी का इस्तेमाल करके, कंट्रोल की पोज़िशन और कंट्रोल में दिखाए जाने वाले ओवरले के टाइप भी तय किए जा सकते हैं.position
, मैप पर ड्रॉइंग कंट्रोल की जगह तय करता है. साथ ही, यहgoogle.maps.ControlPosition
कॉन्स्टेंट को स्वीकार करता है.drawingModes
,google.maps.drawing.OverlayType
कॉन्स्टेंट का कलेक्शन है. साथ ही, यह उन ओवरले टाइप के बारे में बताता है जिन्हें ड्राइंग कंट्रोल शेप पिकर में शामिल करना है. हाथ का आइकॉन हमेशा मौजूद रहेगा. इससे उपयोगकर्ता, मैप पर बिना कुछ बनाए इंटरैक्ट कर पाएगा. कंट्रोल में मौजूद टूल का क्रम, उस क्रम से मेल खाएगा जिसमें उन्हें ऐरे में शामिल किया गया है.
- हर तरह के ओवरले को डिफ़ॉल्ट प्रॉपर्टी का एक सेट असाइन किया जा सकता है. इससे यह तय होता है कि पहली बार बनाए जाने पर ओवरले कैसा दिखेगा. इन्हें उस ओवरले की
{overlay}Options
प्रॉपर्टी में तय किया जाता है. यहां{overlay}
, ओवरले टाइप को दिखाता है. उदाहरण के लिए, किसी सर्कल की फ़िल प्रॉपर्टी, स्ट्रोक प्रॉपर्टी, zIndex, और क्लिक करने की सुविधा कोcircleOptions
प्रॉपर्टी की मदद से तय किया जा सकता है. अगर कोई साइज़, जगह या मैप वैल्यू पास की जाती है, तो उन्हें अनदेखा कर दिया जाता है. कौनसी प्रॉपर्टी सेट की जा सकती हैं, इसकी पूरी जानकारी के लिए एपीआई के रेफ़रंस से जुड़े दस्तावेज़ देखें.
ध्यान दें: किसी शेप को बनाने के बाद, उसे उपयोगकर्ता के हिसाब से बदलाव करने की सुविधा देने के लिए, उसकी editable
प्रॉपर्टी को true
पर सेट करें.
TypeScript
// This example requires the Drawing library. Include the libraries=drawing // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=drawing"> function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { center: { lat: -34.397, lng: 150.644 }, zoom: 8, } ); const drawingManager = new google.maps.drawing.DrawingManager({ drawingMode: google.maps.drawing.OverlayType.MARKER, drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.POLYLINE, google.maps.drawing.OverlayType.RECTANGLE, ], }, markerOptions: { icon: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png", }, circleOptions: { fillColor: "#ffff00", fillOpacity: 1, strokeWeight: 5, clickable: false, editable: true, zIndex: 1, }, }); drawingManager.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example requires the Drawing library. Include the libraries=drawing // parameter when you first load the API. For example: // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=drawing"> function initMap() { const map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); const drawingManager = new google.maps.drawing.DrawingManager({ drawingMode: google.maps.drawing.OverlayType.MARKER, drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: [ google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON, google.maps.drawing.OverlayType.POLYLINE, google.maps.drawing.OverlayType.RECTANGLE, ], }, markerOptions: { icon: "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png", }, circleOptions: { fillColor: "#ffff00", fillOpacity: 1, strokeWeight: 5, clickable: false, editable: true, zIndex: 1, }, }); drawingManager.setMap(map); } window.initMap = initMap;
सैंपल आज़माएं
ड्रॉइंग टूल कंट्रोल को अपडेट करना
DrawingManager
ऑब्जेक्ट बन जाने के बाद, इसे अपडेट किया जा सकता है. इसके लिए, setOptions()
को कॉल करें और नई वैल्यू पास करें.
drawingManager.setOptions({ drawingControlOptions: { position: google.maps.ControlPosition.BOTTOM_LEFT, drawingModes: ['marker'] } });
ड्राइंग टूल कंट्रोल को छिपाने या दिखाने के लिए:
// To hide: drawingManager.setOptions({ drawingControl: false }); // To show: drawingManager.setOptions({ drawingControl: true });
map
ऑब्जेक्ट से ड्राइंग टूल कंट्रोल हटाने के लिए:
drawingManager.setMap(null);
ड्राइंग कंट्रोल को छिपाने पर, ड्राइंग टूल कंट्रोल नहीं दिखता. हालांकि, DrawingManager
क्लास की सभी सुविधाएं अब भी उपलब्ध होती हैं.
इस तरह, आपके पास अपने हिसाब से कंट्रोल करने का विकल्प होता है. map
ऑब्जेक्ट से DrawingManager
को हटाने पर, ड्रॉइंग की सभी सुविधाएं बंद हो जाती हैं. अगर ड्रॉइंग की सुविधाओं को वापस लाना है, तो इसे drawingManager.setMap(map)
की मदद से मैप में फिर से जोड़ना होगा या एक नया DrawingManager
ऑब्जेक्ट बनाना होगा.
ड्रॉइंग इवेंट
जब कोई शेप ओवरले बनाया जाता है, तो दो इवेंट ट्रिगर होते हैं:
{overlay}complete
इवेंट (इसमें{overlay}
, ओवरले टाइप को दिखाता है. जैसे,circlecomplete
,polygoncomplete
वगैरह). ओवरले का रेफ़रंस, आर्ग्युमेंट के तौर पर पास किया जाता है.overlaycomplete
इवेंट. ऑब्जेक्ट लिटरल, जिसमेंOverlayType
और ओवरले का रेफ़रंस होता है, को आर्ग्युमेंट के तौर पर पास किया जाता है.
google.maps.event.addListener(drawingManager, 'circlecomplete', function(circle) { var radius = circle.getRadius(); }); google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { if (event.type == 'circle') { var radius = event.overlay.getRadius(); } });
ध्यान दें कि मैप पर ड्रॉइंग करते समय, google.maps.Map
इवेंट बंद हो जाते हैं. जैसे, click
और mousemove
.