একটি সীমানা বহুভুজ স্টাইল করুন

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

একটি ফিচার লেয়ারে সীমানা বহুভুজে স্ট্রোক এবং ফিল করার জন্য স্টাইল প্রয়োগ করতে:

  1. FeatureLayer.StyleFactory ইন্টারফেসটি বাস্তবায়ন করে এমন একটি স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন। এই ফাংশনটি একটি ফিচার লেয়ারের স্টাইলিং লজিক সংজ্ঞায়িত করে।

  2. ফিচার লেয়ারে স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করতে FeatureLayer.setFeatureStyle() কল করুন।

নিচের উদাহরণ মানচিত্রটি একটি লোকালিটি বৈশিষ্ট্য স্তরে একটি একক অঞ্চলের জন্য সীমানা বহুভুজ হাইলাইট করার পদ্ধতি প্রদর্শন করে।

হানা হাওয়াই বহুভুজ দেখানো একটি স্ক্রিনশট।

একটি স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন

যখন আপনি ফাংশনটি ফিচার লেয়ারে সেট করেন, তখন প্রভাবিত ফিচার লেয়ারের প্রতিটি বহুভুজে স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করা হয়। এই ফাংশনটি অবশ্যই একটি FeatureStyle অবজেক্ট ফেরত দেবে যা বহুভুজকে কীভাবে স্টাইল করতে হবে তা নির্দিষ্ট করে।

অ্যান্ড্রয়েডের জন্য ম্যাপস SDK স্টাইল ফ্যাক্টরি ফাংশনে একটি Feature ইনস্ট্যান্স পাস করে। Feature ইনস্ট্যান্সটি ফিচারের মেটাডেটা উপস্থাপন করে, যা আপনাকে স্টাইল ফ্যাক্টরি ফাংশনের মেটাডেটাতে অ্যাক্সেস দেয়।

স্টাইল ফ্যাক্টরি ফাংশনটি প্রয়োগ করার সময় সর্বদা সামঞ্জস্যপূর্ণ ফলাফল প্রদান করা উচিত। উদাহরণস্বরূপ, যদি আপনি এলোমেলোভাবে বৈশিষ্ট্যগুলির একটি সেট রঙ করতে চান, তাহলে এলোমেলো অংশটি ফিচার স্টাইল ফাংশনে স্থান নেওয়া উচিত নয়, কারণ এতে অনিচ্ছাকৃত ফলাফল হতে পারে।

যেহেতু এই ফাংশনটি একটি স্তরের প্রতিটি বৈশিষ্ট্যের উপর কাজ করে, তাই অপ্টিমাইজেশন গুরুত্বপূর্ণ। রেন্ডারিং সময়কে প্রভাবিত করা এড়াতে:

  • শুধুমাত্র আপনার প্রয়োজনীয় ফিচার লেয়ারগুলি সক্ষম করুন।

  • যখন কোনও ফিচার লেয়ার আর ব্যবহার করা হচ্ছে না তখন FeatureLayer.setFeatureStyle(null) এ কল করুন।

বহুভুজ স্ট্রোক এবং পূরণ সেট করুন

স্টাইল ফ্যাক্টরি ফাংশনে একটি সীমানা বহুভুজ স্টাইল করার সময়, আপনি সেট করতে পারেন:

  • Color শ্রেণী দ্বারা সংজ্ঞায়িত ARGB রঙের বিন্যাসে বহুভুজ সীমানার স্ট্রোক রঙ এবং অস্বচ্ছতা । ডিফল্ট মান হল স্বচ্ছ (0x00000000)।

  • স্ক্রিন পিক্সেলে বহুভুজ সীমানার স্ট্রোক প্রস্থ । ডিফল্ট মান হল 2।

  • Color ক্লাস দ্বারা সংজ্ঞায়িত ARGB রঙের বিন্যাসে বহুভুজের রঙ এবং অস্বচ্ছতা পূরণ করুন । ডিফল্ট মান হল স্বচ্ছ (0x00000000)।

লক্ষ্যবস্তু বৈশিষ্ট্যগুলির জন্য স্থান আইডিগুলি খুঁজুন

অনেক অ্যাপ্লিকেশন বৈশিষ্ট্যের অবস্থানের উপর ভিত্তি করে একটি বৈশিষ্ট্যে শৈলী প্রয়োগ করে। উদাহরণস্বরূপ, আপনি বিভিন্ন দেশ, অঞ্চল বা অঞ্চলে স্টাইল প্রয়োগ করতে চাইতে পারেন। বৈশিষ্ট্যের অবস্থানটি একটি স্থান আইডি দ্বারা প্রতিনিধিত্ব করা হয়।

প্লেস আইডিগুলি গুগল প্লেস ডাটাবেস এবং গুগল ম্যাপে একটি স্থানকে অনন্যভাবে শনাক্ত করে। একটি স্থান আইডি পেতে:

  • নাম অনুসারে অঞ্চল অনুসন্ধান করতে এবং নির্দিষ্ট সীমানার মধ্যে অঞ্চলগুলির জন্য স্থান আইডি পেতে Places API এবং Geocoding ব্যবহার করুন
  • ক্লিক ইভেন্ট থেকে ডেটা পান । এটি ক্লিক করা অঞ্চলের সাথে সম্পর্কিত বৈশিষ্ট্যটি ফেরত দেয়, যা এর স্থান আইডি এবং বৈশিষ্ট্যের ধরণ বিভাগে অ্যাক্সেস প্রদান করে।

