3D মানচিত্র মোড

Maps JavaScript API-তে নিম্নলিখিত 3D ম্যাপ মোডগুলো উপলব্ধ রয়েছে:

  • ROADMAP বেসম্যাপ লেবেলসহ ডিফল্ট রোড ম্যাপ ভিউ প্রদর্শন করে।
  • SATELLITE আকাশ থেকে তোলা ছবির ওপর ভিত্তি করে একটি আলোকচিত্রের মতো বাস্তবসম্মত মানচিত্র প্রদর্শন করে।
  • HYBRID বেসম্যাপ লেবেলসহ স্যাটেলাইট মানচিত্রের দৃশ্য প্রদর্শন করে।

ROADMAP মোডে থাকা থ্রিডি ম্যাপের একটি উদাহরণ নিচে দেওয়া হলো:

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

async function init() {
  const { Map3DElement } = await google.maps.importLibrary('maps3d');

  const map = new Map3DElement({
    center: {
      lat: 37.79334535092104,
      lng: -122.400742086205,
      altitude: 0,
    },
    range: 2400,
    tilt: 65,
    heading: 0,
    mode: 'ROADMAP',
    internalUsageAttributionIds: ['gmp_git_jsapisamples_v1_3d-rendering'],
  });

  document.body.append(map);

  // Create the controls container
  const controls = document.createElement('div');
  controls.id = 'controls';
  controls.classList.add('map-mode-control');

  // Create the select element
  const selector = document.createElement('select');
  selector.id = 'map-mode';

  const modes = ['ROADMAP', 'SATELLITE', 'HYBRID'];
  modes.forEach((modeName) => {
    const option = document.createElement('option');
    option.value = modeName;
    option.textContent = modeName;
    if (modeName === 'ROADMAP') {
      option.selected = true;
    }
    selector.appendChild(option);
  });

  selector.addEventListener('change', (event) => {
    map.mode = (event.target as HTMLSelectElement).value;
  });

  controls.appendChild(selector);
  document.body.appendChild(controls);
}

init();

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

async function init() {
    const { Map3DElement } = await google.maps.importLibrary('maps3d');
    const map = new Map3DElement({
        center: {
            lat: 37.79334535092104,
            lng: -122.400742086205,
            altitude: 0,
        },
        range: 2400,
        tilt: 65,
        heading: 0,
        mode: 'ROADMAP',
        internalUsageAttributionIds: ['gmp_git_jsapisamples_v1_3d-rendering'],
    });
    document.body.append(map);
    // Create the controls container
    const controls = document.createElement('div');
    controls.id = 'controls';
    controls.classList.add('map-mode-control');
    // Create the select element
    const selector = document.createElement('select');
    selector.id = 'map-mode';
    const modes = ['ROADMAP', 'SATELLITE', 'HYBRID'];
    modes.forEach((modeName) => {
        const option = document.createElement('option');
        option.value = modeName;
        option.textContent = modeName;
        if (modeName === 'ROADMAP') {
            option.selected = true;
        }
        selector.appendChild(option);
    });
    selector.addEventListener('change', (event) => {
        map.mode = event.target.value;
    });
    controls.appendChild(selector);
    document.body.appendChild(controls);
}
init();

সিএসএস

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
}

gmp-map-3d {
  height: 100%;
  width: 100%;
}

.map-mode-control {
  position: fixed;
  bottom: 24px;
  right: 75px;
  display: flex;
  align-items: center;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 8px;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  backdrop-filter: blur(8px);
  z-index: 1;
}

.map-mode-control select {
  font-size: 13px;
  padding: 4px 8px;
  border: 1px solid #dadce0;
  border-radius: 6px;
  background-color: white;
  color: #3c4043;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.map-mode-control select:hover {
  border-color: #1a73e8;
}

.map-mode-control select:focus {
  border-color: #1a73e8;
  box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

এইচটিএমএল

<html>

<head>
  <title>3d-map-roadmap</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: "alpha" });</script>
</head>

<body>
</body>

</html>

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

মূল সুবিধাগুলি

  • গ্লোব: এখন আপনি অ্যাবস্ট্রাক্ট এবং ফটোরিয়ালিস্টিক ম্যাপ ইমেজের সাহায্যে বিভিন্ন ব্যবহারের জন্য একটি পূর্ণাঙ্গ ম্যাপ অভিজ্ঞতা প্রদান করতে পারবেন।
  • কাস্টমাইজেশন: এখন আপনি সম্পূর্ণ কম্পোনেন্টটি রিলোড না করেই একটি কাস্টম বাটন বা ফাংশনের মাধ্যমে মোড পরিবর্তন করতে পারবেন।