আকার এবং লাইন

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

তুমি তোমার মানচিত্রে বিভিন্ন আকার যোগ করতে পারো। আকৃতি হলো মানচিত্রের একটি বস্তু, যা একটি অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্কের সাথে আবদ্ধ। নিম্নলিখিত আকারগুলি পাওয়া যায়: রেখা , বহুভুজ , বৃত্ত এবং আয়তক্ষেত্র । তুমি তোমার আকারগুলি এমনভাবে কনফিগার করতে পারো যাতে ব্যবহারকারীরা সেগুলো সম্পাদনা করতে বা টেনে আনতে পারে

পলিলাইন

আপনার মানচিত্রে একটি রেখা আঁকতে, একটি পলিলাইন ব্যবহার করুন। Polyline ক্লাস মানচিত্রে সংযুক্ত রেখা অংশগুলির একটি রৈখিক ওভারলে সংজ্ঞায়িত করে। একটি Polyline বস্তুতে LatLng অবস্থানগুলির একটি অ্যারে থাকে এবং রেখা অংশগুলির একটি সিরিজ তৈরি করে যা সেই অবস্থানগুলিকে একটি ক্রমানুসারে সংযুক্ত করে।

একটি পলিলাইন যোগ করুন

Polyline কনস্ট্রাক্টর PolylineOptions একটি সেট নেয় যা লাইনের LatLng স্থানাঙ্ক নির্দিষ্ট করে এবং পলিলাইনের ভিজ্যুয়াল আচরণ সামঞ্জস্য করার জন্য শৈলীর একটি সেট নেয়।

মানচিত্রে 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 তৈরি করতে পারেন। Maps JavaScript 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 স্থানাঙ্কের চারটি সেট রয়েছে, তবে লক্ষ্য করুন যে প্রথম এবং শেষ সেট একই অবস্থান নির্ধারণ করে, যা লুপটি সম্পূর্ণ করে। তবে, বাস্তবে, যেহেতু বহুভুজগুলি বদ্ধ অঞ্চলগুলিকে সংজ্ঞায়িত করে, তাই আপনাকে স্থানাঙ্কের শেষ সেটটি নির্দিষ্ট করার প্রয়োজন নেই। Maps JavaScript API স্বয়ংক্রিয়ভাবে বহুভুজটি সম্পূর্ণ করবে একটি স্ট্রোক অঙ্কন করে যা যেকোনো প্রদত্ত পথের জন্য শেষ অবস্থানটিকে প্রথম অবস্থানের সাথে সংযুক্ত করবে।

নিম্নলিখিত উদাহরণটি পূর্ববর্তীটির মতোই, তবে শেষ LatLng বাদ দেওয়া হয়েছে: view example

একটি বহুভুজ সরান

মানচিত্র থেকে বহুভুজ অপসারণ করতে, setMap() পদ্ধতিটি পাসিং null আর্গুমেন্ট হিসেবে কল করুন। নিম্নলিখিত উদাহরণে, bermudaTriangle একটি বহুভুজ বস্তু:

bermudaTriangle.setMap(null);

মনে রাখবেন যে উপরের পদ্ধতিটি বহুভুজটি মুছে ফেলে না। এটি মানচিত্র থেকে বহুভুজটি সরিয়ে দেয়। পরিবর্তে যদি আপনি বহুভুজটি মুছে ফেলতে চান, তাহলে আপনার এটি মানচিত্র থেকে সরিয়ে ফেলা উচিত, এবং তারপর বহুভুজটিকে null এ সেট করা উচিত।

একটি বহুভুজ পরিদর্শন করুন

একটি বহুভুজ তার স্থানাঙ্কের সিরিজকে অ্যারের একটি অ্যারে হিসেবে নির্দিষ্ট করে, যেখানে প্রতিটি অ্যারে MVCArray ধরণের। প্রতিটি "leaf" অ্যারে হল 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 বৈশিষ্ট্যটি সেট করতে পারেন।

