Map Tiles API স্টাইল রেফারেন্স

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

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

উদাহরণ

নিম্নলিখিত JSON স্টাইল ডিক্লারেশন সব ম্যাপ ফিচারকে ধূসর রঙে পরিবর্তন করে, তারপর আর্টেরিয়াল রাস্তার জ্যামিতিকে নীল রঙে পরিবর্তন করে এবং ল্যান্ডস্কেপ লেবেলকে সম্পূর্ণভাবে লুকিয়ে দেয়:

[
  {
    "featureType": "all",
    "stylers": [
      { "color": "#C0C0C0" }
    ]
  },{
    "featureType": "road.arterial",
    "elementType": "geometry",
    "stylers": [
      { "color": "#CCFFFF" }
    ]
  },{
    "featureType": "landscape",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

JSON অবজেক্ট

JSON স্টাইল ডিক্লারেশনে নিম্নলিখিত এলিমেন্ট থাকে:

  • featureType (ঐচ্ছিক) - এই স্টাইল পরিবর্তন করার জন্য বেছে নেওয়ার ফিচার । ফিচার হল ম্যাপের ভৌগোলিক বৈশিষ্ট্য, যার মধ্যে রাস্তা, পার্ক, জলাশয় ও আরও অনেক কিছু পড়ে। আপনি কোনও ফিচার নির্দিষ্ট না করলে, সব ফিচার বেছে নেওয়া হয়।
  • elementType (ঐচ্ছিক) - বেছে নেওয়ার জন্য নির্দিষ্ট করা ফিচারের প্রপার্টি। এলিমেন্ট হল কোনও ফিচারের সাব-পার্ট, যার মধ্যে লেবেল ও জিওমেট্রি অন্তর্ভুক্ত। আপনি কোনও এলিমেন্ট নির্দিষ্ট না করলে, ফিচারের সব এলিমেন্ট বেছে নেওয়া হয়।
  • stylers - বেছে নেওয়া ফিচার ও এলিমেন্টের উপর প্রয়োগ করার নিয়ম। স্টাইলার ফিচারের রঙ, দৃশ্যমানতা এবং ওজন নির্দেশ করে। আপনি কোনও ফিচারে এক বা একাধিক স্টাইলার প্রয়োগ করতে পারবেন।

স্টাইল নির্দিষ্ট করতে, আপনাকে অবশ্যই 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 (ফর্ম্যাটের একটি RGB হেক্স স্ট্রিং #RRGGBB) বেসিক কালার নির্দেশ করে।

    মনে রাখবেন: এই বিকল্পটি ডিফল্ট Google স্টাইলে (অথবা ম্যাপে আপনার সংজ্ঞায়িত অন্যান্য স্টাইল বিকল্পে) নির্দিষ্ট করা স্যাচুরেশন এবং লাইটনেস বজায় রেখে হিউ সেট করে। ফলাফল হিসেবে পাওয়া রঙটি বেস ম্যাপের স্টাইলের সাথে সম্পর্কিত। Google যদি বেস ম্যাপ স্টাইলে কোনও পরিবর্তন করে, তাহলে সেই পরিবর্তন hue-এর মাধ্যমে স্টাইল করা আপনার ম্যাপের ফিচারকে প্রভাবিত করবে। আপনি যদি পারেন, তাহলে অ্যাবসোলিউট color স্টাইলার ব্যবহার করা ভালো।

  • lightness (-100 ও 100-এর মধ্যে একটি ফ্লোটিং পয়েন্ট ভ্যালু) এলিমেন্টের উজ্জ্বলতার শতকরা পরিবর্তন নির্দেশ করে। নেগেটিভ ভ্যালু অন্ধকার বাড়ায় (যেখানে -১০০ কালো রঙকে নির্দিষ্ট করে) এবং পজিটিভ ভ্যালু উজ্জ্বলতা বাড়ায় (যেখানে +১০০ সাদা রঙকে নির্দিষ্ট করে)।

    মনে রাখবেন: এই বিকল্পটি ডিফল্ট Google স্টাইলে (বা ম্যাপে আপনার সংজ্ঞায়িত অন্যান্য স্টাইল বিকল্পে) নির্দিষ্ট করা স্যাচুরেশন এবং হিউ বজায় রেখে হালকা রঙ সেট করে। যে রঙটি পাওয়া যায় তা বেস ম্যাপের স্টাইলের সাথে সম্পর্কিত। Google যদি বেস ম্যাপ স্টাইলে কোনও পরিবর্তন করে, তাহলে সেই পরিবর্তন lightness-এর মাধ্যমে স্টাইল করা আপনার ম্যাপের ফিচারকে প্রভাবিত করবে। আপনি পারলে, অ্যাবসলিউট color স্টাইলার ব্যবহার করা উত্তম।

  • saturation (-100 ও 100-এর মধ্যে ফ্লোটিং পয়েন্ট ভ্যালু ) এলিমেন্টে প্রয়োগ করার জন্য প্রাথমিক রঙের তীব্রতার শতকরা পরিবর্তন নির্দেশ করে।

    মনে রাখবেন: এই বিকল্পটি ডিফল্ট Google স্টাইলে (অথবা আপনার ম্যাপে সংজ্ঞায়িত করা অন্যান্য স্টাইল বিকল্পে) নির্দিষ্ট করা হিউ এবং লাইটনেস রাখার সময় স্যাচুরেশন সেট করে। যে রঙটি পাওয়া যায় তা বেস ম্যাপের স্টাইলের সাথে সম্পর্কিত। Google যদি বেস ম্যাপ স্টাইলে কোনও পরিবর্তন করে, তাহলে সেই পরিবর্তন saturation-এর মাধ্যমে স্টাইল করা আপনার ম্যাপের ফিচারকে প্রভাবিত করে। আপনি পারলে নিরপেক্ষ color স্টাইলার ব্যবহার করা ভাল।

  • gamma (0.01 এবং 10.0-এর মধ্যে একটি ফ্লোটিং পয়েন্ট ভ্যালু, যেখানে 1.0 কোনও সংশোধন প্রয়োগ করে না) এলিমেন্টে প্রয়োগ করার জন্য গামা সংশোধনের পরিমাণ নির্দেশ করে। গামা কারেকশন নন-লিনিয়ার পদ্ধতিতে রঙের উজ্জ্বলতা পরিবর্তন করে, তবে সাদা বা কালো রঙের মানের উপর কোনও প্রভাব ফেলে না। গামা কারেকশন সাধারণত একাধিক এলিমেন্টের কনট্রাস্ট পরিবর্তন করতে ব্যবহার করা হয়। যেমন, আপনি গামা পরিবর্তন করে এলিমেন্টের প্রান্ত ও ভিতরের অংশের মধ্যে কনট্রাস্ট বাড়াতে বা কমাতে পারেন।

    মনে রাখবেন: এই বিকল্পটি গামা কার্ভ ব্যবহার করে ডিফল্ট Google স্টাইলের সাপেক্ষে উজ্জ্বলতা অ্যাডজাস্ট করে। Google যদি বেস ম্যাপের স্টাইলে কোনও পরিবর্তন করে, তাহলে সেই পরিবর্তন আপনার ম্যাপের gamma-এর মাধ্যমে স্টাইল করা ফিচারের উপর প্রভাব ফেলে। আপনি পারলে, অ্যাবসলিউট color স্টাইলার ব্যবহার করা ভাল।

  • invert_lightness (যদি true হয়) আগের উজ্জ্বলতা উল্টে দেয়। এটি সহায়ক, যেমন, সাদা টেক্সট সহ দ্রুত আরও গাঢ় ম্যাপে পরিবর্তন করার জন্য।

    মনে রাখবেন: এই বিকল্পটি ডিফল্ট Google স্টাইলকে উল্টে দেয়। Google বেস ম্যাপ স্টাইলে কোনও পরিবর্তন করলে, সেই পরিবর্তন invert_lightness-এর মাধ্যমে স্টাইল করা আপনার ম্যাপের ফিচারকে প্রভাবিত করে। আপনি যদি পারেন, তাহলে অ্যাবসোলিউট color স্টাইলার ব্যবহার করা ভালো।

  • visibility (on, off, অথবা simplified) ম্যাপে এলিমেন্টটি দেখা যাবে কিনা এবং কীভাবে দেখা যাবে তা নির্দেশ করে। simplified দৃশ্যমানতা প্রভাবিত ফিচার থেকে কিছু স্টাইল ফিচার সরিয়ে দেয় ; যেমন, রাস্তাগুলিকে আউটলাইন ছাড়াই আরও সরু লাইন হিসেবে দেখানো হয়, অন্যদিকে পার্কের লেবেল টেক্সট সরিয়ে দেওয়া হলেও লেবেল আইকন থেকে যায়।
  • color (ফর্ম্যাটের একটি RGB হেক্স স্ট্রিং #RRGGBB) ফিচারের রঙ সেট করে।
  • weight (একটি পূর্ণসংখ্যা, শূন্যের চেয়ে বেশি বা সমান) পিক্সেলে ফিচারের ওজন সেট করে। ওয়েট বেশি ভ্যালুতে সেট করলে, টাইলের বর্ডারের কাছাকাছি ক্লিপিং হতে পারে।

আপনার উল্লেখ করা ক্রম অনুযায়ী স্টাইল সংক্রান্ত নিয়ম প্রয়োগ করা হয়। একাধিক অপারেশনকে একটি স্টাইল অপারেশনে একত্রিত করবেন না। পরিবর্তে, স্টাইল অ্যারেতে প্রতিটি অপারেশনকে আলাদা এন্ট্রি হিসেবে সংজ্ঞায়িত করুন।

মনে রাখবেন: ক্রম গুরুত্বপূর্ণ, কারণ কিছু অপারেশন পরিবর্তনশীল নয়। স্টাইল অপারেশন (সাধারণত) আগেই আছে এমন ফিচার এবং/অথবা এলিমেন্ট পরিবর্তন করা হয়। আগে থেকে থাকা স্টাইল থাকলে, অপারেশনগুলি সেগুলির উপর কাজ করে।

হিউ, স্যাচুরেশন, লাইটনেস মডেল

স্টাইলার অপারেশনের মধ্যে রঙ বোঝাতে স্টাইল করা ম্যাপ হিউ, স্যাচুরেশন, লাইটনেস (HSL) মডেল ব্যবহার করে। হিউ থেকে প্রাথমিক রঙ, স্যাচুরেশন থেকে সেই রঙের তীব্রতা এবং লাইটনেস থেকে সেই রঙের মধ্যে সাদা বা কালোর তুলনামূলক পরিমাণ বোঝা যায়।

গামা সংশোধন কালার স্পেসের উপর লাইটনেস পরিবর্তন করে, সাধারণত কনট্রাস্ট বাড়াতে বা কমাতে। এছাড়াও, HSL মডেল একটি কোঅর্ডিনেট স্পেসের মধ্যে কালার নির্ধারণ করে, যেখানে hue কালার হুইলের মধ্যে ওরিয়েন্টেশন নির্দেশ করে, স্যাচুরেশন ও লাইটনেস বিভিন্ন অ্যাক্সিস বরাবর অ্যামপ্লিটিউড নির্দেশ করে। RGB কালার স্পেসের মধ্যে হিউ পরিমাপ করা হয়, যা বেশিরভাগ RGB কালার স্পেসের মতোই, তবে সাদা ও কালো রঙের শেড থাকে না।

হিউ, স্যাচুরেশন, আলো মডেল

hue HTML হেক্স কালার ভ্যালু নিলেও, এটি শুধুমাত্র এই ভ্যালু ব্যবহার করে প্রাথমিক কালার নির্ধারণ করে - অর্থাৎ, কালার হুইলের চারপাশে এর ওরিয়েন্টেশন, এর স্যাচুরেশন বা লাইটনেস নয়, যা আলাদাভাবে শতাংশের পরিবর্তন হিসেবে দেখানো হয়।

যেমন, আপনি খাঁটি সবুজের জন্য হিউকে hue:0x00ff00 বা hue:0x000100 হিসেবে সংজ্ঞায়িত করতে পারেন। দুটি হিউই একই। দুটি ভ্যালুই HSL কালার মডেলে খাঁটি সবুজ রঙকে পয়েন্ট করে।

একটি RGB কালার হুইল

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

এছাড়াও, আগে থেকেই কালার স্কিম আছে এমন ফিচার পরিবর্তন করার সময়, hue-এর মতো কোনও ভ্যালু পরিবর্তন করলে, সেটির আগে থেকে থাকা saturation বা lightness পরিবর্তন হয় না।