এই পৃষ্ঠায় দেখানো হয়েছে যে কীভাবে ম্যাপে ডেটাসেট যোগ করতে হয় এবং স্টাইলিং প্রয়োগ করতে হয়।
পূর্বশর্ত
এগিয়ে যাওয়ার আগে, আপনার কাছে ম্যাপ আইডি, ম্যাপ স্টাইল ও ডেটাসেট আইডি থাকতে হবে।
ম্যাপ স্টাইলের সাথে ডেটাসেট আইডি যুক্ত করা
কোনও ডেটাসেটের ফিচার স্টাইল করতে, আপনি ম্যাপের ডেটাসেট ফিচার লেয়ারে স্টাইল ফাংশন প্রয়োগ করেন। আপনি যখন কোনও ম্যাপ স্টাইলের সাথে ডেটাসেট যুক্ত করেন, তখন ডেটাসেট ফিচার লেয়ার তৈরি হয়।
ম্যাপ স্টাইলের সাথে আপনার ডেটাসেট অ্যাসোসিয়েট করতে:
- Google Cloud কনসোলে, ডেটাসেট পৃষ্ঠায় যান।
- ডেটাসেটের নামে ক্লিক করুন। ডেটাসেটের বিবরণ পৃষ্ঠাটি দেখা যাবে।
- প্রিভিউ ট্যাবে ক্লিক করুন।
- সংশ্লিষ্ট ম্যাপ স্টাইল বিভাগে, ম্যাপ স্টাইল যোগ করুন বিকল্পে ক্লিক করুন।
- অ্যাসোসিয়েট করতে ম্যাপ স্টাইলের চেকবক্সে ক্লিক করুন এবং তারপর সেভ করুন বিকল্পে ক্লিক করুন।
ডেটাসেটে স্টাইল প্রয়োগ করুন
কোনও ডেটাসেটে স্টাইল প্রয়োগ করতে:
স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন যা
FeatureLayer.StyleFactoryইন্টারফেস প্রয়োগ করে। এই ফাংশন ডেটাসেটের স্টাইলিং লজিক নির্ধারণ করে।ডেটাসেটের প্রতিটি ফিচারে স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করতে
FeatureLayer.setFeatureStyle()কল করুন।
স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন
আপনি ফিচার লেয়ারে ফাংশন সেট করার সময় ডেটাসেট লেয়ারের প্রতিটি ফিচারে স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করা হয়। এই ফাংশনটি অবশ্যই
একটি FeatureStyle
অবজেক্ট রিটার্ন করবে যা পলিগন কীভাবে স্টাইল করতে হবে তা নির্দিষ্ট করে।
স্টাইল ফ্যাক্টরি null রিটার্ন করলে, প্রদত্ত ফিচার রেন্ডার করা হয় না। আরও তথ্যের জন্য, লেয়ার থেকে স্টাইলিং সরান দেখুন।
Maps SDK for Android, স্টাইল ফ্যাক্টরি ফাংশনে একটি
Feature
ইনস্ট্যান্স পাস করে। Feature ইনস্ট্যান্স ফিচারের মেটাডেটা দেখায়, যা আপনাকে স্টাইল ফ্যাক্টরি ফাংশনে মেটাডেটা অ্যাক্সেস করার সুবিধা দেয়।
স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করা হলে, সেটি যেন সবসময় একই ধরনের ফলাফল দেখায়। যেমন, আপনি যদি কোনও ফিচার সেটে র্যান্ডম রঙ করতে চান, তাহলে ফিচার স্টাইল ফাংশনে র্যান্ডম অংশটি থাকা উচিত নয়, কারণ এর ফলে অপ্রত্যাশিত ফলাফল হতে পারে।
এই ফাংশন লেয়ারের প্রতিটি ফিচারের উপর রান করে বলে, অপ্টিমাইজেশন
গুরুত্বপূর্ণ। রেন্ডার করার মোট সময়কে প্রভাবিত করা এড়াতে,
FeatureLayer.setFeatureStyle(null) কল করুন যখন কোনও ফিচার লেয়ার আর ব্যবহার করা হচ্ছে না।
এছাড়াও, ডেটাসেটের আইডি পেতে আপনি FeatureLayer.getDatasetId()-এ কল করতে পারেন।
স্ট্রোক, ফিল ও পয়েন্ট রেডিয়াস সেট করুন
স্টাইল ফ্যাক্টরি ফাংশনে কোনও ফিচার স্টাইল করার সময়, আপনি এগুলি সেট করতে পারবেন:
Colorক্লাস দ্বারা সংজ্ঞায়িত সীমানার স্ট্রোকের রঙ এবং অস্বচ্ছতা। ডিফল্ট ভ্যালু হল ট্রান্সপারেন্ট (Color.TRANSPARENT)।স্ক্রিন পিক্সেলে বর্ডারের স্ট্রোকের প্রস্থ। ডিফল্ট ভ্যালু হল ২।
Colorক্লাস দ্বারা নির্ধারিত ভরাট করার রঙ ও অস্বচ্ছতা। ডিফল্ট ভ্যালু হল ট্রান্সপারেন্ট (Color.TRANSPARENT)।পয়েন্ট ফিচারের পয়েন্ট ব্যাসার্ধ ০ থেকে ১২৮ পিক্সেলের মধ্যে হতে হবে।
সহজ স্টাইল সংক্রান্ত নিয়ম ব্যবহার করুন
ফিচার স্টাইল করার সবচেয়ে সহজ উপায় হল একটি FeatureLayer.StyleFactory
সংজ্ঞায়িত করা যা ফিচার নির্বিশেষে সবসময় একটি অভিন্ন FeatureStyle অবজেক্ট
তৈরি করে। সরাসরি ডেটাসেট ফিচার লেয়ারে ফিচার স্টাইল বিকল্প প্রয়োগ করুন অথবা
FeatureStyleFunction-এর সাথে সেগুলি ব্যবহার করুন।
ডিক্লেরেটিভ স্টাইল সংক্রান্ত নিয়ম ব্যবহার করুন
আপনি কোনও ফিচার অ্যাট্রিবিউটের উপর ভিত্তি করে স্টাইল সংক্রান্ত নিয়ম সেট করতে
এবং আপনার সম্পূর্ণ ডেটাসেট জুড়ে সেগুলি প্রয়োগ করতে পারবেন। আপনি নিজের ফিচার স্টাইল ফাংশন থেকে null রিটার্ন করতে পারেন, যেমন আপনি যদি চান যে ফিচারের সাবসেট অদৃশ্য থাকুক।
যেমন, কোনও ফিচারের জন্য ডেটাসেট অ্যাট্রিবিউটের Map<String,String>
ফেরত পেতে DatasetFeature.getDatasetAttributes() পদ্ধতি ব্যবহার করুন। তারপর আপনি
ফিচারের অ্যাট্রিবিউটের উপর ভিত্তি করে সেটির স্টাইলিং কাস্টমাইজ করতে পারবেন।
এই উদাহরণটি স্টাইলিং নিয়ন্ত্রণ করতে ডেটাসেটের প্রতিটি ফিচারের "highlightColor" অ্যাট্রিবিউটের মান নির্ধারণ করে:
Kotlin
// Get the dataset feature, so we can work with all of its attributes. val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }
Java
// Get the dataset feature, so we can work with all of its attributes. DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }
ডেটাসেট ফিচার লেয়ারে স্টাইল প্রয়োগ করুন
এই উদাহরণটি ডেটাসেট ফিচার লেয়ারে একটি পলিগনে স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করে। স্টাইল ফ্যাক্টরি ফাংশন বহুভুজে কাস্টম ফিল এবং স্ট্রোক স্টাইল প্রয়োগ করে:
আপনি আগে থেকে এটি না করে থাকলে, শুরু করুন বিকল্পে গিয়ে নতুন ম্যাপ আইডি ও ম্যাপ স্টাইল তৈরি করার ধাপগুলি অনুসরণ করুন। ডেটাসেট ফিচার লেয়ার চালু করতে ভুলবেন না।
ম্যাপ শুরু হলে ডেটাসেট ফিচার লেয়ারের রেফারেন্স পান।
Kotlin
private var datasetLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
// Apply style factory function to DATASET layer. styleDatasetsLayer() }Java
private FeatureLayer datasetLayer;
@Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
// Apply style factory function to DATASET layer. styleDatasetsLayer(); }স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন এবং ডেটাসেট ফিচার লেয়ারে এটি প্রয়োগ করুন।
নিম্নলিখিত উদাহরণে ডেটাসেটের সব ফিচারে একই ফিল ও স্ট্রোক প্রয়োগ করা হয়েছে।
Kotlin
private fun styleDatasetsLayer() {
// Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
// Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
// Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }Java
private void styleDatasetsLayer() {
// Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
// Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2) .build(); } return null; };
// Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }
কোনও লেয়ার থেকে স্টাইলিং সরানো
কোনও লেয়ার থেকে স্টাইলিং সরাতে, FeatureLayer.setFeatureStyle(null) কল করুন।
এছাড়াও, আপনি স্টাইল ফ্যাক্টরি থেকে null রিটার্ন করতে পারেন, যেমন আপনি যদি
ফিচারের সাবসেট অদৃশ্য রাখতে চান।