নিচের উদাহরণে জাপানের কিয়োটোতে অবস্থানগুলির মধ্যে আনুমানিক হাঁটার সময় দেখানোর জন্য বৃত্ত ব্যবহার করা হয়েছে। মেনু থেকে প্রয়োজনীয় দূরত্ব নির্বাচন করুন, বৃত্তটিকে পুনরায় কেন্দ্রে আনতে মানচিত্রে ক্লিক করুন এবং বৃত্তটিকে পুনরায় অবস্থান করতে টেনে আনুন।

টাইপস্ক্রিপ্ট

const mapElement = document.querySelector('gmp-map') as google.maps.MapElement;
let innerMap;

async function initMap() {
    // Import the needed libraries.
    // Request needed libraries.
    (await google.maps.importLibrary('maps')) as google.maps.MapsLibrary;
    (await google.maps.importLibrary('marker')) as google.maps.MarkerLibrary;
    // Get the gmp-map element.
    const mapElement = document.querySelector(
        'gmp-map'
    ) as google.maps.MapElement;

    const initialCenter = { lat: 34.98956821576194, lng: 135.74239981260283 }; // Hotel Emion, Kyoto, Japan

    // Get the inner map.
    const innerMap = mapElement.innerMap;

    const buttons = document.querySelectorAll('input[name="radius"]');

    const walkingCircle = new google.maps.Circle({
        strokeColor: '#ffdd00ff',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#ffdd00ff',
        fillOpacity: 0.35,
        map: innerMap,
        center: initialCenter,
        radius: 400,
        draggable: true,
        editable: false,
    });

    // Define a "Crosshair" vector icon
    const parser = new DOMParser();
    const svgString = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-6 -6 12 12"><path d="M -6,0 L 6,0 M 0,-6 L 0,6" stroke="black" stroke-width="1"/></svg>`;

    const pinSvg = parser.parseFromString(
        svgString,
        'image/svg+xml'
    ).documentElement;

    const centerMarker = new google.maps.marker.AdvancedMarkerElement({
        position: initialCenter,
        title: 'A marker using a custom SVG image.',
        //@ts-ignore
        anchorLeft: '-50%',
        anchorTop: '-50%',
    });
    centerMarker.append(pinSvg);
    mapElement.append(centerMarker);

    // Wait for the map to finish drawing its tiles.
    google.maps.event.addListenerOnce(innerMap, 'tilesloaded', function () {
        // Get the controls div
        const controls = document.getElementById('control-panel');

        // Display controls once map is loaded.
        if (controls) {
            controls.style.display = 'block';
        }
    });

    // Add event listener to update the radius based on user selection.
    buttons.forEach((button) => {
        button.addEventListener('change', (event) => {
            const target = event.target as HTMLInputElement;
            walkingCircle.setRadius(Number(target.value));
        });
    });

    // Handle user click, reset the map center and position the circle.
    innerMap.addListener('click', (mapsMouseEvent) => {
        const newCenter = mapsMouseEvent.latLng;
        walkingCircle.setCenter(newCenter);
        centerMarker.position = newCenter;
        innerMap.panTo(newCenter);
    });

    // Handle user dragging the circle, update the center marker position.
    walkingCircle.addListener('center_changed', () => {
        centerMarker.position = walkingCircle.getCenter();
    });
}

initMap();

জাভাস্ক্রিপ্ট