অঞ্চলভেদে কভারেজ পরিবর্তিত হয়। বিস্তারিত জানার জন্য গুগল বাউন্ডারি কভারেজ দেখুন।

ভৌগোলিক নামগুলি অনেক উৎস থেকে পাওয়া যায়, যেমন USGS বোর্ড অন জিওগ্রাফিক নেমস এবং US গেজেটিয়ার ফাইলস

একটি স্থান আইডি পেতে PlaceFeature ব্যবহার করুন

PlaceFeature ক্লাস হল Feature ক্লাসের একটি সাবক্লাস। এটি একটি place বৈশিষ্ট্য (একটি place ID সহ একটি বৈশিষ্ট্য) উপস্থাপন করে যার মধ্যে ADMINISTRATIVE_AREA_LEVEL_1 , ADMINISTRATIVE_AREA_LEVEL_2 , COUNTRY , LOCALITY , POSTAL_CODE , এবং SCHOOL_DISTRICT ধরণের বৈশিষ্ট্য অন্তর্ভুক্ত থাকে।

যখন প্লেস আইডিটি উপলব্ধ থাকে, তখন অ্যান্ড্রয়েডের জন্য ম্যাপস SDK PlaceFeature একটি উদাহরণ স্টাইল ফ্যাক্টরি ফাংশনে পাঠায় যাতে আপনি বৈশিষ্ট্যটির অবস্থান নির্ধারণ করতে পারেন।

স্টাইল ফ্যাক্টরির উদাহরণ

এই উদাহরণটি Locality ফিচার লেয়ারের একটি বহুভুজে একটি স্টাইল ফ্যাক্টরি ফাংশন প্রয়োগ করে। স্টাইল ফ্যাক্টরি ফাংশন PlaceFeature ইনস্ট্যান্স ব্যবহার করে বৈশিষ্ট্যটির প্লেস আইডি নির্ধারণ করে। যদি প্লেস আইডি হানা, হাওয়াইয়ের জন্য হয় তবে ফাংশনটি বহুভুজে একটি কাস্টম ফিল এবং স্ট্রোক স্টাইল প্রয়োগ করে:

  1. যদি আপনি ইতিমধ্যেই এটি না করে থাকেন, তাহলে একটি নতুন মানচিত্র আইডি এবং মানচিত্র শৈলী তৈরি করতে শুরু করুন এর ধাপগুলি অনুসরণ করুন। লোকালিটি বৈশিষ্ট্য স্তরটি সক্ষম করতে ভুলবেন না।

  2. মানচিত্রটি শুরু হলে লোকালিটি ফিচার লেয়ারের একটি রেফারেন্স পান।

    জাভা

    private FeatureLayer localityLayer;
    @Override public void onMapReady(GoogleMap map) { // Get the LOCALITY feature layer. localityLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build());
    // Apply style factory function to LOCALITY layer. styleLocalityLayer(); }

    কোটলিন

    private var localityLayer: FeatureLayer? = null
    override fun onMapReady(googleMap: GoogleMap) { // Get the LOCALITY feature layer. localityLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.LOCALITY) .build())
    // Apply style factory function to LOCALITY layer. styleLocalityLayer() }

  3. একটি স্টাইল ফ্যাক্টরি ফাংশন তৈরি করুন এবং এটি লোক্যালিটি ফিচার লেয়ারে প্রয়োগ করুন।

    নিম্নলিখিত উদাহরণটি শুধুমাত্র তখনই ফাংশনটি প্রয়োগ করবে যদি বৈশিষ্ট্যটির স্থান আইডি হানা, হাওয়াইয়ের জন্য হয় ("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")। যদি নির্দিষ্ট স্থান আইডি হানা, হাওয়াইয়ের জন্য না হয় তবে স্টাইলটি প্রয়োগ করা হবে না।

    জাভা

    private void styleLocalityLayer() {
    // Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature instanceof PlaceFeature) { PlaceFeature placeFeature = (PlaceFeature) feature;
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return new FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and solid purple border. .fillColor(0x80810FCB) .strokeColor(0xFF810FCB) .build(); } } return null; };
    // Apply the style factory function to the feature layer. localityLayer.setFeatureStyle(styleFactory); }

    কোটলিন

    private fun styleLocalityLayer() {
    // Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
    // Check if the feature is an instance of PlaceFeature, // which contains a place ID. if (feature is PlaceFeature) { val placeFeature: PlaceFeature = feature as PlaceFeature
    // Determine if the place ID is for Hana, HI. if (placeFeature.getPlaceId().equals("ChIJ0zQtYiWsVHkRk8lRoB1RNPo")) {
    // Use FeatureStyle.Builder to configure the FeatureStyle object // returned by the style factory function. return@StyleFactory FeatureStyle.Builder() // Define a style with purple fill at 50% opacity and // solid purple border. .fillColor(0x80810FCB.toInt()) .strokeColor(0xFF810FCB.toInt()) .build() } } return@StyleFactory null }
    // Apply the style factory function to the feature layer. localityLayer?.setFeatureStyle(styleFactory) }

একটি স্তর থেকে স্টাইলিং সরান

একটি স্তর থেকে স্টাইলিং অপসারণ করতে, FeatureLayer.setFeatureStyle(null) কল করুন।