ভেক্টর মানচিত্র বৈশিষ্ট্য

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

নমুনা দেখুন

ম্যাপস জাভাস্ক্রিপ্ট এপিআই দুই ধরনের ম্যাপ ইমপ্লিমেন্টেশন প্রদান করে: রাস্টার এবং ভেক্টর। রাস্টার ম্যাপ পিক্সেল-ভিত্তিক রাস্টার ইমেজ টাইলসের একটি গ্রিড হিসেবে ম্যাপ লোড করে, যা গুগল ম্যাপস প্ল্যাটফর্ম সার্ভার-সাইডে তৈরি করে আপনার ওয়েব অ্যাপে পরিবেশন করা হয়। ভেক্টর ম্যাপ ভেক্টর-ভিত্তিক টাইলস দ্বারা গঠিত, যা লোড হওয়ার সময় ক্লায়েন্ট-সাইডে WebGL ব্যবহার করে আঁকা হয়। WebGL হলো একটি ওয়েব প্রযুক্তি যা ব্রাউজারকে ব্যবহারকারীর ডিভাইসের GPU অ্যাক্সেস করে ২ডি এবং ৩ডি গ্রাফিক্স রেন্ডার করার সুযোগ দেয়।

ভেক্টর ম্যাপটি হলো সেই একই গুগল ম্যাপ যা আপনার ব্যবহারকারীরা ব্যবহার করে অভ্যস্ত, এবং এটি ডিফল্ট রাস্টার টাইল ম্যাপের চেয়ে বেশ কিছু সুবিধা প্রদান করে, যার মধ্যে সবচেয়ে উল্লেখযোগ্য হলো ভেক্টর-ভিত্তিক ছবির তীক্ষ্ণতা এবং কাছাকাছি জুম করলে ত্রিমাত্রিক (3D) ভবন যুক্ত হওয়া। ভেক্টর ম্যাপ নিম্নলিখিত বৈশিষ্ট্যগুলো সমর্থন করে:

ভেক্টর ম্যাপ দিয়ে শুরু করুন

হেলান এবং ঘূর্ণন

ভেক্টর ম্যাপ ইনিশিয়ালাইজ করার সময় heading এবং tilt প্রপার্টিগুলো অন্তর্ভুক্ত করে, এবং ম্যাপের setTiltsetHeading মেথডগুলো কল করার মাধ্যমে আপনি ম্যাপটির টিল্ট এবং রোটেশন (হেডিং) সেট করতে পারেন। নিচের উদাহরণটিতে ম্যাপে কিছু বাটন যোগ করা হয়েছে, যেগুলো প্রোগ্রামের মাধ্যমে ২০-ডিগ্রি ধাপে টিল্ট এবং হেডিং অ্যাডজাস্ট করার পদ্ধতি দেখায়।

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

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: {
        lat: 37.7893719,
        lng: -122.3942,
      },
      zoom: 16,
      heading: 320,
      tilt: 47.5,
      mapId: "90f87356969d889c",
    }
  );

  const buttons: [string, string, number, google.maps.ControlPosition][] = [
    ["Rotate Left", "rotate", 20, google.maps.ControlPosition.LEFT_CENTER],
    ["Rotate Right", "rotate", -20, google.maps.ControlPosition.RIGHT_CENTER],
    ["Tilt Down", "tilt", 20, google.maps.ControlPosition.TOP_CENTER],
    ["Tilt Up", "tilt", -20, google.maps.ControlPosition.BOTTOM_CENTER],
  ];

  buttons.forEach(([text, mode, amount, position]) => {
    const controlDiv = document.createElement("div");
    const controlUI = document.createElement("button");

    controlUI.classList.add("ui-button");
    controlUI.innerText = `${text}`;
    controlUI.addEventListener("click", () => {
      adjustMap(mode, amount);
    });
    controlDiv.appendChild(controlUI);
    map.controls[position].push(controlDiv);
  });

  const adjustMap = function (mode: string, amount: number) {
    switch (mode) {
      case "tilt":
        map.setTilt(map.getTilt()! + amount);
        break;
      case "rotate":
        map.setHeading(map.getHeading()! + amount);
        break;
      default:
        break;
    }
  };
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

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

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    center: {
      lat: 37.7893719,
      lng: -122.3942,
    },
    zoom: 16,
    heading: 320,
    tilt: 47.5,
    mapId: "90f87356969d889c",
  });
  const buttons = [
    ["Rotate Left", "rotate", 20, google.maps.ControlPosition.LEFT_CENTER],
    ["Rotate Right", "rotate", -20, google.maps.ControlPosition.RIGHT_CENTER],
    ["Tilt Down", "tilt", 20, google.maps.ControlPosition.TOP_CENTER],
    ["Tilt Up", "tilt", -20, google.maps.ControlPosition.BOTTOM_CENTER],
  ];

  buttons.forEach(([text, mode, amount, position]) => {
    const controlDiv = document.createElement("div");
    const controlUI = document.createElement("button");

    controlUI.classList.add("ui-button");
    controlUI.innerText = `${text}`;
    controlUI.addEventListener("click", () => {
      adjustMap(mode, amount);
    });
    controlDiv.appendChild(controlUI);
    map.controls[position].push(controlDiv);
  });

  const adjustMap = function (mode, amount) {
    switch (mode) {
      case "tilt":
        map.setTilt(map.getTilt() + amount);
        break;
      case "rotate":
        map.setHeading(map.getHeading() + amount);
        break;
      default:
        break;
    }
  };
}

