একটি ডেটাসেট ফিচার লেয়ারের style প্রপার্টিকে google.maps.FeatureStyleFunction (যেখানে স্টাইলিং লজিক থাকতে পারে) অথবা google.maps.FeatureStyleOptions (যা একটি লেয়ারের সমস্ত ফিচারকে একইভাবে স্টাইল করতে পারে) হিসেবে সেট করে ডেটা ফিচারগুলিতে স্টাইল প্রয়োগ করুন। আপনি ডেটা ফিচারগুলিতে ফিল (রঙ, অস্বচ্ছতা), স্ট্রোক (রঙ, অস্বচ্ছতা, স্ট্রোকের পুরুত্ব) এবং ডায়ামিটার (পয়েন্ট)-এর জন্য স্টাইল প্রয়োগ করতে পারেন। এই পৃষ্ঠাটি দেখায় কিভাবে প্রোগ্রাম্যাটিকভাবে একটি ডেটাসেট অ্যাক্সেস করে তার ফিচারগুলিকে স্টাইল করতে হয় এবং পয়েন্ট, পলিগন ও পলিলাইন জ্যামিতির উপর ভিত্তি করে ডেটা ফিচারগুলির স্টাইলিং-এর উদাহরণগুলি ধাপে ধাপে ব্যাখ্যা করে।
ডেটাসেটের জন্য ডেটা-চালিত স্টাইলিং, ডেটাসেটটি তৈরি করতে ব্যবহৃত ভূ-স্থানিক ডেটা ফাইল থেকে প্রদত্ত অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের উপর ভিত্তি করে ডেটা ফিচারগুলিকে রেন্ডার করে।
ডেটা বৈশিষ্ট্য অ্যাট্রিবিউট
একটি ডেটাসেটের সমস্ত ডেটা ফিচার স্টাইল ফাংশনে অ্যাক্সেস করা যায়। ডেটা ফিচার অ্যাট্রিবিউটগুলো পেতে, প্রথমে ডেটাসেট ফিচারটি নিন, যেটিতে ডেটাসেটের সমস্ত ডেটা থাকে, তারপর আপনার কাঙ্ক্ষিত নির্দিষ্ট ডেটা অ্যাট্রিবিউটটি নিন, যেমনটি এখানে দেখানো হয়েছে:
টাইপস্ক্রিপ্ট
// Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor'];
জাভাস্ক্রিপ্ট
// Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor'];
বৈশিষ্ট্য শৈলী বিকল্প
ফিচার স্টাইল অপশন হলো এমন একটি জায়গা যেখানে আপনি একটি ডেটা ফিচার লেয়ারের জন্য স্টাইলিং নির্ধারণ করেন, যেমন—পলিগনের ফিল ও স্ট্রোকের স্টাইল, অথবা পয়েন্টের রঙ ও ব্যাস। নিচের উদাহরণটিতে ফিচার স্টাইল অপশন দেখানো হয়েছে, যা কোনো ফিচারের style প্রপার্টি ব্যবহার করে সরাসরি প্রয়োগ করা যেতে পারে:
টাইপস্ক্রিপ্ট
// Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 };
জাভাস্ক্রিপ্ট
// Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 };
বৈশিষ্ট্য শৈলী ফাংশন
ডেটা সেট ফিচারগুলোর স্টাইল নির্ধারণের জন্য লজিক সংজ্ঞায়িত করতে একটি ফিচার স্টাইল ফাংশন ব্যবহার করুন। কোনো ফিচারকে স্টাইল করতে, style প্রপার্টিটিকে একটি google.maps.FeatureStyleFunction এ সেট করুন। স্টাইল ফাংশন হলো সেই জায়গা যেখানে আপনি একটি ফিচার লেয়ারের স্বতন্ত্র ফিচারগুলোকে স্টাইল করার জন্য লজিক সংজ্ঞায়িত করেন। যখন featureLayer.style সেট করা হয়, তখন প্রভাবিত ফিচার লেয়ারের প্রতিটি ফিচারের উপর স্টাইল ফাংশনটি প্রয়োগ করা হয়। আপনি যখন স্টাইল প্রপার্টিটি সেট করেন, তখনই ফাংশনটি প্রয়োগ করা হয়। এটি আপডেট করতে, আপনাকে অবশ্যই স্টাইল প্রপার্টিটি আবার সেট করতে হবে। নিম্নলিখিত উদাহরণটি একটি সাধারণ ফিচার স্টাইল ফাংশন প্রদর্শন করে:
টাইপস্ক্রিপ্ট
const styleDefault = { strokeColor: 'green', strokeWeight: 2.0, strokeOpacity: 1.0, fillColor: 'green', fillOpacity: 0.3, }; const styleClicked = { ...styleDefault, strokeColor: 'blue', fillColor: 'blue', fillOpacity: 0.5, }; const styleMouseMove = { ...styleDefault, strokeWeight: 4.0, }; function applyStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // Note, 'globalid' is an attribute in this dataset. if ( lastClickedFeatureIds.includes( datasetFeature.datasetAttributes['globalid'] ) ) { return styleClicked; } if ( lastInteractedFeatureIds.includes( datasetFeature.datasetAttributes['globalid'] ) ) { return styleMouseMove; } return styleDefault; }
জাভাস্ক্রিপ্ট
const styleDefault = { strokeColor: 'green', strokeWeight: 2.0, strokeOpacity: 1.0, fillColor: 'green', fillOpacity: 0.3, }; const styleClicked = { ...styleDefault, strokeColor: 'blue', fillColor: 'blue', fillOpacity: 0.5, }; const styleMouseMove = { ...styleDefault, strokeWeight: 4.0, }; function applyStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // Note, 'globalid' is an attribute in this dataset. if (lastClickedFeatureIds.includes(datasetFeature.datasetAttributes['globalid'])) { return styleClicked; } if (lastInteractedFeatureIds.includes(datasetFeature.datasetAttributes['globalid'])) { return styleMouseMove; } return styleDefault; }
ফিচারগুলোর উপর প্রয়োগ করা হলে স্টাইল ফাংশনটির ফলাফল সর্বদা সামঞ্জস্যপূর্ণ হওয়া উচিত। উদাহরণস্বরূপ, আপনি যদি একগুচ্ছ ফিচারকে এলোমেলোভাবে রঙ করতে চান, তবে সেই এলোমেলো করার অংশটি ফিচার স্টাইল ফাংশনের মধ্যে থাকা উচিত নয়, কারণ এতে অনাকাঙ্ক্ষিত ফলাফল দেখা দেবে। যেহেতু এই ফাংশনটি একটি লেয়ারের প্রতিটি ফিচারের উপর চলে, তাই অপটিমাইজেশন গুরুত্বপূর্ণ। রেন্ডারিং-এর সময়ের উপর প্রভাব এড়াতে, যখন কোনো লেয়ার আর ব্যবহৃত হচ্ছে না, তখন স্টাইলকে null সেট করুন।
পয়েন্ট ডেটা স্টাইলিং উদাহরণ
এই উদাহরণটি পয়েন্ট জ্যামিতি ভিত্তিক ডেটা ফিচার স্টাইল করার একটি পদ্ধতি দেখায়।
ডেটাসেট সম্পর্কে
এই উদাহরণে ব্যবহৃত ডেটাসেটটি নিউ ইয়র্ক সিটির সেন্ট্রাল পার্কে ২০১৮ সালে পরিচালিত একটি কাঠবিড়ালি জরিপের ফলাফল। CSV ডেটা ফাইল থেকে নেওয়া নিম্নলিখিত অংশে আমরা দেখতে পাই যে, x এবং y কলাম দুটি ভৌগোলিক অবস্থানের জন্য ব্যবহৃত হয়েছে; একটি LatLng কলামও অন্তর্ভুক্ত আছে, কিন্তু এই উদাহরণে তা ব্যবহার করা হয়নি, কারণ ভৌগোলিক অবস্থান অবশ্যই দুটি কলামের মাধ্যমে প্রকাশ করতে হয়। কাঠবিড়ালি শুমারি ডেটাসেটটিতে তাদের পশমের রঙ এবং আচরণ সম্পর্কিত বিভিন্ন ধরনের ডেটা পয়েন্টের একটি চমৎকার সমাহার রয়েছে (সবকিছু দেখতে অবশ্যই আনুভূমিকভাবে স্ক্রল করবেন)।
| এক্স | ওয়াই | ইউনিকস্কুইরেলআইডি | হেক্টর | শিফট | তারিখ | হেক্টর কাঠবিড়ালি সংখ্যা | বয়স | প্রাথমিক পশমের রঙ | হাইলাইটফারকালার | প্রাথমিক এবং হাইলাইট রঙের সংমিশ্রণ | কালারনোটস | অবস্থান | ভূপৃষ্ঠের উপরের সাইটার পরিমাপ | নির্দিষ্ট অবস্থান | দৌড়ানো | ধাওয়া করা | আরোহণ | খাওয়া | খাদ্য অন্বেষণ | অন্যান্য কার্যকলাপ | কুকস | কোয়াস | আর্তনাদ | লেজপতাকা | লেজ নাড়ানো | পদ্ধতি | উদাসীন | দৌড় থেকে | অন্যান্য মিথস্ক্রিয়া | অক্ষাংশ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -৭৩.৯৫৬১৩৪৪৯৩৭৮৬১ | ৪০.৭৯৪০৮২৩৮৮৪০৮৬ | ৩৭এফ-পিএম-১০১৪-০৩ | ৩৭এফ | বিকেল | ১০১৪২০১৮ | ৩ | + | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | পয়েন্ট (-৭৩.৯৫৬১৩৪৪৯৩৭৮৬১ ৪০.৭৯৪০৮২৩৮৮৪০৮৬) | |||||||||
| -৭৩.৯৬৮৮৫৭৪৬৯১১০২ | ৪০.৭৮৩৭৮২৫২০৮৪৪৪ | ২১বি-এএম-১০১৯-০৪ | ২১খ | সকাল | ১০১৯২০১৮ | ৪ | + | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | পয়েন্ট (-৭৩.৯৬৮৮৫৭৪৬৯১১০২ ৪০.৭৮৩৭৮২৫২০৮৪৪৪) | |||||||||
| -৭৩.৯৭৪২৮১১৪৮৪৮৫২ | ৪০.৭৭৫৫৩৩৬১৯০৮৩ | ১১বি-পিএম-১০১৪-০৮ | ১১খ | বিকেল | ১০১৪২০১৮ | ৮ | ধূসর | গ্রে+ | মাটির উপরে | ১০ | মিথ্যা | সত্য | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | পয়েন্ট (-৭৩.৯৭৪২৮১১৪৮৪৮৫২২ ৪০.৭৭৫৫৩৩৬১৯০৮৩) | ||||||
| -৭৩.৯৫৯৬৪১৩৯০৩৯৪৮ | ৪০.৭৯০৩১২৮৮৮৯০২৯ | ৩২ই-পিএম-১০১৭-১৪ | ৩২ই | বিকেল | ১০১৭২০১৮ | ১৪ | প্রাপ্তবয়স্ক | ধূসর | গ্রে+ | প্রাইমারি হিসেবে কিছুই নির্বাচন করা হয়নি। হাইলাইটস হিসেবে ধূসর রঙ নির্বাচন করা হয়েছে। কার্যনির্বাহী সমন্বয় করা হয়েছে। | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | সত্য | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | পয়েন্ট (-৭৩.৯৫৯৬৪১৩৯০৩৯৪৮ ৪০.৭৯০৩১২৮৮৮৯০২৯) | ||||||
| -৭৩.৯৭০২৬৭৬৪৭২৬১৩ | ৪০.৭৭৬২১২৬৮৫৪৮৯৪ | ১৩ই-এএম-১০১৭-০৫ | ১৩ই | সকাল | ১০১৭২০১৮ | ৫ | প্রাপ্তবয়স্ক | ধূসর | দারুচিনি | ধূসর+দারুচিনি | মাটির উপরে | গাছের গুঁড়ির উপর | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | পয়েন্ট (-৭৩.৯৭০২৬৭৬৪৭২৬১৩ ৪০.৭৭৬২১২৬৮৫৪৮৯৪) | ||||
| -৭৩.৯৬৮৩৬১৩৫১৬২২৫ | ৪০.৭৭২৫৯০৮৮৪৭৪৯৯ | ১১এইচ-এএম-১০১০-০৩ | ১১এইচ | সকাল | ১০১০২০১৮ | ৩ | প্রাপ্তবয়স্ক | দারুচিনি | সাদা | দারুচিনি+সাদা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | মিথ্যা | সত্য | মিথ্যা | পয়েন্ট (-৭৩.৯৬৮৩৬১৩৫১৬২২৫ ৪০.৭৭২৫৯০৮৮৪৭৪৯৯) | ||||||
| -৭৩.৯৫৪১২০১৭৮৯৭৯৫ | ৪০.৭৯৩১৮১১৭০১০৮২ | ৩৬এইচ-এএম-১০১০-০২ | ৩৬ ঘণ্টা | সকাল | ১০১০২০১৮ | ২ | প্রাপ্তবয়স্ক | ধূসর | গ্রে+ | হেক্টরের ঠিক বাইরে | ভূমি সমতল | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | সত্য | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | মিথ্যা | পয়েন্ট (-৭৩.৯৫৪১২০১৭৮৯৭৯৫ ৪০.৭৯৩১৮১১৭০১০৮২) |
স্টাইল পয়েন্ট ডেটা বৈশিষ্ট্য
এই উদাহরণের কোডটি একটি সহজ পদ্ধতি অবলম্বন করে, যেখানে CombinationofPrimaryandHighlightColor অ্যাট্রিবিউটের উপর ভিত্তি করে প্রতিটি পয়েন্টের ফিল কালার এবং স্ট্রোক কালার স্টাইল করা হয়, যা প্রতিটি কাঠবিড়ালির প্রাথমিক ও মাধ্যমিক পশমের রঙকে একত্রিত করে।
টাইপস্ক্রিপ্ট
function setStyle(/* FeatureStyleFunctionOptions */ params) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor']; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return /* FeatureStyleOptions */ { fillColor: 'black', pointRadius: 8 }; break; case 'Cinnamon+': return /* FeatureStyleOptions */ { fillColor: '#8b0000', pointRadius: 8 }; break; case 'Cinnamon+Gray': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6 }; break; case 'Cinnamon+White': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6 }; break; case 'Gray+': return /* FeatureStyleOptions */ { fillColor: 'gray', pointRadius: 8 }; break; case 'Gray+Cinnamon': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+Cinnamon, White': return /* FeatureStyleOptions */ { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+White': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: 'white', pointRadius: 6 }; break; default: // Color not defined. return /* FeatureStyleOptions */ { fillColor: 'yellow', pointRadius: 8 }; break; } }
জাভাস্ক্রিপ্ট
function setStyle(/* FeatureStyleFunctionOptions */ params) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor']; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return /* FeatureStyleOptions */ { fillColor: 'black', pointRadius: 8 }; break; case 'Cinnamon+': return /* FeatureStyleOptions */ { fillColor: '#8b0000', pointRadius: 8 }; break; case 'Cinnamon+Gray': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6 }; break; case 'Cinnamon+White': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6 }; break; case 'Gray+': return /* FeatureStyleOptions */ { fillColor: 'gray', pointRadius: 8 }; break; case 'Gray+Cinnamon': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+Cinnamon, White': return /* FeatureStyleOptions */ { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+White': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: 'white', pointRadius: 6 }; break; default: // Color not defined. return /* FeatureStyleOptions */ { fillColor: 'yellow', pointRadius: 8 }; break; } }
সম্পূর্ণ উদাহরণ কোড
সম্পূর্ণ উদাহরণ সোর্স কোড দেখুন
টাইপস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement; let innerMap; function setStyle(/* FeatureStyleFunctionOptions */ params) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor']; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return /* FeatureStyleOptions */ { fillColor: 'black', pointRadius: 8 }; break; case 'Cinnamon+': return /* FeatureStyleOptions */ { fillColor: '#8b0000', pointRadius: 8 }; break; case 'Cinnamon+Gray': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6 }; break; case 'Cinnamon+White': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6 }; break; case 'Gray+': return /* FeatureStyleOptions */ { fillColor: 'gray', pointRadius: 8 }; break; case 'Gray+Cinnamon': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+Cinnamon, White': return /* FeatureStyleOptions */ { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+White': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: 'white', pointRadius: 6 }; break; default: // Color not defined. return /* FeatureStyleOptions */ { fillColor: 'yellow', pointRadius: 8 }; break; } } async function initMap() { // Request needed libraries. await google.maps.importLibrary('maps') as google.maps.MapsLibrary; // Get the inner map. innerMap = mapElement.innerMap; await google.maps.event.addListenerOnce(innerMap, 'idle', () => { // Add the data legend. makeLegend(innerMap); }); // Dataset ID for squirrel dataset. const datasetId = 'a99635b0-5e73-4b2a-8ae3-cb40f4b7f47e'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = setStyle; } // Creates a legend for the map. async function makeLegend(innerMap) { let colors = { 'black': ['black'], 'cinnamon': ['#8b0000'], 'cinnamon + gray': ['#8b0000','gray'], 'cinnamon + white': ['#8b0000', 'white'], 'gray': ['gray'], 'gray + cinnamon': ['gray', '#8b0000'], 'gray + cinnamon + white': ['silver', '#8b0000'], 'gray + white': ['gray', 'white'], 'no color data': ['yellow'], }; let legend = document.getElementById('legend'); legend!.id = 'legend'; let title = document.createElement('div'); title.innerText = 'Fur Colors'; title.classList.add('title'); legend!.appendChild(title); let color; for (color in colors) { let wrapper = document.createElement('div'); wrapper.id = 'container'; let box = document.createElement('div'); box.style.backgroundColor = colors[color][0]; if (colors[color][1]) { box.style.borderColor = colors[color][1]; } else { box.style.borderColor = colors[color][0]; } box.classList.add('box'); let txt = document.createElement('div'); txt.classList.add('legend'); txt.innerText = color; wrapper.appendChild(box); wrapper.appendChild(txt); legend!.appendChild(wrapper); } } initMap();
জাভাস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map'); let innerMap; function setStyle(/* FeatureStyleFunctionOptions */ params) { // Get the dataset feature, so we can work with all of its attributes. const datasetFeature = params.feature; // Get all of the needed dataset attributes. const furColors = datasetFeature.datasetAttributes['CombinationofPrimaryandHighlightColor']; // Apply styles. Fill is primary fur color, stroke is secondary fur color. switch (furColors) { case 'Black+': return /* FeatureStyleOptions */ { fillColor: 'black', pointRadius: 8 }; break; case 'Cinnamon+': return /* FeatureStyleOptions */ { fillColor: '#8b0000', pointRadius: 8 }; break; case 'Cinnamon+Gray': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'gray', pointRadius: 6 }; break; case 'Cinnamon+White': return /* FeatureStyleOptions */ { fillColor: '#8b0000', strokeColor: 'white', pointRadius: 6 }; break; case 'Gray+': return /* FeatureStyleOptions */ { fillColor: 'gray', pointRadius: 8 }; break; case 'Gray+Cinnamon': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+Cinnamon, White': return /* FeatureStyleOptions */ { fillColor: 'silver', strokeColor: '#8b0000', pointRadius: 6 }; break; case 'Gray+White': return /* FeatureStyleOptions */ { fillColor: 'gray', strokeColor: 'white', pointRadius: 6 }; break; default: // Color not defined. return /* FeatureStyleOptions */ { fillColor: 'yellow', pointRadius: 8 }; break; } } async function initMap() { // Request needed libraries. await google.maps.importLibrary('maps'); // Get the inner map. innerMap = mapElement.innerMap; await google.maps.event.addListenerOnce(innerMap, 'idle', () => { // Add the data legend. makeLegend(innerMap); }); // Dataset ID for squirrel dataset. const datasetId = 'a99635b0-5e73-4b2a-8ae3-cb40f4b7f47e'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = setStyle; } // Creates a legend for the map. async function makeLegend(innerMap) { let colors = { 'black': ['black'], 'cinnamon': ['#8b0000'], 'cinnamon + gray': ['#8b0000', 'gray'], 'cinnamon + white': ['#8b0000', 'white'], 'gray': ['gray'], 'gray + cinnamon': ['gray', '#8b0000'], 'gray + cinnamon + white': ['silver', '#8b0000'], 'gray + white': ['gray', 'white'], 'no color data': ['yellow'], }; let legend = document.getElementById('legend'); legend.id = 'legend'; let title = document.createElement('div'); title.innerText = 'Fur Colors'; title.classList.add('title'); legend.appendChild(title); let color; for (color in colors) { let wrapper = document.createElement('div'); wrapper.id = 'container'; let box = document.createElement('div'); box.style.backgroundColor = colors[color][0]; if (colors[color][1]) { box.style.borderColor = colors[color][1]; } else { box.style.borderColor = colors[color][0]; } box.classList.add('box'); let txt = document.createElement('div'); txt.classList.add('legend'); txt.innerText = color; wrapper.appendChild(box); wrapper.appendChild(txt); legend.appendChild(wrapper); } } initMap();
সিএসএস
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } #attributionLabel { background-color: rgba(255, 255, 255, 0.8); font-family: 'Roboto' ,'Arial', 'sans-serif'; font-size: 10px; padding: 2px; margin: 2px; } #legend, #dataset, #counter { background-color: #e5e5e5; width: 15em; margin-left: 1em; border-radius: 8px; font-family: Roboto; overflow: hidden; } #dataset select { border-radius: 0; padding: 0.1em; border: 1px solid black; width: auto; margin: 0.5em 1em; } .title { padding: 0.5em 1em; font-weight: bold; font-size: 1.5em; margin-bottom: 0.5em; background-color: rgb(66, 133, 244); color: white; width: 100%; } .button { font-size: 1.2em; margin: 1em; background-color: rgb(66, 133, 244); color: white; padding: 0.5em; border-radius: 8px; } #legend #container { margin: 0.5em; display: flex; } #legend div .box { display: flex; width: 1em; height: 1em; border-radius: 50%; border: 2px solid; } #legend div .legend { display: flex; padding: 0.3em; }
এইচটিএমএল
<html>
<head>
<title>Style a point data feature</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", internalUsageAttributionIds: "gmp_git_jsapisamples_v1_data-driven-styling" });</script>
</head>
<body>
<gmp-map
map-id="5cd2c9ca1cf05670"
center="40.780101, -73.967780"
zoom="17"
map-type-control="false"
street-view-control="false"
fullscreen-control="false">
<div id="legend" slot="control-inline-start-block-start"></div>
<div id="attributionLabel" slot="control-block-end-inline-start">
Data source: NYC Open Data
</div>
</gmp-map>
</body>
</html>নমুনা চেষ্টা করুন
বহুভুজ ডেটা স্টাইলিং উদাহরণ
এই উদাহরণটি বহুভুজ জ্যামিতি ভিত্তিক ডেটা ফিচার স্টাইল করার একটি পদ্ধতি দেখায়।
ডেটাসেট সম্পর্কে
এই উদাহরণে ব্যবহৃত ডেটাসেটটি নিউ ইয়র্ক শহরের পার্কগুলোকে চিত্রিত করে। ডেটাসেটের GeoJSON ফাইল থেকে নেওয়া নিম্নলিখিত অংশটি একটি প্রতিনিধিত্বমূলক ফিচার এন্ট্রি প্রদর্শন করে।
{ "type": "Feature", "properties": { "jurisdiction": "DPR", "mapped": "False", "zipcode": "11356", "acres": "0.05", "location": "College Pl., College Pt. Blvd., bet. 11 Ave. and 12 Ave.", "nys_assembly": "27", "councildistrict": "19", "url": "http://www.nycgovparks.org/parks/Q042/", "typecategory": "Triangle/Plaza", "us_congress": "14", "eapply": "Poppenhusen Park", "parentid": "Q-07", "gispropnum": "Q042", "retired": "false", "communityboard": "407", "objectid": "6248", "globalid": "F4810079-CBB9-4BE7-BBFA-B3C0C35D5DE5", "name311": "Poppenhusen Park", "department": "Q-07", "pip_ratable": "true", "subcategory": "Sitting Area/Triangle/Mall", "precinct": "109", "permit": "true", "acquisitiondate": null, "omppropid": "Q042", "gisobjid": "100000301", "signname": "Poppenhusen Park", "address": null, "permitparent": "Q-07", "class": "PARK", "nys_senate": "11", "permitdistrict": "Q-07", "borough": "Q", "waterfront": "false" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -73.84575702371716, 40.78796240884273 ], [ -73.84593393292693, 40.78796857347548 ], [ -73.84577256469657, 40.787651355629556 ], [ -73.84575702371716, 40.78796240884273 ] ] ] ] } },
বহুভুজ ডেটা বৈশিষ্ট্যগুলির শৈলী
এই উদাহরণের কোডটি 'Undeveloped' বা 'Parkway' typecategory সাথে যুক্ত ডেটা ফিচারগুলিতে বিশেষ রঙ প্রয়োগ করে এবং অন্য সব ফিচারকে সবুজ রঙে রাঙিয়ে দেয়।
টাইপস্ক্রিপ্ট
function setStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // 'typecategory' is an attribute in this Dataset. const typeCategory = datasetFeature.datasetAttributes['typecategory']; switch (typeCategory) { case 'Undeveloped': // Color undeveloped areas blue. return /* FeatureStyleOptions */ { strokeColor: 'blue', strokeWeight: 2, strokeOpacity: 1, fillColor: 'blue', fillOpacity: 0.3, }; break; case 'Parkway': // Color historical house sites red. return /* FeatureStyleOptions */ { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1, fillColor: 'red', fillOpacity: 0.5, }; break; default: // Color other type categories green. return /* FeatureStyleOptions */ { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, }; break; } }
জাভাস্ক্রিপ্ট
function setStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // 'typecategory' is an attribute in this Dataset. const typeCategory = datasetFeature.datasetAttributes['typecategory']; switch (typeCategory) { case 'Undeveloped': // Color undeveloped areas blue. return /* FeatureStyleOptions */ { strokeColor: 'blue', strokeWeight: 2, strokeOpacity: 1, fillColor: 'blue', fillOpacity: 0.3, }; break; case 'Parkway': // Color historical house sites red. return /* FeatureStyleOptions */ { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1, fillColor: 'red', fillOpacity: 0.5, }; break; default: // Color other type categories green. return /* FeatureStyleOptions */ { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, }; break; } }
সম্পূর্ণ উদাহরণ কোড
সম্পূর্ণ উদাহরণ সোর্স কোড দেখুন
টাইপস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement; let innerMap; function setStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // 'typecategory' is an attribute in this Dataset. const typeCategory = datasetFeature.datasetAttributes['typecategory']; switch (typeCategory) { case 'Undeveloped': // Color undeveloped areas blue. return /* FeatureStyleOptions */ { strokeColor: 'blue', strokeWeight: 2, strokeOpacity: 1, fillColor: 'blue', fillOpacity: 0.3, }; break; case 'Parkway': // Color historical house sites red. return /* FeatureStyleOptions */ { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1, fillColor: 'red', fillOpacity: 0.5, }; break; default: // Color other type categories green. return /* FeatureStyleOptions */ { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, }; break; } } async function initMap() { // Request needed libraries. await google.maps.importLibrary("maps") as google.maps.MapsLibrary; // Get the inner map. innerMap = mapElement.innerMap; // Dataset ID for NYC park data. const datasetId = 'a75dd002-ad20-4fe6-af60-27cd2ed636b4'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = setStyle; } initMap();
জাভাস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map'); let innerMap; function setStyle(/* FeatureStyleFunctionOptions */ params) { const datasetFeature = params.feature; // 'typecategory' is an attribute in this Dataset. const typeCategory = datasetFeature.datasetAttributes['typecategory']; switch (typeCategory) { case 'Undeveloped': // Color undeveloped areas blue. return /* FeatureStyleOptions */ { strokeColor: 'blue', strokeWeight: 2, strokeOpacity: 1, fillColor: 'blue', fillOpacity: 0.3, }; break; case 'Parkway': // Color historical house sites red. return /* FeatureStyleOptions */ { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1, fillColor: 'red', fillOpacity: 0.5, }; break; default: // Color other type categories green. return /* FeatureStyleOptions */ { strokeColor: 'green', strokeWeight: 2, strokeOpacity: 1, fillColor: 'green', fillOpacity: 0.3, }; break; } } async function initMap() { // Request needed libraries. await google.maps.importLibrary("maps"); // Get the inner map. innerMap = mapElement.innerMap; // Dataset ID for NYC park data. const datasetId = 'a75dd002-ad20-4fe6-af60-27cd2ed636b4'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); datasetLayer.style = setStyle; } initMap();
সিএসএস
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } #attribution { background-color: rgba(255, 255, 255, 0.7); font-family: "Roboto", "Arial", "sans-serif"; font-size: 10px; padding: 2px; margin: 2px; }
এইচটিএমএল
<html>
<head>
<title>Style a polygon data feature with more detail</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", internalUsageAttributionIds: "gmp_git_jsapisamples_v1_data-driven-styling" });</script>
</head>
<body>
<gmp-map center="40.580732, -74.152826" zoom="14" map-id="5cd2c9ca1cf05670">
<div id="attribution" slot="control-block-end-inline-start">Data source: NYC Open Data</div>
</gmp-map>
</body>
</html>নমুনা চেষ্টা করুন
পলিলাইন ডেটা স্টাইলিং উদাহরণ
এই উদাহরণটি পলিলাইন জ্যামিতি ভিত্তিক ডেটা ফিচার স্টাইল করার একটি পদ্ধতি দেখায়।
ডেটাসেট সম্পর্কে
এই উদাহরণে ব্যবহৃত ডেটাসেটটি সিয়াটল এলাকার সেতুগুলো দেখায়। ডেটাসেটের GeoJSON ফাইল থেকে নেওয়া নিম্নলিখিত অংশটি একটি প্রতিনিধিত্বমূলক ফিচার এন্ট্রি প্রদর্শন করে।
{ "type": "Feature", "properties": { "OBJECTID": 1, "COMPTYPE": 66, "COMPKEY": 515774, "HANSEGKEY": 489781, "UNITID": "BRG-935", "UNITTYPE": " ", "BRGUNITID": "BRG-935", "UNITDESC_BRG": "YALE AVE BR REV LANE OC ", "UNITDESC_SEG": "HOWELL ST ON RP BETWEEN HOWELL ST AND I5 SB ", "INSTDATE": null, "EXPDATE": null, "STATUS": " ", "STATUSDT": null, "CONDITION": " ", "CONDDT": null, "OWN": " ", "LSTVERIFY": null, "MAINTBY": " ", "ADDBY": "GARCIAA", "ADDDTTM": "2010-01-21T00:00:00Z", "MODBY": null, "MODDTTM": null, "BR_NBR": 935, "BR_CODE": " 935", "BR_TYPE": "ST", "BR_NAME": "YALE AVE BR REV LANE OC", "BR_FACILITIES": "YALE AVE-SR 5 ON RAMP", "BR_FEATURES": "SR 5 REV LANE", "BR_RATING": 0, "BR_INSET": 1, "BR_GEO": "DT", "BR_OWNER": "DOT", "BR_OWNER_NAME": "State of Washington", "GEOBASID": 0, "XGEOBASID": 0, "GISSEGKEY": 489781, "EARTHQUAKE_RESPONSE_TEAM": " ", "SHAPE_Length": 220.11891836147655 }, "geometry": { "type": "LineString", "coordinates": [ [ -122.329201929090928, 47.616910448708538 ], [ -122.329206483407461, 47.616976719821004 ], [ -122.32921802149356, 47.617042137515213 ], [ -122.329236413912909, 47.617105967923777 ], [ -122.329261454336034, 47.617167494985758 ], [ -122.329292861855023, 47.617226028479571 ], [ -122.329330284134699, 47.617280911766009 ], [ -122.329373301365223, 47.617331529154569 ], [ -122.329421430971635, 47.617377312810319 ], [ -122.329474133027375, 47.617417749124023 ], [ -122.32953081631139, 47.617452384473893 ] ] } },
পলিলাইন ডেটা বৈশিষ্ট্যগুলির শৈলী
নিম্নলিখিত কোড স্নিপেটটি সরাসরি সমস্ত ডেটা ফিচারে একই স্টাইল প্রয়োগ করে। যেহেতু কোনো লজিকের প্রয়োজন নেই, তাই এক্ষেত্রে কোনো ফিচার স্টাইল ফাংশন ব্যবহার করা হয়নি।
টাইপস্ক্রিপ্ট
// Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 };
জাভাস্ক্রিপ্ট
// Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 };
সম্পূর্ণ উদাহরণ সোর্স কোড দেখুন
টাইপস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map') as google.maps.MapElement; let innerMap; async function initMap() { // Request needed libraries. (await google.maps.importLibrary('maps')) as google.maps.MapsLibrary; // Get the inner map. innerMap = mapElement.innerMap; // Dataset ID for Seattle Bridges const datasetId = '2438ee30-5366-4e84-82b7-a0d4dd1893fa'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); // Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 }; } initMap();
জাভাস্ক্রিপ্ট
const mapElement = document.querySelector('gmp-map'); let innerMap; async function initMap() { // Request needed libraries. (await google.maps.importLibrary('maps')); // Get the inner map. innerMap = mapElement.innerMap; // Dataset ID for Seattle Bridges const datasetId = '2438ee30-5366-4e84-82b7-a0d4dd1893fa'; const datasetLayer = innerMap.getDatasetFeatureLayer(datasetId); // Apply style to all features. datasetLayer.style = { strokeColor: 'green', strokeWeight: 4 }; } initMap();
সিএসএস
/* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } #attribution { background-color: rgba(255, 255, 255, 0.7); font-family: "Roboto", "Arial", "sans-serif"; font-size: 10px; padding: 2px; margin: 2px; }
এইচটিএমএল
<html>
<head>
<title>Style a polyline data feature</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", internalUsageAttributionIds: "gmp_git_jsapisamples_v1_data-driven-styling" });</script>
</head>
<body>
<gmp-map
center="47.59, -122.31"
zoom="14"
map-id="5cd2c9ca1cf05670"
map-type-control="false">
<div id="attribution" slot="control-block-end-inline-start">
Data source: NYC Open Data
</div>
</gmp-map>
</body>
</html>