স্টাইল অপশন ব্যবহার করে আপনি স্ট্যান্ডার্ড গুগল ম্যাপের স্টাইলগুলো নিজের মতো করে সাজিয়ে নিতে পারেন, যার মাধ্যমে রাস্তা, পার্ক, ব্যবসা প্রতিষ্ঠান এবং অন্যান্য গুরুত্বপূর্ণ স্থানের মতো ফিচারগুলোর ভিজ্যুয়াল ডিসপ্লে পরিবর্তন করা যায়। এই ফিচারগুলোর স্টাইল পরিবর্তন করার পাশাপাশি, আপনি ফিচারগুলোকে পুরোপুরি লুকিয়েও ফেলতে পারেন। এর মানে হলো, আপনি ম্যাপের নির্দিষ্ট কোনো অংশের ওপর জোর দিতে পারেন অথবা ম্যাপটিকে তার চারপাশের পেজের স্টাইলের সাথে সামঞ্জস্যপূর্ণ করে তুলতে পারেন।
উদাহরণ
নিম্নলিখিত JSON স্টাইল ডিক্লারেশনটি ম্যাপের সমস্ত ফিচারকে ধূসর রঙে পরিণত করে, তারপর প্রধান সড়কের জ্যামিতিকে নীল রঙে রাঙিয়ে দেয় এবং ল্যান্ডস্কেপ লেবেলগুলিকে সম্পূর্ণরূপে লুকিয়ে ফেলে:
[ { "featureType": "all", "stylers": [ { "color": "#C0C0C0" } ] },{ "featureType": "road.arterial", "elementType": "geometry", "stylers": [ { "color": "#CCFFFF" } ] },{ "featureType": "landscape", "elementType": "labels", "stylers": [ { "visibility": "off" } ] } ]
JSON অবজেক্ট
একটি JSON স্টাইল ডিক্লারেশন নিম্নলিখিত উপাদানগুলো নিয়ে গঠিত:
- featureType (ঐচ্ছিক) - এই স্টাইল পরিবর্তনের জন্য যে ফিচারগুলো নির্বাচন করতে হবে। ফিচার হলো মানচিত্রের ভৌগোলিক বৈশিষ্ট্য, যার মধ্যে রাস্তা, পার্ক, জলাশয় এবং আরও অনেক কিছু অন্তর্ভুক্ত। আপনি যদি কোনো ফিচার নির্দিষ্ট না করেন, তাহলে সমস্ত ফিচারই নির্বাচিত হবে।
- এলিমেন্টটাইপ (ঐচ্ছিক) - নির্দিষ্ট ফিচারের যে প্রপার্টিটি নির্বাচন করতে হবে। এলিমেন্ট হলো একটি ফিচারের উপাংশ, যার মধ্যে লেবেল এবং জ্যামিতি অন্তর্ভুক্ত। আপনি যদি কোনো এলিমেন্ট নির্দিষ্ট না করেন, তাহলে ফিচারটির সমস্ত এলিমেন্ট নির্বাচিত হবে।
- স্টাইলার - নির্বাচিত ফিচার এবং এলিমেন্টগুলিতে প্রয়োগ করার নিয়মাবলী। স্টাইলার কোনো ফিচারের রঙ, দৃশ্যমানতা এবং গুরুত্ব নির্ধারণ করে। আপনি একটি ফিচারে এক বা একাধিক স্টাইলার প্রয়োগ করতে পারেন।
একটি স্টাইল নির্দিষ্ট করতে, আপনাকে এক সেট featureType ও elementType সিলেক্টর এবং আপনার stylers একত্রিত করে একটি স্টাইল অ্যারে তৈরি করতে হবে। আপনি একটিমাত্র অ্যারের মধ্যে যেকোনো ফিচারের সমন্বয়কে টার্গেট করতে পারেন। তবে, একবারে প্রয়োগ করা স্টাইলের সংখ্যা সীমিত। যদি আপনার স্টাইল অ্যারের অক্ষর সংখ্যা সর্বোচ্চ সীমা অতিক্রম করে, তাহলে কোনো স্টাইল প্রয়োগ করা হবে না।
এই পৃষ্ঠার বাকি অংশে বৈশিষ্ট্য, উপাদান এবং স্টাইলার সম্পর্কে আরও তথ্য রয়েছে।
featureType
নিম্নলিখিত JSON কোডটি ম্যাপের সমস্ত রাস্তা নির্বাচন করে:
{ "featureType": "road" }
বৈশিষ্ট্য বা বৈশিষ্ট্যের প্রকারভেদ হলো মানচিত্রের ভৌগোলিক বৈশিষ্ট্য, যার মধ্যে রাস্তা, পার্ক, জলাশয়, ব্যবসা প্রতিষ্ঠান এবং আরও অনেক কিছু অন্তর্ভুক্ত।
ফিচারগুলো একটি ক্যাটাগরি ট্রি গঠন করে, যার রুট হলো all ’। আপনি যদি কোনো ফিচার নির্দিষ্ট না করেন, তাহলে সব ফিচারই নির্বাচিত হয়ে যায়। all ’ ফিচারটি নির্দিষ্ট করলেও একই ফল পাওয়া যায়।
কিছু ফিচারের মধ্যে চাইল্ড ফিচার থাকে, যা আপনি ডট নোটেশন ব্যবহার করে নির্দিষ্ট করেন। উদাহরণস্বরূপ, landscape.natural বা road.local । যদি আপনি শুধু প্যারেন্ট ফিচারটি, যেমন road , নির্দিষ্ট করেন, তাহলে প্যারেন্টের জন্য নির্দিষ্ট করা স্টাইলগুলো এর সমস্ত চাইল্ডের উপর প্রযোজ্য হবে, যেমন road.local এবং road.highway ।
মনে রাখবেন যে, প্যারেন্ট ফিচারগুলোতে এমন কিছু উপাদান অন্তর্ভুক্ত থাকতে পারে যা তাদের সব চাইল্ড ফিচারে অন্তর্ভুক্ত নয়।
নিম্নলিখিত বৈশিষ্ট্যগুলি উপলব্ধ আছে:
-
all(ডিফল্ট) সমস্ত বৈশিষ্ট্য নির্বাচন করে। -
administrativeসমস্ত প্রশাসনিক এলাকা নির্বাচন করে। স্টাইলিং শুধুমাত্র প্রশাসনিক এলাকার লেবেলগুলিকে প্রভাবিত করে, এর ভৌগোলিক সীমানা বা ফিলকে নয়।-
administrative.countryদেশগুলো নির্বাচন করে। -
administrative.land_parcelভূমি খণ্ড নির্বাচন করে। -
administrative.localityএলাকাসমূহ নির্বাচন করে। -
administrative.neighborhoodএলাকা নির্বাচন করে। -
administrative.provinceপ্রদেশসমূহ নির্বাচন করে।
-
-
landscapeসকল ল্যান্ডস্কেপ নির্বাচন করে।-
landscape.man_madeভবন ও অন্যান্য কাঠামোর মতো মানবসৃষ্ট বৈশিষ্ট্য নির্বাচন করে। -
landscape.naturalপর্বত, নদী, মরুভূমি এবং হিমবাহের মতো প্রাকৃতিক বৈশিষ্ট্য নির্বাচন করে। -
landscape.natural.landcoverভূমির আচ্ছাদন বৈশিষ্ট্য, অর্থাৎ ভূপৃষ্ঠকে আবৃতকারী ভৌত উপাদান, যেমন—বন, তৃণভূমি, জলাভূমি এবং অনাবৃত ভূমি নির্বাচন করে। -
landscape.natural.terrainকোনো ভূমিপৃষ্ঠের ভূ-বৈশিষ্ট্য, যেমন উচ্চতা, ঢাল এবং অভিমুখ নির্বাচন করে।
-
-
poiআগ্রহের সমস্ত স্থান নির্বাচন করে।-
poi.attractionপর্যটন আকর্ষণগুলো নির্বাচন করে। -
poi.businessব্যবসা প্রতিষ্ঠানগুলোকে নির্বাচন করে। -
poi.governmentসরকারি ভবন নির্বাচন করে। -
poi.medicalহাসপাতাল, ফার্মেসি, পুলিশ, ডাক্তার এবং অন্যান্যসহ জরুরি পরিষেবাগুলো নির্বাচন করে। -
poi.parkপার্কগুলো নির্বাচন করে। -
poi.place_of_worshipগির্জা, মন্দির, মসজিদ ও অন্যান্য উপাসনালয় নির্বাচন করে। -
poi.schoolস্কুল নির্বাচন করে। -
poi.sports_complexক্রীড়া কমপ্লেক্সগুলো নির্বাচন করে।
-
-
roadসকল রাস্তা নির্বাচন করে।-
road.arterialপ্রধান সড়কগুলো নির্বাচন করে। -
road.highwayহাইওয়ে নির্বাচন করে। -
road.highway.controlled_accessনিয়ন্ত্রিত প্রবেশাধিকারযুক্ত মহাসড়কগুলো নির্বাচন করে। -
road.localস্থানীয় রাস্তাগুলো নির্বাচন করে।
-
-
transitসমস্ত ট্রানজিট স্টেশন ও লাইন নির্বাচন করে।-
transit.lineট্রানজিট লাইন নির্বাচন করে। -
transit.stationসমস্ত ট্রানজিট স্টেশন নির্বাচন করে। -
transit.station.airportবিমানবন্দর নির্বাচন করে। -
transit.station.busবাস স্টপ নির্বাচন করে। -
transit.station.railরেল স্টেশন নির্বাচন করে।
-
-
waterজলাশয় নির্বাচন করে।
elementType
নিম্নলিখিত JSON কোডটি সমস্ত স্থানীয় রাস্তার জন্য লেবেল নির্বাচন করে:
{ "featureType": "road.local", "elementType": "labels" }
উপাদান হলো কোনো বৈশিষ্ট্যের উপবিভাগ। উদাহরণস্বরূপ, একটি রাস্তা মানচিত্রের গ্রাফিক্যাল রেখা (জ্যামিতি) এবং এর নাম নির্দেশকারী লেখা (লেবেল) নিয়ে গঠিত।
নিম্নলিখিত উপাদানগুলো উপলব্ধ আছে, তবে মনে রাখবেন যে একটি নির্দিষ্ট ফিচার এই উপাদানগুলোর কোনোটিই, কয়েকটি বা সবগুলোই সমর্থন করতে পারে:
জুম লেভেলের উপর ভিত্তি করে লেবেল টেক্সটের fill এবং stroke রঙ পরিবর্তিত হয়। বিভিন্ন জুম লেভেলে অভিজ্ঞতাটি সামঞ্জস্যপূর্ণ রাখতে, সর্বদা fill এবং stroke উভয়ই নির্ধারণ করুন।
-
all(ডিফল্ট) নির্দিষ্ট ফিচারের সমস্ত উপাদান নির্বাচন করে। -
geometryনির্দিষ্ট ফিচারটির সমস্ত জ্যামিতিক উপাদান নির্বাচন করে।-
geometry.fillফিচারটির জ্যামিতির শুধুমাত্র ফিল অংশটি নির্বাচন করে। -
geometry.strokeফিচারটির জ্যামিতির শুধুমাত্র স্ট্রোকটি নির্বাচন করে।
-
-
labelsনির্দিষ্ট ফিচারটির সাথে সংশ্লিষ্ট পাঠ্য লেবেলগুলো নির্বাচন করে।-
labels.iconশুধুমাত্র ফিচারটির লেবেলের মধ্যে প্রদর্শিত আইকনটি নির্বাচন করে। -
labels.textশুধুমাত্র লেবেলের লেখাটি নির্বাচন করে। -
labels.text.fillশুধুমাত্র লেবেলের ফিল নির্বাচন করে। লেবেলের ফিল সাধারণত একটি রঙিন আউটলাইন হিসেবে রেন্ডার করা হয় যা লেবেলের টেক্সটকে ঘিরে থাকে। -
labels.text.strokeশুধুমাত্র লেবেলের টেক্সটের স্ট্রোক নির্বাচন করে।
-
stylers
স্টাইলার হলো ফরম্যাটিং অপশন যা আপনি ম্যাপের ফিচার এবং এলিমেন্টগুলোতে প্রয়োগ করতে পারেন।
নিম্নলিখিত JSON স্নিপেটটি একটি RGB মান ব্যবহার করে একটি বৈশিষ্ট্যকে উজ্জ্বল সবুজ হিসাবে প্রদর্শন করে:
"stylers": [ { "color": "#99FF33" } ]
এই কোড স্নিপেটটি কোনো ফিচারের প্রাথমিক রঙ নির্বিশেষে, তার রঙ থেকে সমস্ত তীব্রতা মুছে দেয়। এর ফলে ফিচারটি গ্রেস্কেলে রেন্ডার হয়।
"stylers": [ { "saturation": -100 } ]
এই কোড অংশটি একটি ফিচার সম্পূর্ণরূপে লুকিয়ে ফেলে:
"stylers": [ { "visibility": "off" } ]
নিম্নলিখিত স্টাইল বিকল্পগুলি সমর্থিত:
-
hue(#RRGGBBফরম্যাটের একটি RGB হেক্স স্ট্রিং) মৌলিক রঙকে নির্দেশ করে।দ্রষ্টব্য: এই অপশনটি ডিফল্ট গুগল স্টাইলে (অথবা ম্যাপে আপনার সংজ্ঞায়িত অন্যান্য স্টাইল অপশনে) নির্দিষ্ট করা স্যাচুরেশন এবং লাইটনেস অপরিবর্তিত রেখে হিউ (hue) সেট করে। এর ফলে প্রাপ্ত রঙটি বেস ম্যাপের স্টাইলের সাপেক্ষে নির্ধারিত হয়। গুগল যদি বেস ম্যাপের স্টাইলে কোনো পরিবর্তন আনে, তবে সেই পরিবর্তনগুলো আপনার ম্যাপের
hueদিয়ে স্টাইল করা ফিচারগুলোকেও প্রভাবিত করবে। সম্ভব হলে অ্যাবসোলিউটcolorস্টাইলার ব্যবহার করাই শ্রেয়। -
lightness(-100থেকে100এর মধ্যে একটি ফ্লোটিং পয়েন্ট মান) উপাদানটির উজ্জ্বলতার শতাংশ পরিবর্তন নির্দেশ করে। ঋণাত্মক মান অন্ধকার বাড়ায় (যেখানে -১০০ কালো নির্দেশ করে) এবং ধনাত্মক মান উজ্জ্বলতা বাড়ায় (যেখানে +১০০ সাদা নির্দেশ করে)।দ্রষ্টব্য: এই অপশনটি ডিফল্ট গুগল স্টাইলে (অথবা ম্যাপে আপনার সংজ্ঞায়িত অন্যান্য স্টাইল অপশনে) নির্দিষ্ট করা স্যাচুরেশন এবং হিউ অপরিবর্তিত রেখে লাইটনেস সেট করে। এর ফলে প্রাপ্ত রঙটি বেস ম্যাপের স্টাইলের সাপেক্ষে নির্ধারিত হয়। গুগল যদি বেস ম্যাপের স্টাইলে কোনো পরিবর্তন আনে, তবে সেই পরিবর্তনগুলো আপনার ম্যাপের
lightnessদিয়ে স্টাইল করা ফিচারগুলোকেও প্রভাবিত করবে। সম্ভব হলে অ্যাবসোলিউটcolorস্টাইলার ব্যবহার করাই শ্রেয়। -
saturation(-100থেকে100মধ্যে একটি ফ্লোটিং পয়েন্ট মান) এলিমেন্টটিতে প্রয়োগ করার জন্য মূল রঙের তীব্রতার শতাংশ পরিবর্তন নির্দেশ করে।দ্রষ্টব্য: এই অপশনটি ডিফল্ট গুগল স্টাইলে (অথবা ম্যাপে আপনার সংজ্ঞায়িত অন্যান্য স্টাইল অপশনে) নির্দিষ্ট করা হিউ এবং লাইটনেস অপরিবর্তিত রেখে স্যাচুরেশন সেট করে। এর ফলে প্রাপ্ত রঙটি বেস ম্যাপের স্টাইলের সাপেক্ষে নির্ধারিত হয়। গুগল যদি বেস ম্যাপের স্টাইলে কোনো পরিবর্তন আনে, তবে সেই পরিবর্তনগুলো আপনার ম্যাপের
saturationদিয়ে স্টাইল করা ফিচারগুলোকেও প্রভাবিত করবে। সম্ভব হলে অ্যাবসোলিউটcolorস্টাইলার ব্যবহার করাই শ্রেয়। -
gamma(0.01থেকে10.0এর মধ্যে একটি ফ্লোটিং পয়েন্ট মান, যেখানে1.0কোনো সংশোধন প্রয়োগ করে না) নির্দেশ করে যে এলিমেন্টটিতে কী পরিমাণ গামা সংশোধন প্রয়োগ করতে হবে। গামা সংশোধন সাদা বা কালো মানকে প্রভাবিত না করে, রঙের উজ্জ্বলতাকে একটি নন-লিনিয়ার পদ্ধতিতে পরিবর্তন করে। গামা সংশোধন সাধারণত একাধিক এলিমেন্টের কনট্রাস্ট পরিবর্তন করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি এলিমেন্টের প্রান্ত এবং ভেতরের অংশের মধ্যে কনট্রাস্ট বাড়াতে বা কমাতে গামা পরিবর্তন করতে পারেন।দ্রষ্টব্য: এই অপশনটি একটি গামা কার্ভ ব্যবহার করে ডিফল্ট গুগল স্টাইলের সাপেক্ষে উজ্জ্বলতা সামঞ্জস্য করে। গুগল যদি বেস ম্যাপ স্টাইলে কোনো পরিবর্তন আনে, তবে সেই পরিবর্তনগুলো আপনার ম্যাপের
gammaদিয়ে স্টাইল করা ফিচারগুলোকেও প্রভাবিত করবে। সম্ভব হলে অ্যাবসোলিউটcolorস্টাইলার ব্যবহার করাই শ্রেয়। -
invert_lightness(যদিtrue) বিদ্যমান উজ্জ্বলতাকে উল্টে দেয়। উদাহরণস্বরূপ, সাদা লেখা সহ একটি গাঢ় মানচিত্রে দ্রুত পরিবর্তন করার জন্য এটি উপযোগী।দ্রষ্টব্য: এই অপশনটি কেবল ডিফল্ট গুগল স্টাইলকে উল্টে দেয়। গুগল যদি বেস ম্যাপ স্টাইলে কোনো পরিবর্তন করে, তবে সেই পরিবর্তনগুলো আপনার ম্যাপের
invert_lightnessদিয়ে স্টাইল করা ফিচারগুলোকেও প্রভাবিত করবে। সম্ভব হলে অ্যাবসোলিউটcolorস্টাইলার ব্যবহার করাই শ্রেয়। -
visibility(on,offবাsimplified) নির্দেশ করে যে এলিমেন্টটি ম্যাপে প্রদর্শিত হবে কি না এবং কীভাবে হবে। একটিsimplifiedভিজিবিলিটি প্রভাবিত ফিচারগুলো থেকে কিছু স্টাইল ফিচার সরিয়ে দেয়; উদাহরণস্বরূপ, রাস্তাগুলো আউটলাইন ছাড়া পাতলা লাইনে সরলীকৃত হয়, অন্যদিকে পার্কগুলো তাদের লেবেল টেক্সট হারায় কিন্তু লেবেল আইকনটি ধরে রাখে। -
color(যা#RRGGBBফরম্যাটের একটি RGB হেক্স স্ট্রিং) ফিচারটির রঙ নির্ধারণ করে। -
weight(একটি পূর্ণসংখ্যা, যা শূন্যের সমান বা তার চেয়ে বড়) ফিচারটির ওজন পিক্সেলে নির্ধারণ করে। weight-এর মান বেশি নির্ধারণ করলে টাইল বর্ডারের কাছাকাছি ক্লিপিং হতে পারে।
স্টাইল নিয়মগুলো আপনার নির্দিষ্ট করা ক্রমেই প্রয়োগ করা হয়। একাধিক অপারেশনকে একটিমাত্র স্টাইল অপারেশনে একত্রিত করবেন না। এর পরিবর্তে, স্টাইল অ্যারেতে প্রতিটি অপারেশনকে একটি পৃথক এন্ট্রি হিসাবে সংজ্ঞায়িত করুন।
দ্রষ্টব্য: ক্রম গুরুত্বপূর্ণ, কারণ কিছু অপারেশন বিনিময়যোগ্য নয়। স্টাইল অপারেশনের মাধ্যমে যে ফিচার এবং/অথবা এলিমেন্টগুলো পরিবর্তন করা হয়, সেগুলোর (সাধারণত) আগে থেকেই স্টাইল থাকে। অপারেশনগুলো সেই বিদ্যমান স্টাইলগুলোর উপর কাজ করে, যদি সেগুলো উপস্থিত থাকে।
হিউ, স্যাচুরেশন, লাইটনেস মডেল
স্টাইলার অপারেশনের মধ্যে রঙ বোঝাতে স্টাইলড ম্যাপগুলো হিউ, স্যাচুরেশন, লাইটনেস (HSL) মডেল ব্যবহার করে। হিউ মূল রঙকে, স্যাচুরেশন সেই রঙের তীব্রতাকে এবং লাইটনেস উপাদান রঙে সাদা বা কালোর আপেক্ষিক পরিমাণকে নির্দেশ করে।
গামা কারেকশন কালার স্পেস জুড়ে উজ্জ্বলতাকে পরিবর্তন করে, সাধারণত কনট্রাস্ট বাড়াতে বা কমাতে। এছাড়াও, HSL মডেল একটি কোঅর্ডিনেট স্পেসের মধ্যে রঙকে সংজ্ঞায়িত করে, যেখানে hue একটি কালার হুইলের মধ্যে অভিমুখ নির্দেশ করে, এবং স্যাচুরেশন ও লাইটনেস বিভিন্ন অক্ষ বরাবর বিস্তার নির্দেশ করে। হিউ-কে একটি RGB কালার স্পেসের মধ্যে পরিমাপ করা হয়, যা বেশিরভাগ RGB কালার স্পেসের মতোই, তবে এতে সাদা এবং কালোর শেডগুলো অনুপস্থিত।

যদিও hue একটি HTML হেক্স কালার ভ্যালু গ্রহণ করে, এটি শুধুমাত্র মৌলিক রঙ নির্ধারণ করতে এই ভ্যালুটি ব্যবহার করে — অর্থাৎ, কালার হুইলে এর অবস্থান; এর স্যাচুরেশন বা লাইটনেস নয়, যা আলাদাভাবে শতাংশ পরিবর্তন হিসাবে নির্দেশিত হয়।
উদাহরণস্বরূপ, আপনি বিশুদ্ধ সবুজের হিউ hue:0x00ff00 অথবা hue:0x000100 হিসেবে নির্ধারণ করতে পারেন। উভয় হিউ অভিন্ন। HSL কালার মডেলে উভয় মানই বিশুদ্ধ সবুজকে নির্দেশ করে।

একটি আরজিবি রঙের চাকা
RGB hue ভ্যালু, যা লাল, সবুজ এবং নীলের সমান অংশ নিয়ে গঠিত, তা কোনো হিউ নির্দেশ করে না, কারণ এই ভ্যালুগুলোর কোনোটিই HSL কোঅর্ডিনেট স্পেসে কোনো ওরিয়েন্টেশন নির্দেশ করে না। উদাহরণস্বরূপ, "#000000" (কালো), "#FFFFFF" (সাদা), এবং ধূসরের সমস্ত বিশুদ্ধ শেড। কালো, সাদা বা ধূসর নির্দেশ করতে হলে, আপনাকে অবশ্যই সমস্ত saturation সরিয়ে ফেলতে হবে (ভ্যালু -100 এ সেট করে) এবং এর পরিবর্তে lightness অ্যাডজাস্ট করতে হবে।
এছাড়াও, আগে থেকেই কালার স্কিম থাকা কোনো ফিচার পরিবর্তন করার সময়, hue মতো কোনো মান পরিবর্তন করলে তার বিদ্যমান saturation বা lightness পরিবর্তিত হয় না।