window.initMap = initMap;

সিএসএস

/* 
 * Always set the map height explicitly to define the size of the div element
 * that contains the map. 
 */
#map {
  height: 100%;
}

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

.ui-button {
  background-color: #fff;
  border: 0;
  border-radius: 2px;
  box-shadow: 0 1px 4px -1px rgba(0, 0, 0, 0.3);
  margin: 10px;
  padding: 0 0.5em;
  font: 400 18px Roboto, Arial, sans-serif;
  overflow: hidden;
  height: 40px;
  cursor: pointer;
}
.ui-button:hover {
  background: rgb(235, 235, 235);
}

এইচটিএমএল

<html>
  <head>
    <title>Tilt and Rotation</title>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the script to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises. See
      https://developers.google.com/maps/documentation/javascript/load-maps-js-api
      for more information.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

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

মাউস এবং কীবোর্ড অঙ্গভঙ্গি ব্যবহার করুন

যদি টিল্ট এবং রোটেশন (হেডিং) ইউজার ইন্টারঅ্যাকশন সক্রিয় করা থাকে (প্রোগ্রাম্যাটিকভাবে অথবা গুগল ক্লাউড কনসোলে), তাহলে ব্যবহারকারীরা মাউস এবং কীবোর্ড ব্যবহার করে টিল্ট এবং রোটেশন সামঞ্জস্য করতে পারবেন:

  • মাউস ব্যবহার করে , শিফট কী চেপে ধরে মাউসটি উপরে-নীচে টেনে টিল্ট (ঢাল) এবং ডানে-বামে টেনে হেডিং (দিক) সামঞ্জস্য করুন।
  • কিবোর্ড ব্যবহার করে , শিফট কী চেপে ধরে রাখুন, এরপর টিল্ট (ঢাল) সমন্বয় করতে আপ এবং ডাউন অ্যারো কী ব্যবহার করুন এবং হেডিং (দিক) সমন্বয় করতে রাইট এবং লেফট অ্যারো কী ব্যবহার করুন।

প্রোগ্রামের মাধ্যমে টিল্ট এবং হেডিং সামঞ্জস্য করুন

একটি ভেক্টর ম্যাপে প্রোগ্রাম্যাটিকভাবে টিল্ট এবং হেডিং সামঞ্জস্য করতে setTilt() এবং setHeading() মেথডগুলো ব্যবহার করুন। হেডিং হলো উত্তর দিক থেকে ঘড়ির কাঁটার দিকে ডিগ্রিতে ক্যামেরার অভিমুখ, তাই map.setHeading(90) ম্যাপটিকে এমনভাবে ঘোরাবে যাতে পূর্ব দিক উপরের দিকে থাকে। টিল্ট কোণটি জেনিথ থেকে পরিমাপ করা হয়, তাই map.setTilt(0) সোজা নিচের দিকে তাকানোর অনুভূতি দেয়, যেখানে map.setTilt(45) একটি তির্যক দৃশ্য তৈরি করবে।

  • ম্যাপের হেলানো কোণ সেট করতে setTilt() কল করুন। বর্তমান হেলানো মান পেতে getTilt() ব্যবহার করুন।
  • ম্যাপের হেডিং সেট করতে setHeading() কল করুন। বর্তমান হেডিং ভ্যালু পেতে getHeading() ব্যবহার করুন।