const mapElement = document.querySelector('gmp-map');
let innerMap;
async function initMap() {
    // Import the needed libraries.
    // Request needed libraries.
    (await google.maps.importLibrary('maps'));
    (await google.maps.importLibrary('marker'));
    // Get the gmp-map element.
    const mapElement = document.querySelector('gmp-map');
    const initialCenter = { lat: 34.98956821576194, lng: 135.74239981260283 }; // Hotel Emion, Kyoto, Japan
    // Get the inner map.
    const innerMap = mapElement.innerMap;
    const buttons = document.querySelectorAll('input[name="radius"]');
    const walkingCircle = new google.maps.Circle({
        strokeColor: '#ffdd00ff',
        strokeOpacity: 0.8,
        strokeWeight: 2,
        fillColor: '#ffdd00ff',
        fillOpacity: 0.35,
        map: innerMap,
        center: initialCenter,
        radius: 400,
        draggable: true,
        editable: false,
    });
    // Define a "Crosshair" vector icon
    const parser = new DOMParser();
    const svgString = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-6 -6 12 12"><path d="M -6,0 L 6,0 M 0,-6 L 0,6" stroke="black" stroke-width="1"/></svg>`;
    const pinSvg = parser.parseFromString(svgString, 'image/svg+xml').documentElement;
    const centerMarker = new google.maps.marker.AdvancedMarkerElement({
        position: initialCenter,
        title: 'A marker using a custom SVG image.',
        //@ts-ignore
        anchorLeft: '-50%',
        anchorTop: '-50%',
    });
    centerMarker.append(pinSvg);
    mapElement.append(centerMarker);
    // Wait for the map to finish drawing its tiles.
    google.maps.event.addListenerOnce(innerMap, 'tilesloaded', function () {
        // Get the controls div
        const controls = document.getElementById('control-panel');
        // Display controls once map is loaded.
        if (controls) {
            controls.style.display = 'block';
        }
    });
    // Add event listener to update the radius based on user selection.
    buttons.forEach((button) => {
        button.addEventListener('change', (event) => {
            const target = event.target;
            walkingCircle.setRadius(Number(target.value));
        });
    });
    // Handle user click, reset the map center and position the circle.
    innerMap.addListener('click', (mapsMouseEvent) => {
        const newCenter = mapsMouseEvent.latLng;
        walkingCircle.setCenter(newCenter);
        centerMarker.position = newCenter;
        innerMap.panTo(newCenter);
    });
    // Handle user dragging the circle, update the center marker position.
    walkingCircle.addListener('center_changed', () => {
        centerMarker.position = walkingCircle.getCenter();
    });
}
initMap();

সিএসএস

/* 
 * Optional: Makes the sample page fill the window. 
 */
html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#control-panel {
  display: none; /* Set to 'display: block' after the map loads. */
  background-color: #fff;
  border: 2px solid #fff;
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  font-family: "Roboto", "sans-serif";
  font-size: medium;
  margin: 10px;
  padding: 10px;
}

এইচটিএমএল

<html>
    <head>
        <title>Circles</title>

        <link rel="stylesheet" type="text/css" href="./style.css" />
        <script type="module" src="./index.js"></script>
        <!-- prettier-ignore -->
        <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})
        ({key: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "weekly"});</script>
    </head>
    <body>
        <gmp-map
            center="34.98956821576194, 135.74239981260283"
            zoom="15"
            map-id="DEMO_MAP_ID">
            <div id="control-panel" slot="control-inline-start-block-start">
                <input
                    id="short-walk"
                    type="radio"
                    name="radius"
                    value="400"
                    checked />
                <label for="short-walk">Short Walk (~5 minutes)</label><br />
                <input
                    id="medium-walk"
                    type="radio"
                    name="radius"
                    value="800" />
                <label for="medium-walk">Medium Walk (~15 minutes)</label><br />
                <input id="long-walk" type="radio" name="radius" value="1600" />
                <label for="long-walk">Long Walk (~30 minutes) </label>
            </div>
        </gmp-map>
    </body>
</html>
উদাহরণ দেখুন

নমুনা চেষ্টা করুন

একটি বৃত্ত সরান

মানচিত্র থেকে একটি বৃত্ত সরাতে, 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 ব্যবহারকারী যখন আকৃতিটি টেনে আনা বন্ধ করে দেয় তখন এটি চালু হয়।

ইভেন্ট পরিচালনা সম্পর্কে আরও জানতে, events এর ডকুমেন্টেশন দেখুন।