ব্যবহারকারী
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)
}
}