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

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

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

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

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

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

التحكّم في أداة واجهة مستخدِم "الأماكن"

للتحكّم في ما إذا كانت أداة واجهة مستخدِم "الأماكن" المضمّنة معروضة عند النقر على مكان، استخدِم 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)
  }
}