عندما ينقر المستخدِم على نقطة اهتمام (POI) على
Map، تعرض
حزمة تطوير البرامج (SDK) لخرائط Google الثلاثية الأبعاد لنظام التشغيل iOS (GoogleMaps3DKit) أداة
أدوات تحديد الأماكن لنقطة الاهتمام هذه. يمكنك الاستماع إلى أحداث النقر والتحكّم في ما إذا كانت هذه الأداة معروضة باستخدام
onTap(_:)،
onPlaceTap(_:)، وplaceInformationEnabled(_:).
الاستماع إلى أحداث النقر
للاستماع إلى أحداث النقر على
Map، استخدِم
المعدِّل
onTap(_:).
عندما ينقر المستخدِم على الخريطة، يتلقّى الإغلاق عنصر
MapTapInfo
يحتوي على الخصائص التالية:
location: TheLatLngAltitudeالذي يمثّل الإحداثيات الجغرافية والارتفاع عند النقرcontent: القيمةMapTapInfo.Contentالتي تشير إلى العنصر الذي تم النقر عليه:MapTapInfo.Content.map: تم النقر على الخريطة الأساسية.MapTapInfo.Content.place(id:): تم النقر على مكان، ما يؤدي إلى توفير رقم تعريف المكان الفريد (String).
التحكّم في أداة واجهة مستخدِم "الأماكن"
للتحكّم في ما إذا كانت أداة واجهة مستخدِم "الأماكن" المضمّنة معروضة عند النقر على مكان، استخدِم onPlaceTap(_:) على
Map. يتلقّى الإغلاق placeId (String) الذي تم النقر عليه ويعرض PlaceTapAction:
- إرجاع
.default: يعرض أداة واجهة مستخدِم "الأماكن" المضمّنة. - إرجاع
.none: يخفي أداة واجهة مستخدِم "الأماكن" المضمّنة.
يستمع المثال التالي إلى أحداث النقر ويخفي أداة واجهة مستخدِم "الأماكن" التلقائية:
import GoogleMaps3DKit
import SwiftUI
struct ContentView: View {
@State private var camera = Camera(center: .init(latitude: 37.7749, longitude: -122.4194))
var body: some View {
Map(camera: $camera, mode: .hybrid)
.onPlaceTap { placeId in
// Suppress the built-in Places UI widget
.none
}
.onTap { tapInfo in
switch tapInfo.content {
case .map:
print("Tapped map at \(tapInfo.location)")
case .place(let placeId):
print("Tapped place \(placeId) at \(tapInfo.location)")
}
}
}
}
لإيقاف بطاقة معلومات المكان المضمّنة لجميع النقرات على نقاط الاهتمام على
Map، مرِّر
false إلى placeInformationEnabled(_:):
import GoogleMaps3DKit
import SwiftUI
struct ContentView: View {
var body: some View {
Map(mode: .hybrid)
.placeInformationEnabled(false)
}
}