পপোভারস

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

গোল্ডেন গেট ব্রিজের উপর একটি মার্কারের ছবি, যেটির সাথে একটি পপওভার টেক্সট উইন্ডো সংযুক্ত রয়েছে এবং তাতে ব্রিজটির একটি সাধারণ বিবরণ দেওয়া আছে।

একটি পপওভার ম্যাপের উপরে একটি নির্দিষ্ট স্থানে, একটি তথ্য বুদবুদ উইন্ডোতে বিষয়বস্তু (সাধারণত লেখা বা ছবি) প্রদর্শন করে। পপওভারটির একটি বিষয়বস্তু এলাকা এবং একটি সরু ডাঁটা থাকে। ডাঁটার অগ্রভাগটি ম্যাপের একটি নির্দিষ্ট স্থানের সাথে সংযুক্ত থাকে।

সাধারণত আপনি একটি মার্কারের সাথে পপওভার সংযুক্ত করেন, কিন্তু আপনি একটি নির্দিষ্ট LatLng স্থানাঙ্কের সাথেও পপওভার সংযুক্ত করতে পারেন।

একটি পপওভার যোগ করুন

একটি পপওভার যোগ করতে, একটি Popover অবজেক্ট তৈরি করুন এবং এর পজিশন ও অল্টিটিউড মোড সহ অপশনগুলো সেট করুন। পজিশন হলো একটি LatLng অবজেক্ট, যার মধ্যে অক্ষাংশ, দ্রাঘিমাংশ এবং উচ্চতা অন্তর্ভুক্ত থাকে, যা নির্ধারণ করে পপওভারটি কোথায় প্রদর্শিত হবে। যদি কোনো মার্কারের সাথে অ্যাঙ্কর করা হয়, তবে তার পরিবর্তে মার্কারের পজিশন ব্যবহার করা হয়। অল্টিটিউড মোড সেট করার মাধ্যমে আপনি উচ্চতাকে কীভাবে ব্যাখ্যা করা হবে তাও নিয়ন্ত্রণ করতে পারেন।

একটি পপওভারের বিষয়বস্তু অবশ্যই একটি AndroidView-এর মধ্যে থাকতে হবে। পপওভারগুলো ডিফল্টরূপে স্ক্রলযোগ্য এবং এগুলোর একটি পূর্বনির্ধারিত সর্বোচ্চ উচ্চতা থাকে।

একটি পপওভারকে একটি মার্কারের সাথে অ্যাঙ্কর করুন

আপনি মার্কারের সাথে পপওভার অ্যাঙ্কর করতে পারেন। কোনো মার্কারের সাথে অ্যাঙ্কর করা পপওভার যোগ করার সময়, আপনাকে পপওভারটিকে একটি Marker অবজেক্টের সাথে যুক্ত করতে হবে।

class MapManager(private val map: MapView) {

    /**
     * Adds a popover anchored to a marker.
     * @param context The Context required to instantiate UI views.
     */
    fun addPopoverToMarker(context: Context) {
        // 1. Create a marker
        val markerOptions = markerOptions {
            position = latLngAltitude {
                latitude = 37.422
                longitude = -122.084
                altitude = 0.0
            }
        }

        val marker = map.addMarker(markerOptions) ?: return

        // 2. Create the custom view using the passed-in context
        val textView = TextView(context).apply {
            text = context.getString(R.string.popover_hello)
            setPadding(16, 16, 16, 16)
            setBackgroundColor(Color.WHITE)
            setTextColor(Color.BLACK)
        }

        // 3. Configure and display the popover
        val options = popoverOptions {
            content = textView
            positionAnchor = marker
            altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
        }

        val popover = map.addPopover(options)
        popover.show()
    }
}

একটি কনফিগার করা পপওভার যোগ করুন

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

/**
 * Adds a configured popover (auto-close enabled, auto-pan disabled).
 * @param context The Context used to inflate the UI and retrieve string resources.
 */
fun addConfiguredPopover(context: Context) {
    // 1. Initialize the view with the explicit context
    val textView = TextView(context).apply {
        text = context.getString(com.example.snippets.common.R.string.popover_info)
        setPadding(12, 12, 12, 12)
        setBackgroundColor(Color.WHITE)
        setTextColor(Color.BLACK)
    }

    // 2. Configure popover behavior
    val options = popoverOptions {
        content = textView
        // Setting a fixed coordinate anchor
        positionAnchor = latLngAltitude {
            latitude = 0.0
            longitude = 0.0
            altitude = 0.0
        }
        autoCloseEnabled = true // Closes automatically when the map is tapped elsewhere
        autoPanEnabled = false  // Map camera remains stationary when popover appears
    }

    // 3. Add to the map instance
    map.addPopover(options)
}