পপওভার কোনও নির্দিষ্ট লোকেশনে ম্যাপের উপরে তথ্য বাবল উইন্ডোতে কন্টেন্ট (সাধারণত টেক্সট বা ছবি) দেখায়। পপওভারে একটি কন্টেন্ট এরিয়া এবং একটি টেপার্ড স্টেম আছে। স্টেমের ডগা ম্যাপের নির্দিষ্ট লোকেশনের সাথে অ্যাটাচ করা থাকে।
সাধারণত আপনি একটি
মার্কার-এ পপওভার অ্যাটাচ করবেন, তবে আপনি একটি নির্দিষ্ট 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)
}