سرریزکننده

پلاتفرم را انتخاب کنید: Android iOS JavaScript

تصویر نشانگری با پنجره نوشتاری بالاپر متصل به نشانگر روی پل گلدن گیت با شرحی عمومی از پل

یک پنجره بالاپَر محتوا (معمولاً نوشتار یا تصویر) را در یک پنجره حباب اطلاعاتی بالای نقشه، در یک مکان مشخص نمایش می‌دهد. پنجره بالاپر دارای یک ناحیه محتوا و یک پایه مخروطی است. نوک ساقه به مکان مشخصی در نقشه متصل است.

معمولاً یک پاپ‌اور را به یک نشانگر متصل می‌کنید، اما می‌توانید یک پاپ‌اور را به یک مختصات LatLng خاص نیز متصل کنید.

افزودن بالاپر

برای افزودن پنجره بالاپر، شیء Popover ایجاد کنید و گزینه‌های آن را تنظیم کنید، ازجمله موقعیت و حالت ارتفاع . موقعیت یک شیء LatLng است که شامل عرض جغرافیایی، طول جغرافیایی، و ارتفاع است که تعیین می‌کند پاپ‌اور کجا نمایش داده شود. اگر به نشانگر لنگر شود، به‌جای آن از موقعیت نشانگر استفاده می‌شود. همچنین می‌توانید با تنظیم حالت ارتفاع، نحوه تفسیر ارتفاع را کنترل کنید.

محتوای popover باید در 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)
}