अपने मैप में अलग-अलग आकार जोड़े जा सकते हैं. शेप, मैप पर मौजूद एक ऑब्जेक्ट होता है, जो अक्षांश/देशांतर के निर्देशांक से जुड़ा होता है. ये आकार उपलब्ध हैं: लाइनें, पॉलीगॉन, सर्कल, और रेक्टैंगल. अपने आकार को इस तरह भी कॉन्फ़िगर किया जा सकता है कि उपयोगकर्ता उनमें बदलाव कर सकें या उन्हें खींचकर छोड़ सकें.
पॉलीलाइन
अपने मैप पर लाइन बनाने के लिए, पॉलीलाइन का इस्तेमाल करें.
Polyline
क्लास, मैप पर एक-दूसरे से जुड़े लाइन सेगमेंट के लीनियर ओवरले की जानकारी देती है. Polyline
ऑब्जेक्ट में, LatLng
जगहों का एक कलेक्शन होता है. साथ ही, यह लाइन सेगमेंट की एक सीरीज़ बनाता है, जो उन जगहों को क्रम से जोड़ती है.
पॉलीलाइन जोड़ना
Polyline
कन्स्ट्रक्टर, लाइन के LatLng
निर्देशांक बताने वाले PolylineOptions
का एक सेट और पॉलीलाइन के विज़ुअल व्यवहार को अडजस्ट करने के लिए स्टाइल का एक सेट लेता है.
Polyline
ऑब्जेक्ट, मैप पर सीधे सेगमेंट की सीरीज़ के तौर पर दिखाए जाते हैं. लाइन बनाते समय, PolylineOptions
में लाइन के स्ट्रोक के लिए कस्टम कलर, वेट, और ओपैसिटी तय की जा सकती है. इसके अलावा, लाइन बनाने के बाद भी इन प्रॉपर्टी में बदलाव किया जा सकता है.
पॉलीलाइन में ये स्ट्रोक स्टाइल काम करते हैं:
strokeColor
,"#FFFFFF"
फ़ॉर्मैट का हेक्साडेसिमल एचटीएमएल रंग तय करता है.Polyline
क्लास में, नाम वाले रंगों का इस्तेमाल नहीं किया जा सकता.strokeOpacity
, लाइन के रंग की ओपैसिटी तय करने के लिए,0.0
और1.0
के बीच की संख्या वाली वैल्यू तय करता है. डिफ़ॉल्ट रूप से, यह1.0
पर सेट होता है.strokeWeight
से लाइन की चौड़ाई, पिक्सल में तय होती है.
पॉलीलाइन की editable
प्रॉपर्टी से पता चलता है कि उपयोगकर्ता आकार में बदलाव कर सकते हैं या नहीं. उपयोगकर्ता के पास जिन आकारों में बदलाव करने का विकल्प होता है
उन्हें यहां देखें. इसी तरह, draggable
प्रॉपर्टी को सेट करके, उपयोगकर्ताओं को लाइन को खींचने की अनुमति दी जा सकती है.
TypeScript
// This example creates a 2-pixel-wide red polyline showing the path of // the first trans-Pacific flight between Oakland, CA, and Brisbane, // Australia which was made by Charles Kingsford Smith. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 3, center: { lat: 0, lng: -180 }, mapTypeId: "terrain", } ); const flightPlanCoordinates = [ { lat: 37.772, lng: -122.214 }, { lat: 21.291, lng: -157.821 }, { lat: -18.142, lng: 178.431 }, { lat: -27.467, lng: 153.027 }, ]; const flightPath = new google.maps.Polyline({ path: flightPlanCoordinates, geodesic: true, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, }); flightPath.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates a 2-pixel-wide red polyline showing the path of // the first trans-Pacific flight between Oakland, CA, and Brisbane, // Australia which was made by Charles Kingsford Smith. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 3, center: { lat: 0, lng: -180 }, mapTypeId: "terrain", }); const flightPlanCoordinates = [ { lat: 37.772, lng: -122.214 }, { lat: 21.291, lng: -157.821 }, { lat: -18.142, lng: 178.431 }, { lat: -27.467, lng: 153.027 }, ]; const flightPath = new google.maps.Polyline({ path: flightPlanCoordinates, geodesic: true, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, }); flightPath.setMap(map); } window.initMap = initMap;
सैंपल आज़माएं
पॉलीलाइन हटाना
मैप से पॉलीलाइन हटाने के लिए, setMap()
तरीके को कॉल करें और null
को आर्ग्युमेंट के तौर पर पास करें. नीचे दिए गए उदाहरण में,
flightPath
एक पॉलीलाइन ऑब्जेक्ट है:
flightPath.setMap(null);
ध्यान दें कि ऊपर बताए गए तरीके से पॉलीलाइन नहीं मिटती. इससे मैप से पॉलीलाइन हट जाती है. अगर आपको पॉलीलाइन मिटानी है, तो
आपको उसे मैप से हटाना होगा. इसके बाद, खुद ही पॉलीलाइन को null
पर सेट करें.
पॉलीलाइन की जांच करना
पॉलीलाइन, LatLng
ऑब्जेक्ट के कलेक्शन के तौर पर, निर्देशांक की एक सीरीज़ तय करती है. इन निर्देशांकों से लाइन का पाथ तय होता है.
निर्देशांक पाने के लिए, getPath()
को कॉल करें. इससे MVCArray
टाइप का ऐरे मिलेगा. इन ऑपरेशन का इस्तेमाल करके, ऐरे में बदलाव किया जा सकता है और उसकी जांच की जा सकती है:
getAt()
, किसी दी गई ज़ीरो-आधारित इंडेक्स वैल्यू परLatLng
दिखाता है.insertAt()
, शून्य पर आधारित इंडेक्स की किसी दी गई वैल्यू पर, पास की गईLatLng
को डालता है. ध्यान दें कि उस इंडेक्स वैल्यू पर मौजूद सभी मौजूदा निर्देशांक आगे बढ़ जाते हैं.removeAt()
, किसी दी गई ज़ीरो-आधारित इंडेक्स वैल्यू परLatLng
को हटा देता है.
TypeScript
// This example creates an interactive map which constructs a polyline based on // user clicks. Note that the polyline only appears once its path property // contains two LatLng coordinates. let poly: google.maps.Polyline; let map: google.maps.Map; function initMap(): void { map = new google.maps.Map(document.getElementById("map") as HTMLElement, { zoom: 7, center: { lat: 41.879, lng: -87.624 }, // Center the map on Chicago, USA. }); poly = new google.maps.Polyline({ strokeColor: "#000000", strokeOpacity: 1.0, strokeWeight: 3, }); poly.setMap(map); // Add a listener for the click event map.addListener("click", addLatLng); } // Handles click events on a map, and adds a new point to the Polyline. function addLatLng(event: google.maps.MapMouseEvent) { const path = poly.getPath(); // Because path is an MVCArray, we can simply append a new coordinate // and it will automatically appear. path.push(event.latLng as google.maps.LatLng); // Add a new marker at the new plotted point on the polyline. new google.maps.Marker({ position: event.latLng, title: "#" + path.getLength(), map: map, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates an interactive map which constructs a polyline based on // user clicks. Note that the polyline only appears once its path property // contains two LatLng coordinates. let poly; let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { zoom: 7, center: { lat: 41.879, lng: -87.624 }, // Center the map on Chicago, USA. }); poly = new google.maps.Polyline({ strokeColor: "#000000", strokeOpacity: 1.0, strokeWeight: 3, }); poly.setMap(map); // Add a listener for the click event map.addListener("click", addLatLng); } // Handles click events on a map, and adds a new point to the Polyline. function addLatLng(event) { const path = poly.getPath(); // Because path is an MVCArray, we can simply append a new coordinate // and it will automatically appear. path.push(event.latLng); // Add a new marker at the new plotted point on the polyline. new google.maps.Marker({ position: event.latLng, title: "#" + path.getLength(), map: map, }); } window.initMap = initMap;
सैंपल आज़माएं
पॉलीलाइन को पसंद के मुताबिक बनाना
पॉलीलाइन में, वेक्टर-आधारित इमेज को सिंबल के तौर पर जोड़ा जा सकता है. सिंबल और PolylineOptions
क्लास के कॉम्बिनेशन की मदद से, अपने मैप पर पॉलीलाइन के लुक और स्टाइल को ज़्यादा बेहतर बनाया जा सकता है.
ऐरो,
डैश वाली लाइनें,
कस्टम सिंबल और ऐनिमेशन वाले सिंबल के बारे में जानकारी पाने के लिए, सिंबल लेख पढ़ें.
पॉलीगॉन
पॉलीगॉन, किसी ऐसे इलाके को दिखाता है जो एक बंद पाथ (या लूप) से घिरा हो. इस इलाके को निर्देशांक की सीरीज़ से तय किया जाता है.
Polygon
ऑब्जेक्ट, Polyline
ऑब्जेक्ट से मिलते-जुलते होते हैं. ऐसा इसलिए है, क्योंकि इनमें कोऑर्डिनेट की एक सीरीज़, क्रम में होती है.
पॉलीगॉन, स्ट्रोक और भरने की सुविधा से बनाए जाते हैं. पॉलीगॉन के किनारे (स्ट्रोक) के लिए कस्टम रंग,
वेट, और ओपैसिटी तय की जा सकती है. साथ ही, घेरे गए हिस्से (फ़िल) के लिए कस्टम रंग और ओपैसिटी तय की जा सकती है. रंगों को हेक्साडेसिमल एचटीएमएल फ़ॉर्मैट में दिखाया जाना चाहिए. कलर के नाम इस्तेमाल नहीं किए जा सकते.
Polygon
ऑब्जेक्ट की मदद से, जटिल आकार दिखाए जा सकते हैं. जैसे:
- एक पॉलीगॉन से तय किए गए एक से ज़्यादा ऐसे इलाके जो एक-दूसरे से जुड़े नहीं हैं.
- ऐसे इलाके जिनमें छेद हैं.
- एक या उससे ज़्यादा इलाकों के इंटरसेक्शन.
किसी जटिल आकार को तय करने के लिए, एक से ज़्यादा पाथ वाले पॉलीगॉन का इस्तेमाल किया जाता है.
ध्यान दें: डेटा लेयर से, पॉलीगॉन बनाने का आसान तरीका मिलता है. यह आपके लिए पॉलीगॉन की विंडिंग मैनेज करता है. इससे, होल वाले पॉलीगॉन को आसानी से खींचा जा सकता है. डेटा लेयर के लिए दस्तावेज़ देखें.
कोई पॉलीगॉन जोड़ें
पॉलीगॉन वाले इलाके में कई अलग-अलग पाथ शामिल हो सकते हैं. इसलिए, Polygon
ऑब्जेक्ट की paths
प्रॉपर्टी, कैटगरी के हिसाब से व्यवस्थित किए गए वैल्यू के कलेक्शन की जानकारी देती है. हर कलेक्शन MVCArray
टाइप का होता है. हर ऐरे, LatLng
निर्देशांक के क्रम में, एक अलग क्रम तय करता है.
सिर्फ़ एक पाथ वाले आसान पॉलीगॉन के लिए, LatLng
निर्देशांक के एक ऐरे का इस्तेमाल करके Polygon
बनाया जा सकता है. Maps JavaScript API, paths
प्रॉपर्टी में सेव करते समय, इकट्ठा किए गए वैल्यू के सामान्य कलेक्शन को, वैल्यू के कलेक्शन के कलेक्शन में बदल देगा. एपीआई, एक पाथ वाले पॉलीगॉन के लिए एक आसान तरीका
getPath()
उपलब्ध कराता है.
पॉलीगॉन की editable
प्रॉपर्टी से पता चलता है कि उपयोगकर्ता आकार में बदलाव कर सकते हैं या नहीं. उपयोगकर्ता के पास जिन आकारों में बदलाव करने का विकल्प होता है उन्हें यहां देखें.
इसी तरह, draggable
प्रॉपर्टी को सेट करके, उपयोगकर्ताओं को आकार को खींचने और छोड़ने की अनुमति दी जा सकती है.
TypeScript
// This example creates a simple polygon representing the Bermuda Triangle. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", } ); // Define the LatLng coordinates for the polygon's path. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, { lat: 25.774, lng: -80.19 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates a simple polygon representing the Bermuda Triangle. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon's path. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, { lat: 25.774, lng: -80.19 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } window.initMap = initMap;
सैंपल आज़माएं
पॉलीगॉन के लिए अपने-आप पूरा होने की सुविधा
ऊपर दिए गए उदाहरण में, Polygon
में LatLng
निर्देशांक के चार सेट होते हैं. हालांकि, ध्यान दें कि पहले और आखिरी सेट एक ही जगह की जानकारी देते हैं, जिससे लूप पूरा हो जाता है. हालांकि, आम तौर पर,
पॉलीगॉन से बंद इलाकों की जानकारी मिलती है. इसलिए, आपको आखिरी
निर्देशांक सेट की जानकारी देने की ज़रूरत नहीं होती. Maps JavaScript API, किसी भी पाथ के लिए आखिरी जगह को पहली जगह से जोड़कर, पॉलीगॉन को अपने-आप पूरा कर देगा.
यह उदाहरण, पिछले उदाहरण से मिलता-जुलता है. हालांकि, इसमें आखिरी LatLng
को शामिल नहीं किया गया है:
उदाहरण देखें.
पॉलीगॉन हटाना
मैप से पॉलीगॉन हटाने के लिए, setMap()
तरीके को कॉल करें और null
को आर्ग्युमेंट के तौर पर पास करें. नीचे दिए गए उदाहरण में,
bermudaTriangle
एक पॉलीगॉन ऑब्जेक्ट है:
bermudaTriangle.setMap(null);
ध्यान दें कि ऊपर बताए गए तरीके से पॉलीगॉन नहीं मिटता. इससे मैप से पॉलीगॉन हट जाता है. अगर आपको पॉलीगॉन मिटाना है, तो
उसे मैप से हटाएं. इसके बाद, खुद पॉलीगॉन को null
पर सेट करें.
पॉलीगॉन की जांच करना
पॉलीगॉन, अपने निर्देशांक की सीरीज़ को ऐरे के ऐरे के तौर पर बताता है. इसमें हर ऐरे MVCArray
टाइप का होता है. हर "लीफ़" ऐरे, LatLng
निर्देशांकों का एक ऐरे होता है, जो एक पाथ के बारे में बताता है. इन निर्देशांकों को वापस पाने के लिए, Polygon
ऑब्जेक्ट के getPaths()
तरीके को कॉल करें. ऐरे एक MVCArray
है. इसलिए, आपको इन ऑपरेशन का इस्तेमाल करके, ऐरे में बदलाव करना होगा और उसकी जांच करनी होगी:
getAt()
, किसी दी गई ज़ीरो-आधारित इंडेक्स वैल्यू परLatLng
दिखाता है.insertAt()
, शून्य पर आधारित इंडेक्स की किसी दी गई वैल्यू पर, पास की गईLatLng
को डालता है. ध्यान दें कि उस इंडेक्स वैल्यू पर मौजूद सभी मौजूदा निर्देशांक आगे बढ़ जाते हैं.removeAt()
, किसी दी गई ज़ीरो-आधारित इंडेक्स वैल्यू परLatLng
को हटा देता है.
TypeScript
// This example creates a simple polygon representing the Bermuda Triangle. // When the user clicks on the polygon an info window opens, showing // information about the polygon's coordinates. let map: google.maps.Map; let infoWindow: google.maps.InfoWindow; function initMap(): void { map = new google.maps.Map(document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon. const triangleCoords: google.maps.LatLngLiteral[] = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); // Add a listener for the click event. bermudaTriangle.addListener("click", showArrays); infoWindow = new google.maps.InfoWindow(); } function showArrays(event: any) { // Since this polygon has only one path, we can call getPath() to return the // MVCArray of LatLngs. // @ts-ignore const polygon = this as google.maps.Polygon; const vertices = polygon.getPath(); let contentString = "<b>Bermuda Triangle polygon</b><br>" + "Clicked location: <br>" + event.latLng.lat() + "," + event.latLng.lng() + "<br>"; // Iterate over the vertices. for (let i = 0; i < vertices.getLength(); i++) { const xy = vertices.getAt(i); contentString += "<br>" + "Coordinate " + i + ":<br>" + xy.lat() + "," + xy.lng(); } // Replace the info window's content and position. infoWindow.setContent(contentString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates a simple polygon representing the Bermuda Triangle. // When the user clicks on the polygon an info window opens, showing // information about the polygon's coordinates. let map; let infoWindow; function initMap() { map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, mapTypeId: "terrain", }); // Define the LatLng coordinates for the polygon. const triangleCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Construct the polygon. const bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); // Add a listener for the click event. bermudaTriangle.addListener("click", showArrays); infoWindow = new google.maps.InfoWindow(); } function showArrays(event) { // Since this polygon has only one path, we can call getPath() to return the // MVCArray of LatLngs. // @ts-ignore const polygon = this; const vertices = polygon.getPath(); let contentString = "<b>Bermuda Triangle polygon</b><br>" + "Clicked location: <br>" + event.latLng.lat() + "," + event.latLng.lng() + "<br>"; // Iterate over the vertices. for (let i = 0; i < vertices.getLength(); i++) { const xy = vertices.getAt(i); contentString += "<br>" + "Coordinate " + i + ":<br>" + xy.lat() + "," + xy.lng(); } // Replace the info window's content and position. infoWindow.setContent(contentString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } window.initMap = initMap;
सैंपल आज़माएं
पॉलीगॉन में छेद करना
पॉलीगॉन में खाली जगह बनाने के लिए, आपको दो पाथ बनाने होंगे. एक पाथ, दूसरे पाथ के अंदर होना चाहिए. होल बनाने के लिए, अंदरूनी पाथ के निर्देशांक, बाहरी पाथ के निर्देशांक के उलटे क्रम में होने चाहिए. उदाहरण के लिए, अगर बाहरी पाथ के निर्देशांक, घड़ी की सुई घूमने की दिशा में हैं, तो अंदरूनी पाथ, घड़ी की सुई घूमने की दिशा के उलट होना चाहिए.
ध्यान दें: डेटा लेयर, अंदरूनी और बाहरी पाथ के क्रम को मैनेज करती है. इससे, होल वाले पॉलीगॉन को आसानी से ड्रॉ किया जा सकता है. डेटा लेयर के लिए दस्तावेज़ देखें.
इस उदाहरण में, दो पाथ वाला पॉलीगॉन बनाया गया है. इसमें अंदरूनी पाथ, बाहरी पाथ के उलट दिशा में है.
TypeScript
// This example creates a triangular polygon with a hole in it. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 5, center: { lat: 24.886, lng: -70.268 }, } ); // Define the LatLng coordinates for the polygon's outer path. const outerCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Define the LatLng coordinates for the polygon's inner path. // Note that the points forming the inner path are wound in the // opposite direction to those in the outer path, to form the hole. const innerCoords = [ { lat: 28.745, lng: -70.579 }, { lat: 29.57, lng: -67.514 }, { lat: 27.339, lng: -66.668 }, ]; // Construct the polygon, including both paths. const bermudaTriangle = new google.maps.Polygon({ paths: [outerCoords, innerCoords], strokeColor: "#FFC107", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FFC107", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates a triangular polygon with a hole in it. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 5, center: { lat: 24.886, lng: -70.268 }, }); // Define the LatLng coordinates for the polygon's outer path. const outerCoords = [ { lat: 25.774, lng: -80.19 }, { lat: 18.466, lng: -66.118 }, { lat: 32.321, lng: -64.757 }, ]; // Define the LatLng coordinates for the polygon's inner path. // Note that the points forming the inner path are wound in the // opposite direction to those in the outer path, to form the hole. const innerCoords = [ { lat: 28.745, lng: -70.579 }, { lat: 29.57, lng: -67.514 }, { lat: 27.339, lng: -66.668 }, ]; // Construct the polygon, including both paths. const bermudaTriangle = new google.maps.Polygon({ paths: [outerCoords, innerCoords], strokeColor: "#FFC107", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FFC107", fillOpacity: 0.35, }); bermudaTriangle.setMap(map); } window.initMap = initMap;
सैंपल आज़माएं
आयत
Google Maps JavaScript API में, सामान्य Polygon
क्लास के अलावा,
Rectangle
ऑब्जेक्ट के लिए एक खास क्लास भी शामिल होती है. इससे, ऑब्जेक्ट बनाने की प्रोसेस को आसान बनाया जा सकता है.
रेक्टैंगल जोड़ना
Rectangle
, Polygon
से इस तरह मिलता-जुलता है कि आपके पास रेक्टैंगल के किनारे (स्ट्रोक) के लिए कस्टम कलर, वेट, और ओपैसिटी तय करने का विकल्प होता है. साथ ही, रेक्टैंगल के अंदर मौजूद एरिया (फ़िल) के लिए भी कस्टम कलर और ओपैसिटी तय की जा सकती हैं. रंगों को हेक्साडेसिमल अंकों वाले एचटीएमएल स्टाइल में दिखाया जाना चाहिए.
Polygon
के उलट, Rectangle
के लिए paths
तय नहीं किया जाता. इसके बजाय, रेक्टैंगल में एक bounds
प्रॉपर्टी होती है, जो रेक्टैंगल के लिए
google.maps.LatLngBounds
तय करके, उसके आकार की जानकारी देती है.
रेक्टैंगल की editable
प्रॉपर्टी से यह पता चलता है कि उपयोगकर्ता, आकार में बदलाव कर सकते हैं या नहीं. यहां उपयोगकर्ता के पास जिन आकारों में बदलाव करने का विकल्प होता है उनके बारे में बताया गया है. इसी तरह, उपयोगकर्ताओं को रेक्टैंगल को खींचने की अनुमति देने के लिए, draggable
प्रॉपर्टी को सेट किया जा सकता है.
TypeScript
// This example adds a red rectangle to a map. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 11, center: { lat: 33.678, lng: -116.243 }, mapTypeId: "terrain", } ); const rectangle = new google.maps.Rectangle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: { north: 33.685, south: 33.671, east: -116.234, west: -116.251, }, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example adds a red rectangle to a map. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: { lat: 33.678, lng: -116.243 }, mapTypeId: "terrain", }); const rectangle = new google.maps.Rectangle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: { north: 33.685, south: 33.671, east: -116.234, west: -116.251, }, }); } window.initMap = initMap;
सैंपल आज़माएं
नीचे दिया गया कोड, हर बार मैप पर ज़ूम करने पर एक रेक्टैंगल बनाता है. रेक्टैंगल का साइज़, व्यूपोर्ट से तय होता है.
TypeScript
// This example creates a rectangle based on the viewport // on any 'zoom-changed' event. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 11, center: { lat: 40.74852, lng: -73.981687 }, mapTypeId: "terrain", } ); const rectangle = new google.maps.Rectangle(); map.addListener("zoom_changed", () => { // Get the current bounds, which reflect the bounds before the zoom. rectangle.setOptions({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: map.getBounds() as google.maps.LatLngBounds, }); }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// This example creates a rectangle based on the viewport // on any 'zoom-changed' event. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: { lat: 40.74852, lng: -73.981687 }, mapTypeId: "terrain", }); const rectangle = new google.maps.Rectangle(); map.addListener("zoom_changed", () => { // Get the current bounds, which reflect the bounds before the zoom. rectangle.setOptions({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, bounds: map.getBounds(), }); }); } window.initMap = initMap;
सैंपल आज़माएं
रेक्टैंगल हटाना
मैप से रेक्टैंगल हटाने के लिए, setMap()
तरीके को कॉल करें और null
को आर्ग्युमेंट के तौर पर पास करें.
rectangle.setMap(null);
ध्यान दें कि ऊपर बताए गए तरीके से रेक्टैंगल नहीं मिटता. इससे मैप से रेक्टैंगल हट जाता है. अगर आपको रेक्टैंगल मिटाना है, तो
उसे मैप से हटाएं. इसके बाद, खुद ही रेक्टैंगल को null
पर सेट करें.
सर्कल्स
Google Maps JavaScript API में, सामान्य Polygon
क्लास के अलावा,
Circle
ऑब्जेक्ट के लिए एक खास क्लास भी शामिल होती है. इससे, ऑब्जेक्ट बनाने की प्रोसेस को आसान बनाया जा सकता है.
सर्कल जोड़ना
Circle
, Polygon
से मिलता-जुलता है. इसमें सर्कल के किनारे (स्ट्रोक) के लिए कस्टम कलर, वेट, और ओपैसिटी तय की जा सकती है. साथ ही, सर्कल के अंदर के एरिया (फ़िल) के लिए भी कस्टम कलर और ओपैसिटी तय की जा सकती है. रंगों को हेक्साडेसिमल अंकों वाले एचटीएमएल स्टाइल में दिखाया जाना चाहिए.
Polygon
के उलट, Circle
के लिए paths
तय नहीं किया जाता. इसके बजाय, सर्कल में दो और
प्रॉपर्टी होती हैं, जिनसे इसका आकार तय होता है:
center
, सर्कल के केंद्र केgoogle.maps.LatLng
के बारे में बताता है.radius
, सर्कल की त्रिज्या को मीटर में बताता है.
सर्कल की editable
प्रॉपर्टी से पता चलता है कि उपयोगकर्ता आकार में बदलाव कर सकते हैं या नहीं. उपयोगकर्ता के पास जिन आकारों में बदलाव करने का विकल्प होता है उन्हें यहां देखें.
इसी तरह, draggable
प्रॉपर्टी को सेट करके, उपयोगकर्ताओं को सर्कल को खींचने की अनुमति दी जा सकती है.
TypeScript
// This example creates circles on the map, representing populations in North // America. // First, create an object containing LatLng and population for each city. interface City { center: google.maps.LatLngLiteral; population: number; } const citymap: Record<string, City> = { chicago: { center: { lat: 41.878, lng: -87.629 }, population: 2714856, }, newyork: { center: { lat: 40.714, lng: -74.005 }, population: 8405837, }, losangeles: { center: { lat: 34.052, lng: -118.243 }, population: 3857799, }, vancouver: { center: { lat: 49.25, lng: -123.1 }, population: 603502, }, }; function initMap(): void { // Create the map. const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: 37.09, lng: -95.712 }, mapTypeId: "terrain", } ); // Construct the circle for each value in citymap. // Note: We scale the area of the circle based on the population. for (const city in citymap) { // Add the circle for this city to the map. const cityCircle = new google.maps.Circle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, center: citymap[city].center, radius: Math.sqrt(citymap[city].population) * 100, }); } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
const citymap = { chicago: { center: { lat: 41.878, lng: -87.629 }, population: 2714856, }, newyork: { center: { lat: 40.714, lng: -74.005 }, population: 8405837, }, losangeles: { center: { lat: 34.052, lng: -118.243 }, population: 3857799, }, vancouver: { center: { lat: 49.25, lng: -123.1 }, population: 603502, }, }; function initMap() { // Create the map. const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: 37.09, lng: -95.712 }, mapTypeId: "terrain", }); // Construct the circle for each value in citymap. // Note: We scale the area of the circle based on the population. for (const city in citymap) { // Add the circle for this city to the map. const cityCircle = new google.maps.Circle({ strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35, map, center: citymap[city].center, radius: Math.sqrt(citymap[city].population) * 100, }); } } window.initMap = initMap;
सैंपल आज़माएं
किसी सर्कल को हटाना
मैप से सर्कल हटाने के लिए, setMap()
तरीके को कॉल करें और null
को आर्ग्युमेंट के तौर पर पास करें.
circle.setMap(null);
ध्यान दें कि ऊपर बताए गए तरीके से सर्कल नहीं मिटता. इससे मैप से सर्कल हट जाता है. अगर आपको सर्कल मिटाना है, तो
आपको उसे मैप से हटाना होगा. इसके बाद, सर्कल को null
पर सेट करें.
उपयोगकर्ता के पास खींचकर छोड़ने और उनमें बदलाव करने की सुविधा वाले आकार
किसी आकार में बदलाव करने की अनुमति देने पर, उस आकार में हैंडल जुड़ जाते हैं. इनका इस्तेमाल करके, लोग सीधे मैप पर आकार को फिर से सेट कर सकते हैं, उसका आकार बदल सकते हैं, और उसका साइज़ बदल सकते हैं. आपके पास किसी आकार को खींचकर किसी दूसरी जगह ले जाने की सुविधा भी होती है. इससे लोग, मैप पर आकार को किसी दूसरी जगह ले जा सकते हैं.
ऑब्जेक्ट में उपयोगकर्ता के किए गए बदलाव, सेशन के बीच नहीं बने रहते. अगर आपको उपयोगकर्ता के बदलावों को सेव करना है, तो आपको खुद ही जानकारी कैप्चर करके उसे स्टोर करना होगा.
किसी आकार में बदलाव करने की अनुमति देना
किसी भी आकार (पॉलीलाइन, पॉलीगॉन, सर्कल, और रेक्टैंगल) को उपयोगकर्ता के लिए बदलाव करने लायक के तौर पर सेट किया जा सकता है. इसके लिए, आकार के विकल्पों में editable
को true
पर सेट करें.
var bounds = { north: 44.599, south: 44.490, east: -78.443, west: -78.649 }; // Define a rectangle and set its editable property to true. var rectangle = new google.maps.Rectangle({ bounds: bounds, editable: true });
किसी आकार को खींचकर छोड़ने लायक बनाना
डिफ़ॉल्ट रूप से, मैप पर बनाया गया आकार अपनी जगह पर सेट रहेगा. उपयोगकर्ताओं को मैप पर किसी आकृति को खींचकर किसी दूसरी जगह पर ले जाने की अनुमति देने के लिए, आकृति के विकल्पों में draggable
को true
पर सेट करें.
var redCoords = [ {lat: 25.774, lng: -80.190}, {lat: 18.466, lng: -66.118}, {lat: 32.321, lng: -64.757} ]; // Construct a draggable red triangle with geodesic set to true. new google.maps.Polygon({ map: map, paths: redCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#FF0000', fillOpacity: 0.35, draggable: true, geodesic: true });
किसी पॉलीगॉन या पॉलीलाइन को खींचकर छोड़ने की सुविधा चालू करते समय, आपको उसकी geodesic
प्रॉपर्टी को true
पर सेट करके, पॉलीगॉन या पॉलीलाइन को जियोडेसिक बनाने पर भी विचार करना चाहिए.
जियोडेसिक पॉलीगॉन को किसी भी दिशा में ले जाने पर, उसका भौगोलिक आकार नहीं बदलता. हालांकि, ऐसा करने पर, मेरिटर प्रोजेक्शन में पॉलीगॉन का आकार बिगड़ जाता है. नॉन-जियोडेसिक पॉलीगॉन, स्क्रीन पर हमेशा अपनी शुरुआती इमेज के तौर पर दिखेंगे.
जियोडेसिक पॉलीलाइन में, पॉलीलाइन के सेगमेंट को पृथ्वी की सतह पर दो बिंदुओं के बीच सबसे छोटे पाथ के तौर पर दिखाया जाता है. ऐसा यह मानकर किया जाता है कि पृथ्वी एक गोला है. मेर्कैटर प्रोजेक्शन में, पॉलीलाइन के सेगमेंट को सीधी रेखाओं के तौर पर दिखाया जाता है.
निर्देशांक सिस्टम के बारे में ज़्यादा जानकारी के लिए, मैप और टाइल के निर्देशांक की गाइड देखें.
यहां दिए गए मैप में, करीब-करीब एक ही साइज़ और डाइमेंशन वाले दो त्रिभुज दिखाए गए हैं. लाल रंग के त्रिभुज की geodesic
प्रॉपर्टी को true
पर सेट किया गया है. ध्यान दें कि उत्तर की ओर बढ़ने पर, इसका आकार कैसे बदलता है.
बदलाव करने से जुड़े इवेंट सुनना
किसी आकार में बदलाव करने के बाद, इवेंट ट्रिगर होता है. इन इवेंट की सूची यहां दी गई है.
आकार | इवेंट |
---|---|
सर्कल |
radius_changed center_changed
|
पॉलीगॉन |
insert_at remove_at set_at
पॉलीगॉन के पाथ पर, लिसनर सेट होना चाहिए. अगर पॉलीगॉन में एक से ज़्यादा पाथ हैं, तो हर पाथ पर एक लिसनर सेट करना होगा. |
पॉलीलाइन |
insert_at remove_at set_at
पॉलीलाइन के पाथ पर, लिसनर सेट होना चाहिए. |
रेक्टैंगल | bounds_changed |
कुछ काम के कोड स्निपेट:
google.maps.event.addListener(circle, 'radius_changed', function() { console.log(circle.getRadius()); }); google.maps.event.addListener(outerPath, 'set_at', function() { console.log('Vertex moved on outer path.'); }); google.maps.event.addListener(innerPath, 'insert_at', function() { console.log('Vertex removed from inner path.'); }); google.maps.event.addListener(rectangle, 'bounds_changed', function() { console.log('Bounds changed.'); });
रेक्टैंगल पर बदलाव करने वाले इवेंट को मैनेज करने का उदाहरण देखें: उदाहरण देखें.
आइटम को खींचने और छोड़ने से जुड़े इवेंट सुनना
किसी आकार को खींचने पर, खींचने की कार्रवाई शुरू होने और खत्म होने के साथ-साथ, खींचने के दौरान भी इवेंट ट्रिगर होते हैं. ये इवेंट, पॉलीलाइन, पॉलीगॉन, सर्कल, और रेक्टैंगल के लिए ट्रिगर होते हैं.
इवेंट | ब्यौरा |
---|---|
dragstart |
जब उपयोगकर्ता किसी आकार को खींचने और छोड़ने की प्रोसेस शुरू करता है, तब यह इवेंट ट्रिगर होता है. |
drag |
जब उपयोगकर्ता किसी आकार को खींचकर छोड़ता है, तब बार-बार ट्रिगर होता है. |
dragend |
यह इवेंट तब ट्रिगर होता है, जब उपयोगकर्ता आकार को खींचकर छोड़ देता है. |
इवेंट मैनेज करने के बारे में ज़्यादा जानने के लिए, इवेंट से जुड़ा दस्तावेज़ देखें.