আগ্রহের লোকেশনের সাথে ইন্টার‍্যাক্ট করা

এই ছবিতে, স্ক্রিনের নিচে একটি ছোট পপওভার দেখানো হয়েছে যেখানে ট্যাপ করার পরে জায়গার বিবরণ দেখানো হয়েছে।

ব্যবহারকারী Map-এ কোনও আকর্ষণীয় স্থানে (POI) ট্যাপ করলে, iOS-এর জন্য Maps 3D SDK (GoogleMaps3DKit) সেই POI-এর জন্য Places উইজেট দেখায়। আপনি ট্যাপ ইভেন্ট শুনতে এবং এই উইজেটটি onTap(_:), onPlaceTap(_:) এবং placeInformationEnabled(_:) ব্যবহার করে দেখানো হচ্ছে কিনা তা নিয়ন্ত্রণ করতে পারেন।

ট্যাপ ইভেন্ট শুনুন

Map-এ ট্যাপ ইভেন্ট শুনতে, onTap(_:) মডিফায়ার প্রয়োগ করুন।

ব্যবহারকারী ম্যাপে ট্যাপ করলে, ক্লোজার একটি MapTapInfo অবজেক্ট পায়, এই অবজেক্টে নিম্নলিখিত প্রপার্টিও থাকে:

  • location: ট্যাপের ভৌগোলিক স্থানাঙ্ক এবং উচ্চতা উপস্থাপনকারী LatLngAltitude।
  • content: MapTapInfo.Content ভ্যালু যা নির্দেশ করে যে কী ট্যাপ করা হয়েছে:
    • MapTapInfo.Content.map: বেস ম্যাপে ট্যাপ করা হয়েছে।
    • MapTapInfo.Content.place(id:): ট্যাপটি একটি জায়গায় হিট করেছে, এটির অনন্য জায়গা আইডি (String) প্রদান করছে।

Places UI উইজেট কন্ট্রোল করা

কোনও জায়গায় ট্যাপ করা হলে, বিল্ট-ইন Places UI উইজেট দেখানো হবে কিনা তা নিয়ন্ত্রণ করতে, Map-এ onPlaceTap(_:) প্রয়োগ করুন। ক্লোজারটি ট্যাপ করা placeId (String) গ্রহণ করে এবং একটি PlaceTapAction রিটার্ন করে:

  • Return .default: বিল্ট-ইন Places UI উইজেট দেখায়।
  • Return .none: বিল্ট-ইন Places UI উইজেটকে সাপ্রেস করে।

নিম্নলিখিত উদাহরণটি ট্যাপ ইভেন্টের জন্য শোনে এবং ডিফল্ট স্থানগুলিকে দমন করে UI উইজেট:

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-এ সব POI ট্যাপের জন্য বিল্ট-ইন প্লেস তথ্য কার্ড বন্ধ করতে, false-কে placeInformationEnabled(_:)-এ পাস করুন:

import GoogleMaps3DKit
import SwiftUI

struct ContentView: View {
  var body: some View {
    Map(mode: .hybrid)
      .placeInformationEnabled(false)
  }
}