تعرض النافذة المنبثقة المحتوى (عادةً ما يكون نصًا أو صورًا) في نافذة فقاعة معلومات فوق الخريطة، في موقع جغرافي محدّد. يحتوي العنصر المنبثق على مساحة للمحتوى وجزء سفلي مدبّب. يتم ربط طرف الساق بموقع جغرافي محدّد على الخريطة.
عادةً ما يتم ربط نافذة منبثقة بعلامة باستخدام المعدِّل .popover، ولكن يمكنك أيضًا ربط نافذة منبثقة بإحداثية LatLng معيّنة مع الارتفاع، أو إزاحتها من علامة.
إضافة عنصر منبثق
لإضافة نافذة منبثقة، أنشئ عنصر Popover واضبط خياراته، بما في ذلك
وضع الموضع والارتفاع. الموضع هو عنصر LatLngAltitude،
يحدّد مكان عرض النافذة المنبثقة. يمكنك التحكّم في طريقة تفسير الارتفاع عند التثبيت من خلال LatLngAltitude عن طريق ضبط وضع الارتفاع. في حال الربط بعلامة، يتم استخدام موضع العلامة بدلاً من ذلك.
يمكن تخصيص محتوى النافذة المنبثقة باستخدام طرق عرض SwiftUI. يمكنك توفير تنسيقات مخصّصة من خلال تمرير عملية إغلاق لإنشاء View إلى الكيان Popover أو المعدِّل .popover.
إضافة نافذة منبثقة إلى عنصر LatLngAltitude
تضيف عيّنة تعليمات برمجية التالية عنصرًا منبثقًا إلى عنصر LatLngAltitude:
import GoogleMaps3D
import SwiftUI
struct SimpleCoordinatePopover: View {
@State private var isOpen = true
// Alcatraz Island coordinates
private let alcatraz = LatLngAltitude(latitude: 37.8270, longitude: -122.4230)
var body: some View {
Map(initialCamera: .init(latitude: 37.8270, longitude: -122.4230)) {
Popover(
positionAnchor: alcatraz,
isOpen: $isOpen
) {
Text("Alcatraz Island")
}
}
}
}
إضافة نافذة منبثقة إلى علامة
تضيف عيّنة الرمز البرمجي التالية عنصرًا منبثقًا إلى علامة:
import GoogleMaps3D
import SwiftUI
struct SimpleMarkerPopover: View {
@State private var isOpen = false
// Ferry Building coordinates
private let ferryBuilding = LatLngAltitude(latitude: 37.7955, longitude: -122.3937)
var body: some View {
Map(initialCamera: .init(latitude: 37.7955, longitude: -122.3937)) {
Marker(position: ferryBuilding)
.popover(isOpen: $isOpen) {
Text("Ferry Building")
}
.onTap {
isOpen.toggle()
}
}
}
}