التفاعل مع نقاط الاهتمام

صورة تعرض نافذة منبثقة صغيرة تتضمّن تفاصيل المكان في أسفل الشاشة نتيجة النقر على المكان

عندما ينقر المستخدم على نقطة اهتمام (POI) على Map، تعرض حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" الثلاثية الأبعاد لأجهزة iOS‏ (GoogleMaps3DKit) أداة تحديد الأماكن لنقطة الاهتمام هذه. يمكنك الاستماع إلى أحداث النقر والتحكّم في ما إذا كان سيتم عرض هذا التطبيق المصغّر باستخدام onTap(_:) وonPlaceTap(_:) وplaceInformationEnabled(_:).

الاستماع إلى أحداث النقر

للاستماع إلى أحداث النقر على Map، طبِّق المعدِّل onTap(_:).

عندما ينقر المستخدم على الخريطة، يتلقّى الإغلاق عنصر MapTapInfo يحتوي على السمات التالية:

التحكّم في التطبيق المصغّر لواجهة مستخدم Places

للتحكّم في ما إذا كان سيتم عرض التطبيق المصغّر المضمّن لواجهة مستخدم "الأماكن" عند النقر على مكان، يمكنك تطبيق onPlaceTap(_:) على Map. يتلقّى الإغلاق placeId (String) الذي تم النقر عليه ويعرض PlaceTapAction:

  • زرّ Return .default: يعرض التطبيق المصغّر المضمّن لواجهة مستخدم "الأماكن".
  • Return .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)
  }
}