টিল্ট এবং হেডিং অপরিবর্তিত রেখে ম্যাপের কেন্দ্র পরিবর্তন করতে, map.setCenter() অথবা map.panBy() ব্যবহার করুন।

মনে রাখবেন যে, ব্যবহারযোগ্য কোণের পরিসর বর্তমান জুম স্তরের সাথে পরিবর্তিত হয়। এই পরিসরের বাইরের মানগুলো অনুমোদিত পরিসরের মধ্যে সীমাবদ্ধ থাকে।

এছাড়াও আপনি প্রোগ্রাম্যাটিকভাবে হেডিং, টিল্ট, সেন্টার এবং জুম পরিবর্তন করতে moveCamera মেথডটি ব্যবহার করতে পারেন। আরও জানুন

অন্যান্য পদ্ধতির উপর প্রভাব

যখন ম্যাপে টিল্ট বা রোটেশন প্রয়োগ করা হয়, তখন অন্যান্য Maps JavaScript API মেথডগুলোর আচরণ প্রভাবিত হয়:

  • map.getBounds() সর্বদা দৃশ্যমান অঞ্চলকে অন্তর্ভুক্ত করে এমন ক্ষুদ্রতম বাউন্ডিং বক্সটি ফেরত দেয়; যখন টিল্ট প্রয়োগ করা হয়, তখন ফেরত আসা বাউন্ডস ম্যাপের ভিউপোর্টের দৃশ্যমান অঞ্চলের চেয়ে বড় একটি অঞ্চলকে প্রতিনিধিত্ব করতে পারে।
  • সীমানা নির্ধারণের আগে map.fitBounds() টিল্ট এবং হেডিং শূন্যে রিসেট করবে।
  • বাউন্ড প্যান করার আগে map.panToBounds() টিল্ট এবং হেডিং শূন্যে রিসেট করবে।
  • map.setTilt() যেকোনো মান গ্রহণ করে, কিন্তু এটি বর্তমান ম্যাপ জুম লেভেলের উপর ভিত্তি করে সর্বোচ্চ হেলানোর সীমা নির্ধারণ করে।
  • map.setHeading() যেকোনো মান গ্রহণ করে এবং সেটিকে [0, 360] পরিসরের মধ্যে মানানসই করার জন্য পরিবর্তন করে।

ক্যামেরা নিয়ন্ত্রণ করুন

একসাথে ক্যামেরার যেকোনো প্রোপার্টি আপডেট করতে map.moveCamera() ফাংশনটি ব্যবহার করুন। map.moveCamera() একটিমাত্র প্যারামিটার গ্রহণ করে, যাতে আপডেট করার জন্য ক্যামেরার সমস্ত প্রোপার্টিগুলো থাকে। নিচের উদাহরণটিতে একসাথে center , zoom , heading , এবং tilt সেট করার জন্য map.moveCamera() কল করা দেখানো হয়েছে:

map.moveCamera({
  center: new google.maps.LatLng(37.7893719, -122.3942),
  zoom: 16,
  heading: 320,
  tilt: 47.5
});

আপনি একটি অ্যানিমেশন লুপ সহ map.moveCamera() কল করে ক্যামেরার বৈশিষ্ট্যগুলো অ্যানিমেট করতে পারেন, যেমনটি এখানে দেখানো হয়েছে:

const degreesPerSecond = 3;

function animateCamera(time) {
  // Update the heading, leave everything else as-is.
  map.moveCamera({
    heading: (time / 1000) * degreesPerSecond
  });

  requestAnimationFrame(animateCamera);
}

// Start the animation.
requestAnimationFrame(animateCamera);

ক্যামেরার অবস্থান

