আপনি আপনার মানচিত্রে বিভিন্ন আকার যোগ করতে পারেন। একটি আকৃতি মানচিত্রের একটি বস্তু, একটি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের সাথে আবদ্ধ। নিম্নলিখিত আকারগুলি উপলব্ধ: লাইন , বহুভুজ , বৃত্ত এবং আয়তক্ষেত্র । আপনি আপনার আকারগুলিও কনফিগার করতে পারেন যাতে ব্যবহারকারীরা সেগুলি সম্পাদনা করতে বা টেনে আনতে পারে ৷
পলিলাইন
আপনার মানচিত্রে একটি লাইন আঁকতে, একটি পলিলাইন ব্যবহার করুন। Polyline
শ্রেণী মানচিত্রে সংযুক্ত লাইন অংশগুলির একটি রৈখিক ওভারলে সংজ্ঞায়িত করে। একটি Polyline
অবজেক্ট LatLng
অবস্থানগুলির একটি অ্যারে নিয়ে গঠিত এবং একটি ক্রমানুসারে সেই অবস্থানগুলিকে সংযুক্ত করে এমন একটি লাইন সেগমেন্ট তৈরি করে।
একটি পলিলাইন যোগ করুন
Polyline
কনস্ট্রাক্টর পলিলাইনের ভিজ্যুয়াল আচরণ সামঞ্জস্য করার জন্য লাইনের LatLng
স্থানাঙ্ক এবং শৈলীগুলির একটি সেট নির্দিষ্ট করে PolylineOptions
একটি সেট নেয়।
Polyline
অবজেক্টগুলি মানচিত্রের সোজা অংশগুলির একটি সিরিজ হিসাবে আঁকা হয়। আপনি আপনার লাইন নির্মাণ করার সময় PolylineOptions
মধ্যে লাইনের স্ট্রোকের জন্য কাস্টম রং, ওজন এবং অস্পষ্টতা নির্দিষ্ট করতে পারেন, অথবা আপনি নির্মাণের পরে সেই বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন। একটি পলিলাইন নিম্নলিখিত স্ট্রোক শৈলী সমর্থন করে:
-
strokeColor
"#FFFFFF"
ফরম্যাটের একটি হেক্সাডেসিমেল HTML রঙ নির্দিষ্ট করে।Polyline
শ্রেণী নামের রং সমর্থন করে না। -
strokeOpacity
লাইনের রঙের অস্বচ্ছতা নির্ধারণ করতে0.0
এবং1.0
এর মধ্যে একটি সংখ্যাসূচক মান নির্দিষ্ট করে। ডিফল্ট হল1.0
। -
strokeWeight
লাইনের প্রস্থ পিক্সেলে নির্দিষ্ট করে।
পলিলাইনের editable
বৈশিষ্ট্য ব্যবহারকারীরা আকৃতি সম্পাদনা করতে পারে কিনা তা নির্দিষ্ট করে। নীচে ব্যবহারকারী-সম্পাদনাযোগ্য আকার দেখুন। একইভাবে, আপনি ব্যবহারকারীদের লাইনটি টেনে আনতে মঞ্জুরি দেওয়ার জন্য draggable
বৈশিষ্ট্য সেট করতে পারেন।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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
সরিয়ে দেয়।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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
অবজেক্টের অনুরূপ যে তারা একটি ক্রমানুসারে স্থানাঙ্কের একটি সিরিজ নিয়ে গঠিত। বহুভুজ একটি স্ট্রোক এবং একটি পূরণ সঙ্গে আঁকা হয়. আপনি বহুভুজ (স্ট্রোক) এর প্রান্তের জন্য কাস্টম রং, ওজন এবং অস্পষ্টতা এবং আবদ্ধ এলাকার (ফিল) জন্য কাস্টম রং এবং অস্বচ্ছতা সংজ্ঞায়িত করতে পারেন। রঙগুলি হেক্সাডেসিমেল HTML বিন্যাসে নির্দেশিত হওয়া উচিত। রঙের নাম সমর্থিত নয়।
Polygon
বস্তু জটিল আকার বর্ণনা করতে পারে, যার মধ্যে রয়েছে:
- একক বহুভুজ দ্বারা সংজ্ঞায়িত একাধিক অ-সংলগ্ন এলাকা।
- তাদের মধ্যে গর্ত সঙ্গে এলাকা.
- এক বা একাধিক এলাকার ছেদ।
একটি জটিল আকৃতি নির্ধারণ করতে, আপনি একাধিক পাথ সহ একটি বহুভুজ ব্যবহার করেন।
দ্রষ্টব্য: ডেটা স্তর বহুভুজ আঁকার একটি সহজ উপায় প্রদান করে। এটি আপনার জন্য বহুভুজ উইন্ডিং পরিচালনা করে, যাতে গর্ত সহ বহুভুজ আঁকা সহজ হয়। ডেটা স্তরের জন্য ডকুমেন্টেশন দেখুন।
একটি বহুভুজ যোগ করুন
যেহেতু একটি বহুভুজ এলাকায় বেশ কয়েকটি পৃথক পাথ অন্তর্ভুক্ত থাকতে পারে, Polygon
অবজেক্টের paths
সম্পত্তি অ্যারেগুলির একটি অ্যারে নির্দিষ্ট করে, প্রতিটি প্রকার MVCArray
। প্রতিটি অ্যারে অর্ডারকৃত LatLng
স্থানাঙ্কের একটি পৃথক ক্রম সংজ্ঞায়িত করে।
শুধুমাত্র একটি পথ সমন্বিত সাধারণ বহুভুজের জন্য, আপনি LatLng
স্থানাঙ্কের একটি একক অ্যারে ব্যবহার করে একটি Polygon
তৈরি করতে পারেন। মানচিত্র জাভাস্ক্রিপ্ট API সাধারণ অ্যারেটিকে paths
সম্পত্তির মধ্যে সংরক্ষণ করার সময় নির্মাণের সময় অ্যারের অ্যারেতে রূপান্তর করবে। API একটি পাথ সমন্বিত বহুভুজের জন্য একটি সহজ getPath()
পদ্ধতি প্রদান করে।
বহুভুজের editable
বৈশিষ্ট্য ব্যবহারকারীরা আকৃতি সম্পাদনা করতে পারে কিনা তা নির্দিষ্ট করে। নীচে ব্যবহারকারী-সম্পাদনাযোগ্য আকার দেখুন। একইভাবে, আপনি ব্যবহারকারীদের আকৃতিটি টেনে আনতে অনুমতি দেওয়ার জন্য draggable
বৈশিষ্ট্য সেট করতে পারেন।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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
স্থানাঙ্কের চারটি সেট নিয়ে গঠিত, তবে লক্ষ্য করুন যে প্রথম এবং শেষ সেট একই অবস্থানকে সংজ্ঞায়িত করে, যা লুপটি সম্পূর্ণ করে। অনুশীলনে, যাইহোক, যেহেতু বহুভুজ বদ্ধ এলাকাগুলিকে সংজ্ঞায়িত করে, আপনাকে স্থানাঙ্কের শেষ সেটটি নির্দিষ্ট করতে হবে না। মানচিত্র জাভাস্ক্রিপ্ট API স্বয়ংক্রিয়ভাবে কোনো প্রদত্ত পথের জন্য শেষ অবস্থানটিকে প্রথম অবস্থানের সাথে সংযুক্ত করে একটি স্ট্রোক অঙ্কন করে বহুভুজ সম্পূর্ণ করবে৷
নিম্নলিখিত উদাহরণটি আগেরটির সাথে অভিন্ন, শেষ LatLng
টি বাদ দেওয়া ছাড়া: উদাহরণ দেখুন ।
একটি বহুভুজ সরান
মানচিত্র থেকে বহুভুজ অপসারণ করতে, setMap()
মেথড পাসিং null
আর্গুমেন্ট হিসেবে কল করুন। নিম্নলিখিত উদাহরণে, bermudaTriangle
একটি বহুভুজ বস্তু:
bermudaTriangle.setMap(null);
উল্লেখ্য যে উপরের পদ্ধতিটি বহুভুজ মুছে দেয় না। এটি মানচিত্র থেকে বহুভুজ সরিয়ে দেয়। পরিবর্তে আপনি যদি বহুভুজটি মুছে ফেলতে চান তবে আপনাকে মানচিত্র থেকে এটি সরিয়ে ফেলতে হবে এবং তারপর বহুভুজটিকেই null
এ সেট করতে হবে।
একটি বহুভুজ পরিদর্শন করুন
একটি বহুভুজ তার স্থানাঙ্কের সিরিজকে অ্যারের অ্যারে হিসাবে নির্দিষ্ট করে, যেখানে প্রতিটি অ্যারে MVCArray
টাইপের হয়। প্রতিটি "লিফ" অ্যারে হল LatLng
স্থানাঙ্কগুলির একটি অ্যারে যা একটি একক পথ নির্দিষ্ট করে৷ এই স্থানাঙ্কগুলি পুনরুদ্ধার করতে, Polygon
অবজেক্টের getPaths()
পদ্ধতিতে কল করুন। যেহেতু অ্যারেটি একটি MVCArray
আপনাকে নিম্নলিখিত ক্রিয়াকলাপগুলি ব্যবহার করে এটিকে ম্যানিপুলেট এবং পরিদর্শন করতে হবে:
-
getAt()
একটি প্রদত্ত শূন্য-ভিত্তিক সূচক মানতেLatLng
প্রদান করে। -
insertAt()
একটি প্রদত্ত শূন্য-ভিত্তিক সূচক মানতে একটি পাস করাLatLng
সন্নিবেশ করায়। উল্লেখ্য যে সূচক মানতে বিদ্যমান যেকোন স্থানাঙ্কগুলিকে এগিয়ে নিয়ে যাওয়া হয়। -
removeAt()
একটি প্রদত্ত শূন্য-ভিত্তিক সূচক মানতে একটিLatLng
সরিয়ে দেয়।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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;
নমুনা চেষ্টা করুন
একটি বহুভুজ একটি গর্ত করা
একটি বহুভুজের মধ্যে একটি খালি এলাকা তৈরি করতে, আপনাকে দুটি পথ তৈরি করতে হবে, একটি অন্যটির ভিতরে। গর্ত তৈরি করতে, অভ্যন্তরীণ পথ সংজ্ঞায়িত স্থানাঙ্কগুলি অবশ্যই বাইরের পথ সংজ্ঞায়িত করার বিপরীত ক্রমে হতে হবে। উদাহরণস্বরূপ, যদি বাইরের পথের স্থানাঙ্কগুলি ঘড়ির কাঁটার দিকে থাকে তবে ভিতরের পথটি অবশ্যই ঘড়ির কাঁটার বিপরীতে হতে হবে।
দ্রষ্টব্য: ডেটা স্তরটি আপনার জন্য অভ্যন্তরীণ এবং বাইরের পথের ক্রম পরিচালনা করে, এটি গর্ত সহ বহুভুজ আঁকা সহজ করে তোলে। ডেটা স্তরের জন্য ডকুমেন্টেশন দেখুন।
নীচের উদাহরণটি দুটি পথ সহ একটি বহুভুজ আঁকে, যার ভিতরের পথটি বাইরের পথের বিপরীত দিকে রয়েছে।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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;
নমুনা চেষ্টা করুন
আয়তক্ষেত্র
একটি জেনেরিক Polygon
ক্লাস ছাড়াও, গুগল ম্যাপ জাভাস্ক্রিপ্ট এপিআই Rectangle
বস্তুর জন্য একটি নির্দিষ্ট শ্রেণী অন্তর্ভুক্ত করে, যাতে তাদের নির্মাণ সহজ হয়।
একটি আয়তক্ষেত্র যোগ করুন
একটি Rectangle
একটি Polygon
মতো যাতে আপনি আয়তক্ষেত্রের প্রান্তের (স্ট্রোক) জন্য কাস্টম রং, ওজন এবং অস্পষ্টতা এবং আয়তক্ষেত্রের (ফিল) মধ্যে থাকা এলাকার জন্য কাস্টম রং এবং অস্পষ্টতা নির্ধারণ করতে পারেন। রঙগুলি হেক্সাডেসিমেল সংখ্যাসূচক HTML শৈলীতে নির্দেশ করা উচিত।
একটি Polygon
থেকে ভিন্ন, আপনি একটি Rectangle
জন্য paths
সংজ্ঞায়িত করবেন না। পরিবর্তে, একটি আয়তক্ষেত্রের একটি bounds
বৈশিষ্ট্য রয়েছে যা আয়তক্ষেত্রের জন্য একটি google.maps.LatLngBounds
নির্দিষ্ট করে এর আকৃতি নির্ধারণ করে।
আয়তক্ষেত্রের editable
বৈশিষ্ট্য ব্যবহারকারীরা আকৃতি সম্পাদনা করতে পারে কিনা তা নির্দিষ্ট করে। নীচে ব্যবহারকারী-সম্পাদনাযোগ্য আকার দেখুন। একইভাবে, আপনি ব্যবহারকারীদের আয়তক্ষেত্রটি টেনে আনতে মঞ্জুরি দেওয়ার জন্য draggable
প্রপার্টি সেট করতে পারেন।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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;
নমুনা চেষ্টা করুন
ব্যবহারকারী যখনই মানচিত্রে জুম পরিবর্তন করে তখন নিম্নলিখিত কোডটি একটি আয়তক্ষেত্র তৈরি করে। আয়তক্ষেত্রের আকার ভিউপোর্ট দ্বারা নির্ধারিত হয়।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
// 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
এ সেট করতে হবে।
চেনাশোনা
জেনেরিক Polygon
ক্লাস ছাড়াও, গুগল ম্যাপ জাভাস্ক্রিপ্ট এপিআই Circle
অবজেক্টের জন্য একটি নির্দিষ্ট ক্লাস অন্তর্ভুক্ত করে, যাতে তাদের নির্মাণ সহজ হয়।
একটি বৃত্ত যোগ করুন
একটি Circle
একটি Polygon
অনুরূপ যেখানে আপনি বৃত্তের প্রান্তের (স্ট্রোক) জন্য কাস্টম রং, ওজন এবং অস্পষ্টতা এবং বৃত্তের (ফিল) মধ্যে এলাকার জন্য কাস্টম রং এবং অস্পষ্টতা নির্ধারণ করতে পারেন। রঙগুলি হেক্সাডেসিমেল সংখ্যাসূচক HTML শৈলীতে নির্দেশ করা উচিত।
একটি Polygon
থেকে ভিন্ন, আপনি একটি Circle
জন্য paths
সংজ্ঞায়িত করবেন না। পরিবর্তে, একটি বৃত্তের দুটি অতিরিক্ত বৈশিষ্ট্য রয়েছে যা এর আকৃতি নির্ধারণ করে:
-
center
বৃত্তের কেন্দ্রেরgoogle.maps.LatLng
নির্দিষ্ট করে। -
radius
বৃত্তের ব্যাসার্ধ নির্দিষ্ট করে, মিটারে।
বৃত্তের editable
সম্পত্তি ব্যবহারকারীরা আকৃতি সম্পাদনা করতে পারে কিনা তা নির্দিষ্ট করে৷ নীচে ব্যবহারকারী-সম্পাদনাযোগ্য আকার দেখুন। একইভাবে, আপনি ব্যবহারকারীদের বৃত্তটি টেনে আনতে মঞ্জুরি দেওয়ার জন্য draggable
সম্পত্তি সেট করতে পারেন।
টাইপস্ক্রিপ্ট
// 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;
জাভাস্ক্রিপ্ট
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 | ব্যবহারকারী যখন আকৃতিটি টেনে আনা বন্ধ করে তখন বহিস্কার করা হয়। |
ইভেন্ট পরিচালনার বিষয়ে আরও জানতে, ইভেন্টের ডকুমেন্টেশন দেখুন।