# অবস্থান ডেটা ভিজুয়ালাইজ করুন  > স্কেচনোট করেছেন [নিত্য নারাসিমহান](https://github.com/nitya)। বড় সংস্করণের জন্য ছবিতে ক্লিক করুন। এই ভিডিওটি Azure Maps এবং IoT-এর একটি ওভারভিউ দেয়, যা এই পাঠে আলোচনা করা হবে। [](https://www.youtube.com/watch?v=P5i2GFTtb2s) > 🎥 উপরের ছবিতে ক্লিক করে ভিডিওটি দেখুন ## লেকচারের আগে কুইজ [লেকচারের আগে কুইজ](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/25) ## ভূমিকা গত পাঠে আপনি শিখেছেন কীভাবে আপনার সেন্সর থেকে GPS ডেটা সংগ্রহ করে সার্ভারলেস কোড ব্যবহার করে ক্লাউডে একটি স্টোরেজ কন্টেইনারে সংরক্ষণ করতে হয়। এখন আপনি শিখবেন কীভাবে সেই পয়েন্টগুলোকে Azure মানচিত্রে ভিজুয়ালাইজ করতে হয়। আপনি শিখবেন কীভাবে একটি ওয়েব পৃষ্ঠায় একটি মানচিত্র তৈরি করতে হয়, GeoJSON ডেটা ফরম্যাট সম্পর্কে জানতে এবং কীভাবে এটি ব্যবহার করে আপনার মানচিত্রে সমস্ত সংগৃহীত GPS পয়েন্ট প্লট করতে হয়। এই পাঠে আমরা আলোচনা করব: * [ডেটা ভিজুয়ালাইজেশন কী](../../../../../3-transport/lessons/3-visualize-location-data) * [মানচিত্র পরিষেবা](../../../../../3-transport/lessons/3-visualize-location-data) * [একটি Azure Maps রিসোর্স তৈরি করুন](../../../../../3-transport/lessons/3-visualize-location-data) * [ওয়েব পৃষ্ঠায় একটি মানচিত্র দেখান](../../../../../3-transport/lessons/3-visualize-location-data) * [GeoJSON ফরম্যাট](../../../../../3-transport/lessons/3-visualize-location-data) * [GeoJSON ব্যবহার করে মানচিত্রে GPS ডেটা প্লট করুন](../../../../../3-transport/lessons/3-visualize-location-data) > 💁 এই পাঠে সামান্য HTML এবং JavaScript ব্যবহার করা হবে। আপনি যদি HTML এবং JavaScript ব্যবহার করে ওয়েব ডেভেলপমেন্ট সম্পর্কে আরও জানতে চান, [শুরুদের জন্য ওয়েব ডেভেলপমেন্ট](https://github.com/microsoft/Web-Dev-For-Beginners) দেখুন। ## ডেটা ভিজুয়ালাইজেশন কী ডেটা ভিজুয়ালাইজেশন, নাম থেকেই বোঝা যায়, ডেটাকে এমনভাবে চিত্রিত করা যাতে এটি মানুষের জন্য সহজে বোঝা যায়। এটি সাধারণত চার্ট এবং গ্রাফের সাথে যুক্ত, তবে এটি যেকোনো পদ্ধতিতে ডেটাকে চিত্রিত করে উপস্থাপন করার একটি উপায়, যা মানুষকে ডেটা আরও ভালোভাবে বুঝতে এবং সিদ্ধান্ত নিতে সাহায্য করে। একটি সহজ উদাহরণ নেওয়া যাক - ফার্ম প্রকল্পে আপনি মাটির আর্দ্রতার রিডিং সংগ্রহ করেছিলেন। ২০২১ সালের ১লা জুন প্রতি ঘণ্টায় সংগৃহীত মাটির আর্দ্রতার ডেটার একটি টেবিল নিম্নরূপ হতে পারে: | তারিখ | রিডিং | | ---------------- | ------: | | ০১/০৬/২০২১ ০০:০০ | ২৫৭ | | ০১/০৬/২০২১ ০১:০০ | ২৬৮ | | ০১/০৬/২০২১ ০২:০০ | ২৯৫ | | ০১/০৬/২০২১ ০৩:০০ | ৩০৫ | | ০১/০৬/২০২১ ০৪:০০ | ৩২৫ | | ০১/০৬/২০২১ ০৫:০০ | ৩৫৯ | | ০১/০৬/২০২১ ০৬:০০ | ৩৯৮ | | ০১/০৬/২০২১ ০৭:০০ | ৪১০ | | ০১/০৬/২০২১ ০৮:০০ | ৪২৯ | | ০১/০৬/২০২১ ০৯:০০ | ৪৫১ | | ০১/০৬/২০২১ ১০:০০ | ৪৬০ | | ০১/০৬/২০২১ ১১:০০ | ৪৫২ | | ০১/০৬/২০২১ ১২:০০ | ৪২০ | | ০১/০৬/২০২১ ১৩:০০ | ৪০৮ | | ০১/০৬/২০২১ ১৪:০০ | ৪৩১ | | ০১/০৬/২০২১ ১৫:০০ | ৪৬২ | | ০১/০৬/২০২১ ১৬:০০ | ৪৩২ | | ০১/০৬/২০২১ ১৭:০০ | ৪০২ | | ০১/০৬/২০২১ ১৮:০০ | ৩৮৭ | | ০১/০৬/২০২১ ১৯:০০ | ৩৬০ | | ০১/০৬/২০২১ ২০:০০ | ৩৫৮ | | ০১/০৬/২০২১ ২১:০০ | ৩৫৪ | | ০১/০৬/২০২১ ২২:০০ | ৩৫৬ | | ০১/০৬/২০২১ ২৩:০০ | ৩৬২ | মানুষ হিসেবে এই ডেটা বোঝা কঠিন হতে পারে। এটি শুধুমাত্র সংখ্যার একটি প্রাচীর, যার কোনো অর্থ বোঝা যায় না। এই ডেটাকে ভিজুয়ালাইজ করার প্রথম ধাপ হতে পারে এটি একটি লাইন চার্টে প্লট করা:  এটি আরও উন্নত করা যেতে পারে একটি লাইন যোগ করে, যা দেখায় যে মাটির আর্দ্রতার রিডিং ৪৫০-এ পৌঁছালে স্বয়ংক্রিয় সেচ ব্যবস্থা চালু হয়েছিল:  এই চার্টটি খুব দ্রুত দেখায় মাটির আর্দ্রতার মাত্রা কী ছিল এবং সেচ ব্যবস্থা চালু হওয়ার পয়েন্টগুলো। চার্টই ডেটা ভিজুয়ালাইজ করার একমাত্র উপায় নয়। আবহাওয়া ট্র্যাক করা IoT ডিভাইসগুলো ওয়েব অ্যাপ বা মোবাইল অ্যাপ ব্যবহার করে আবহাওয়ার অবস্থা চিত্রিত করতে পারে, যেমন মেঘলা দিনের জন্য মেঘের প্রতীক, বৃষ্টির দিনের জন্য বৃষ্টির মেঘের প্রতীক ইত্যাদি। ডেটা ভিজুয়ালাইজ করার অনেক উপায় রয়েছে, কিছু গুরুতর, কিছু মজার। ✅ ভাবুন আপনি কীভাবে ডেটা ভিজুয়ালাইজ হতে দেখেছেন। কোন পদ্ধতিগুলো সবচেয়ে পরিষ্কার ছিল এবং দ্রুত সিদ্ধান্ত নিতে সাহায্য করেছে? সেরা ভিজুয়ালাইজেশনগুলো মানুষকে দ্রুত সিদ্ধান্ত নিতে সাহায্য করে। উদাহরণস্বরূপ, শিল্প যন্ত্রপাতি থেকে বিভিন্ন রিডিং দেখানোর জন্য একটি গেজের প্রাচীর বোঝা কঠিন হতে পারে, কিন্তু কিছু ভুল হলে একটি লাল আলো জ্বলে উঠলে মানুষ দ্রুত সিদ্ধান্ত নিতে পারে। কখনও কখনও সেরা ভিজুয়ালাইজেশন একটি জ্বলন্ত আলো! GPS ডেটার সাথে কাজ করার সময়, সবচেয়ে পরিষ্কার ভিজুয়ালাইজেশন হতে পারে ডেটাকে মানচিত্রে প্লট করা। উদাহরণস্বরূপ, একটি মানচিত্রে ডেলিভারি ট্রাক দেখালে একটি প্রসেসিং প্ল্যান্টের কর্মীরা দেখতে পারেন কখন ট্রাকগুলো পৌঁছাবে। যদি এই মানচিত্রটি কেবল ট্রাকের বর্তমান অবস্থানের ছবি দেখানোর চেয়ে বেশি কিছু দেখায়, যেমন ট্রাকের বিষয়বস্তু সম্পর্কে ধারণা দেয়, তাহলে প্ল্যান্টের কর্মীরা সেই অনুযায়ী পরিকল্পনা করতে পারেন - যদি তারা কাছাকাছি একটি রেফ্রিজারেটেড ট্রাক দেখে, তারা ফ্রিজে জায়গা প্রস্তুত করতে জানে। ## মানচিত্র পরিষেবা মানচিত্র নিয়ে কাজ করা একটি আকর্ষণীয় কাজ, এবং বেছে নেওয়ার জন্য অনেক পরিষেবা রয়েছে, যেমন Bing Maps, Leaflet, Open Street Maps, এবং Google Maps। এই পাঠে, আপনি [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) এবং কীভাবে এটি আপনার GPS ডেটা প্রদর্শন করতে পারে তা শিখবেন।  Azure Maps হলো "একটি ভূ-স্থানিক পরিষেবা এবং SDK-এর সংগ্রহ, যা ওয়েব এবং মোবাইল অ্যাপ্লিকেশনে ভৌগোলিক প্রেক্ষাপট প্রদান করতে তাজা মানচিত্র ডেটা ব্যবহার করে।" ডেভেলপারদের সরঞ্জাম সরবরাহ করা হয় সুন্দর, ইন্টারঅ্যাকটিভ মানচিত্র তৈরি করতে, যা ট্রাফিক রুট সুপারিশ, ট্রাফিক ঘটনার তথ্য প্রদান, ইনডোর নেভিগেশন, অনুসন্ধান ক্ষমতা, উচ্চতা তথ্য, আবহাওয়া পরিষেবা এবং আরও অনেক কিছু করতে পারে। ✅ কিছু [মানচিত্র কোড নমুনা](https://docs.microsoft.com/samples/browse?WT.mc_id=academic-17441-jabenn&products=azure-maps) নিয়ে পরীক্ষা করুন আপনি মানচিত্রগুলোকে একটি ফাঁকা ক্যানভাস, টাইলস, স্যাটেলাইট চিত্র, রাস্তা সহ স্যাটেলাইট চিত্র, বিভিন্ন ধরণের গ্রেস্কেল মানচিত্র, ছায়াযুক্ত রিলিফ সহ মানচিত্র, নাইট ভিউ মানচিত্র এবং একটি উচ্চ কনট্রাস্ট মানচিত্র হিসাবে প্রদর্শন করতে পারেন। [Azure Event Grid](https://azure.microsoft.com/services/event-grid/?WT.mc_id=academic-17441-jabenn)-এর সাথে একীভূত করে আপনার মানচিত্রে রিয়েল-টাইম আপডেট পেতে পারেন। আপনি বিভিন্ন নিয়ন্ত্রণ সক্রিয় করে মানচিত্রের চেহারা এবং আচরণ নিয়ন্ত্রণ করতে পারেন, যাতে মানচিত্রটি পিঞ্চ, ড্র্যাগ এবং ক্লিকের মতো ইভেন্টগুলিতে প্রতিক্রিয়া জানায়। আপনার মানচিত্রের চেহারা নিয়ন্ত্রণ করতে, আপনি বুদবুদ, লাইন, বহুভুজ, হিট ম্যাপ এবং আরও অনেক কিছু সহ স্তর যোগ করতে পারেন। আপনি কোন স্টাইলের মানচিত্র বাস্তবায়ন করবেন তা আপনার SDK পছন্দের উপর নির্ভর করে। আপনি Azure Maps API-তে অ্যাক্সেস করতে পারেন এর [REST API](https://docs.microsoft.com/javascript/api/azure-maps-rest/?WT.mc_id=academic-17441-jabenn&view=azure-maps-typescript-latest), এর [Web SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-map-control?WT.mc_id=academic-17441-jabenn), অথবা, যদি আপনি একটি মোবাইল অ্যাপ তৈরি করছেন, এর [Android SDK](https://docs.microsoft.com/azure/azure-maps/how-to-use-android-map-control-library?WT.mc_id=academic-17441-jabenn&pivots=programming-language-java-android) ব্যবহার করে। এই পাঠে, আপনি ওয়েব SDK ব্যবহার করে একটি মানচিত্র আঁকবেন এবং আপনার সেন্সরের GPS অবস্থানের পথ প্রদর্শন করবেন। ## একটি Azure Maps রিসোর্স তৈরি করুন আপনার প্রথম ধাপ হলো একটি Azure Maps অ্যাকাউন্ট তৈরি করা। ### কাজ - একটি Azure Maps রিসোর্স তৈরি করুন 1. আপনার টার্মিনাল বা কমান্ড প্রম্পট থেকে নিম্নলিখিত কমান্ডটি চালান `gps-sensor` রিসোর্স গ্রুপে একটি Azure Maps রিসোর্স তৈরি করতে: ```sh az maps account create --name gps-sensor \ --resource-group gps-sensor \ --accept-tos \ --sku S1 ``` এটি একটি `gps-sensor` নামে একটি Azure Maps রিসোর্স তৈরি করবে। ব্যবহৃত টিয়ারটি হলো `S1`, যা একটি পেইড টিয়ার, তবে এটি বিনামূল্যে একটি উদার পরিমাণ কল অন্তর্ভুক্ত করে। > 💁 Azure Maps ব্যবহারের খরচ দেখতে, [Azure Maps মূল্য নির্ধারণ পৃষ্ঠা](https://azure.microsoft.com/pricing/details/azure-maps/?WT.mc_id=academic-17441-jabenn) দেখুন। 1. মানচিত্র রিসোর্সের জন্য একটি API কী প্রয়োজন হবে। এই কীটি পেতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন: ```sh az maps account keys list --name gps-sensor \ --resource-group gps-sensor \ --output table ``` `PrimaryKey` মানটি কপি করে নিন। ## ওয়েব পৃষ্ঠায় একটি মানচিত্র দেখান এখন আপনি পরবর্তী ধাপে যেতে পারেন, যা হলো একটি ওয়েব পৃষ্ঠায় আপনার মানচিত্র প্রদর্শন করা। আমরা আপনার ছোট ওয়েব অ্যাপের জন্য কেবল একটি `html` ফাইল ব্যবহার করব; মনে রাখবেন যে একটি প্রোডাকশন বা টিম পরিবেশে, আপনার ওয়েব অ্যাপে আরও অনেক অংশ থাকতে পারে! ### কাজ - ওয়েব পৃষ্ঠায় একটি মানচিত্র দেখান 1. আপনার স্থানীয় কম্পিউটারে কোথাও একটি ফোল্ডারে `index.html` নামে একটি ফাইল তৈরি করুন। একটি মানচিত্র ধারণ করার জন্য HTML মার্কআপ যোগ করুন: ```html
``` মানচিত্রটি `myMap` `div`-এ লোড হবে। কয়েকটি স্টাইল এটিকে পৃষ্ঠার প্রস্থ এবং উচ্চতা জুড়ে প্রসারিত করতে দেয়। > 🎓 একটি `div` হলো একটি ওয়েব পৃষ্ঠার একটি অংশ, যা নামকরণ এবং স্টাইল করা যায়। 1. `` ট্যাগের নিচে, মানচিত্র প্রদর্শন নিয়ন্ত্রণ করার জন্য একটি বাহ্যিক স্টাইল শীট এবং এর আচরণ পরিচালনা করার জন্য Web SDK থেকে একটি বাহ্যিক স্ক্রিপ্ট যোগ করুন: ```html ``` এই স্টাইল শীটে মানচিত্রের চেহারার সেটিংস রয়েছে এবং স্ক্রিপ্ট ফাইলে মানচিত্র লোড করার কোড রয়েছে। এই কোড যোগ করা C++ হেডার ফাইল অন্তর্ভুক্ত করা বা Python মডিউল আমদানি করার মতো। 1. সেই স্ক্রিপ্টের নিচে, মানচিত্র চালু করার জন্য একটি স্ক্রিপ্ট ব্লক যোগ করুন। ```javascript ``` `