মানচিত্রের দৃশ্যটিকে একটি ক্যামেরা হিসেবে মডেল করা হয়েছে যা একটি সমতল তলের উপর থেকে নিচের দিকে তাকায়। ক্যামেরার অবস্থান (এবং ফলস্বরূপ মানচিত্রের রেন্ডারিং) নিম্নলিখিত প্রোপার্টিগুলোর মাধ্যমে নির্দিষ্ট করা হয়: টার্গেট (অক্ষাংশ/দ্রাঘিমাংশ) , বেয়ারিং , টিল্ট এবং জুম

ক্যামেরার বৈশিষ্ট্য ডায়াগ্রাম

লক্ষ্য (অবস্থান)

ক্যামেরার লক্ষ্যবস্তু হলো মানচিত্রের কেন্দ্রের অবস্থান, যা অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক হিসেবে নির্দিষ্ট করা থাকে।

অক্ষাংশ -৮৫ থেকে ৮৫ ডিগ্রির মধ্যে হতে পারে। এই সীমার উপরে বা নীচের মানগুলিকে এই সীমার মধ্যে নিকটতম মানে স্থির করা হবে। উদাহরণস্বরূপ, ১০০ অক্ষাংশ নির্দিষ্ট করলে মানটি ৮৫-তে সেট করা হবে। দ্রাঘিমাংশ -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হতে পারে। এই সীমার উপরে বা নীচের মানগুলিকে এমনভাবে মোড়ানো হবে যাতে সেগুলি (-১৮০, ১৮০) সীমার মধ্যে পড়ে। উদাহরণস্বরূপ, ৪৮০, ৮৪০ এবং ১২০০ সবগুলিকেই ১২০ ডিগ্রিতে মোড়ানো হবে।

দিক (অভিমুখ)

ক্যামেরা বেয়ারিং মানচিত্রের উপরের প্রান্তের সাপেক্ষে প্রকৃত উত্তর থেকে ডিগ্রিতে পরিমাপ করা দিক নির্দেশ করে। যদি আপনি মানচিত্রের কেন্দ্র থেকে উপরের প্রান্ত পর্যন্ত একটি উল্লম্ব রেখা আঁকেন, তবে সেই বেয়ারিংটি প্রকৃত উত্তরের সাপেক্ষে ক্যামেরার হেডিং (ডিগ্রিতে পরিমাপ করা) নির্দেশ করে।

বেয়ারিং ০ হওয়ার অর্থ হলো মানচিত্রের উপরিভাগ প্রকৃত উত্তর দিকে নির্দেশ করে। বেয়ারিং ৯০ হওয়ার অর্থ হলো মানচিত্রের উপরিভাগ ঠিক পূর্ব দিকে (কম্পাসের ৯০ ডিগ্রি) নির্দেশ করে। বেয়ারিং ১৮০ হওয়ার অর্থ হলো মানচিত্রের উপরিভাগ ঠিক দক্ষিণ দিকে নির্দেশ করে।

ম্যাপস এপিআই আপনাকে একটি মানচিত্রের দিক পরিবর্তন করতে দেয়। উদাহরণস্বরূপ, গাড়িচালকরা প্রায়শই তাদের যাত্রাপথের সাথে মিলিয়ে নেওয়ার জন্য রাস্তার মানচিত্রটি ঘুরিয়ে নেন, অন্যদিকে হাইকাররা মানচিত্র ও কম্পাস ব্যবহার করে সাধারণত মানচিত্রটিকে এমনভাবে রাখেন যাতে একটি উল্লম্ব রেখা উত্তর দিকে নির্দেশ করে।

নতি (দেখার কোণ)

টিল্ট বা কোণাকোণি অবস্থানটি মানচিত্রের কেন্দ্রবিন্দুর ঠিক উপরে একটি বৃত্তচাপ বরাবর ক্যামেরার অবস্থানকে নির্দেশ করে, যা নাদির (ক্যামেরার ঠিক নিচের দিক) থেকে ডিগ্রিতে পরিমাপ করা হয়। ০ মানটি নির্দেশ করে ক্যামেরাটি সোজা নিচের দিকে তাক করা আছে। ০-এর চেয়ে বড় মানগুলো নির্দেশ করে ক্যামেরাটি নির্দিষ্ট সংখ্যক ডিগ্রিতে দিগন্তের দিকে হেলানো আছে। যখন আপনি দেখার কোণ পরিবর্তন করেন, তখন মানচিত্রটি একটি পরিপ্রেক্ষিত বা পার্সপেক্টিভে প্রদর্শিত হয়, যেখানে দূরের বৈশিষ্ট্যগুলো ছোট এবং কাছের বৈশিষ্ট্যগুলো বড় দেখায়। নিচের চিত্রগুলোতে এটি দেখানো হয়েছে।

