تعرض النافذة المنبثقة محتوى (عادةً ما يكون نصًا أو صورًا) في نافذة فقاعة معلومات فوق الخريطة، في موقع جغرافي معيّن. تحتوي النافذة المنبثقة على مساحة محتوى وساق مستدق. يتم ربط طرف الساق بموقع جغرافي محدّد على الخريطة.
عادةً ما تربط نافذة منبثقة بـ
علامة باستخدام .popover
المعدِّل، ولكن يمكنك أيضًا ربط نافذة منبثقة بإحداثيات LatLng معيّنة
مع الارتفاع، أو إزاحتها من علامة.
إضافة نافذة منبثقة
لإضافة نافذة منبثقة، أنشئ كيان Popover واضبط خياراته، بما في ذلك الموضع ووضع الارتفاع. الموضع هو كائن LatLngAltitude، الذي يحدّد مكان عرض النافذة المنبثقة. يمكنك التحكّم في كيفية تفسير الارتفاع عند الربط باستخدام LatLngAltitude من خلال ضبط وضع الارتفاع. في حال الربط بعلامة، يتم استخدام موضع العلامة بدلاً من ذلك.
يمكن تخصيص محتوى النافذة المنبثقة باستخدام عناصر SwiftUI. يمكنك توفير تنسيقات مخصّصة من خلال تمرير إغلاق أداة إنشاء العرض إلى كيان 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()
}
}
}
}