নিচের ছবিগুলোতে দেখার কোণ হলো ০ ডিগ্রি। প্রথম ছবিতে এর একটি নকশা দেখানো হয়েছে; অবস্থান হলো ক্যামেরার অবস্থান এবং অবস্থান হলো বর্তমান মানচিত্রের অবস্থান। এর ফলে প্রাপ্ত মানচিত্রটি এর নিচে দেখানো হয়েছে।

০ ডিগ্রি ভিউয়িং অ্যাঙ্গেলে এবং ১৮ জুম লেভেলে থাকা ক্যামেরার একটি মানচিত্রের স্ক্রিনশট।
মানচিত্রটি ক্যামেরার ডিফল্ট ভিউয়িং অ্যাঙ্গেলে প্রদর্শিত হয়েছে।
ডায়াগ্রামটি ক্যামেরার ডিফল্ট অবস্থান দেখাচ্ছে, যা ম্যাপের অবস্থানের ঠিক উপরে ০ ডিগ্রি কোণে অবস্থিত।
ক্যামেরার ডিফল্ট দেখার কোণ।

নিচের ছবিগুলোতে দেখার কোণ হলো ৪৫ ডিগ্রি। লক্ষ্য করুন যে, ক্যামেরাটি ঠিক মাথার ওপর (০ ডিগ্রি) এবং ভূমির (৯০ ডিগ্রি) মধ্যবর্তী একটি বৃত্তচাপের অর্ধেক পথ অতিক্রম করে ৩ নং অবস্থানে চলে আসে। ক্যামেরাটি তখনও মানচিত্রের কেন্দ্রবিন্দুর দিকেই তাক করা আছে, কিন্তু ৪ নং অবস্থানে রেখা দ্বারা নির্দেশিত এলাকাটি এখন দৃশ্যমান।

৪৫ ডিগ্রি ভিউয়িং অ্যাঙ্গেলে এবং ১৮ জুম লেভেলে থাকা ক্যামেরা দিয়ে তোলা একটি মানচিত্রের স্ক্রিনশট।
মানচিত্রটি ৪৫ ডিগ্রি দর্শন কোণে প্রদর্শিত হয়েছে।
ডায়াগ্রামটিতে দেখানো হয়েছে যে ক্যামেরার ভিউয়িং অ্যাঙ্গেল ৪৫ ডিগ্রিতে সেট করা আছে এবং জুম লেভেল ১৮-তেই স্থির রয়েছে।
ক্যামেরার ৪৫ ডিগ্রি দর্শন কোণ।

এই স্ক্রিনশটের মানচিত্রটি মূল মানচিত্রের মতোই একই বিন্দুতে কেন্দ্র করে আছে, কিন্তু মানচিত্রের উপরের দিকে আরও কিছু বৈশিষ্ট্য দেখা যাচ্ছে। আপনি যখন কোণটি ৪৫ ডিগ্রির বেশি বাড়াবেন, তখন ক্যামেরা এবং মানচিত্রের অবস্থানের মধ্যবর্তী বৈশিষ্ট্যগুলো আনুপাতিকভাবে বড় দেখাবে, আর মানচিত্রের অবস্থানের বাইরের বৈশিষ্ট্যগুলো আনুপাতিকভাবে ছোট দেখাবে, যার ফলে একটি ত্রিমাত্রিক প্রভাব তৈরি হয়।

জুম

ক্যামেরার জুম লেভেল মানচিত্রের স্কেল নির্ধারণ করে। বেশি জুম লেভেলে স্ক্রিনে আরও বিস্তারিত দেখা যায়, অন্যদিকে কম জুম লেভেলে স্ক্রিনে পৃথিবীর আরও বেশি অংশ দেখা যায়।

জুম লেভেলকে পূর্ণসংখ্যা হতে হবে এমন কোনো বাধ্যবাধকতা নেই। ম্যাপে অনুমোদিত জুম লেভেলের পরিসর লক্ষ্যবস্তু, ম্যাপের ধরন এবং স্ক্রিনের আকারসহ বিভিন্ন বিষয়ের উপর নির্ভর করে। এই পরিসরের বাইরের যেকোনো সংখ্যাকে তার নিকটতম বৈধ মানে রূপান্তরিত করা হবে, যা সর্বনিম্ন বা সর্বোচ্চ জুম লেভেল হতে পারে। নিচের তালিকাটি প্রতিটি জুম লেভেলে আপনি আনুমানিক কী পরিমাণ বিস্তারিত তথ্য দেখতে পাবেন তা দেখায়:

  • ১: বিশ্ব
  • ৫: ভূখণ্ড/মহাদেশ
  • ১০: শহর
  • ১৫: রাস্তা
  • ২০: ভবন
নিম্নলিখিত চিত্রগুলিতে বিভিন্ন জুম স্তরের দৃশ্যমান রূপ দেখানো হয়েছে:
৫ জুম লেভেলে তোলা একটি মানচিত্রের স্ক্রিনশট।
জুম লেভেল ৫-এর একটি মানচিত্র।
১৫ জুম লেভেলে তোলা একটি মানচিত্রের স্ক্রিনশট
১৫ জুম স্তরের একটি মানচিত্র।
জুম লেভেল ২০-এ একটি মানচিত্রের স্ক্রিনশট
জুম লেভেল ২০-এর একটি মানচিত্র।

ভগ্নাংশ জুম

ভেক্টর ম্যাপে ফ্র্যাকশনাল জুম সাপোর্ট করে, যা আপনাকে পূর্ণসংখ্যার পরিবর্তে ভগ্নাংশ ব্যবহার করে জুম করতে দেয়। যদিও রাস্টার এবং ভেক্টর উভয় ম্যাপেই ফ্র্যাকশনাল জুম সাপোর্ট করে, ভেক্টর ম্যাপের জন্য এটি ডিফল্টভাবে চালু থাকে এবং রাস্টার ম্যাপের জন্য ডিফল্টভাবে বন্ধ থাকে। ফ্র্যাকশনাল জুম চালু ও বন্ধ করতে isFractionalZoomEnabled ম্যাপ অপশনটি ব্যবহার করুন।

নিম্নলিখিত উদাহরণটি ম্যাপ ইনিশিয়ালাইজ করার সময় ফ্র্যাকশনাল জুম সক্রিয় করার পদ্ধতি দেখাচ্ছে:

map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: -34.397, lng: 150.644},
  zoom: 8,
  isFractionalZoomEnabled: true
});

এছাড়াও, এখানে দেখানো পদ্ধতি অনুযায়ী isFractionalZoomEnabled ম্যাপ অপশনটি সেট করে আপনি ফ্র্যাকশনাল জুম চালু বা বন্ধ করতে পারেন:

// Using map.set
map.set('isFractionalZoomEnabled', true);

// Using map.setOptions
map.setOptions({isFractionalZoomEnabled: true});

ফ্র্যাকশনাল জুম চালু আছে কিনা তা শনাক্ত করতে আপনি একটি লিসেনার সেট করতে পারেন; এটি সবচেয়ে বেশি কার্যকর হয় যদি আপনি স্পষ্টভাবে isFractionalZoomEnabled কে true বা false সেট না করে থাকেন। নিম্নলিখিত উদাহরণ কোডটি ফ্র্যাকশনাল জুম সক্রিয় আছে কিনা তা পরীক্ষা করে দেখে:

map.addListener('isfractionalzoomenabled_changed', () => {
  const isFractionalZoomEnabled = map.get('isFractionalZoomEnabled');
  if (isFractionalZoomEnabled === false) {
    console.log('not using fractional zoom');
  } else if (isFractionalZoomEnabled === true) {
    console.log('using fractional zoom');
  } else {
    console.log('map not done initializing yet');
  }
});