স্থান অনুসন্ধান উপাদান
প্লেস ইউআই কিটের প্লেস সার্চ কম্পোনেন্ট একটি তালিকায় জায়গা সার্চের ফলাফল রেন্ডার করে।

আপনি স্থান অনুসন্ধান তালিকা কাস্টমাইজ করতে পারেন. আপনি নির্দিষ্ট করতে পারেন:
- প্রদর্শন করার বিষয়বস্তু
- উল্লম্ব অভিযোজনে মিডিয়ার আকার
- পাঠ্য ছাঁটাই
- অভিযোজন
- থিম ওভাররাইড করে যা আপনার ব্র্যান্ড এবং অ্যাপের ডিজাইন ভাষার সাথে মেলে
- অ্যাট্রিবিউশনের অবস্থান
- একটি জায়গা নির্বাচনযোগ্য কিনা
আপনি একটি SearchByTextRequest
বা একটি SearchNearbyRequest
সঞ্চালনের জন্য অনুরোধটি কাস্টমাইজ করতে পারেন।
বিলিং
প্রতিবার SearchByTextRequest()
বা PlaceSearchViewRequest()
বাইন্ডিং মান পরিবর্তন করা হলে আপনাকে বিল করা হবে।
আপনার অ্যাপে স্থান অনুসন্ধান যোগ করুন
PlaceSearchView class
ব্যবহার করে স্থান অনুসন্ধান উইজেট যোগ করুন।
সুইফট
PlaceSearchView( orientation: .horizontal, // default is vertical request: $placeSearchViewRequest, configuration: configuration )
আপনি যখন আপনার অ্যাপকে একটি পাঠ্য অনুসন্ধান বা কাছাকাছি অনুসন্ধান ফলাফল লোড করতে চান, তখন আপনার PlaceSearchViewRequest
মান আপডেট করুন৷
সুইফট
// use placeSearchViewRequest = .searchNearby(...) to configure a searchNearby request @State private var let placeSearchViewRequest = .searchByText( SearchByTextRequest( textQuery: "Googleplex", placeProperties: [.all], locationBias: CircularCoordinateRegion( center: CLLocationCoordinate2D(latitude: 0, longitude: 0), radius: 0 ) ) )
এছাড়াও আপনি ঐচ্ছিকভাবে কলব্যাক পেতে পারেন যখন উপাদান লোড হয়, একটি স্থান নির্বাচন করা হয়, বা উপাদান লোড করার সময় একটি ত্রুটি হয়।
সুইফট
.onLoad { places in print("places: \(places)") } .onRequestError { error in print("error: \(error)") } .onPlaceSelected { place in print("place: \(place)") }
স্থান অনুসন্ধান উপাদান কাস্টমাইজ করুন
বিষয়বস্তু কাস্টমাইজ করুন
আপনার উপাদান কোন বিষয়বস্তু প্রদর্শন করবে তা আপনাকে অবশ্যই নির্দিষ্ট করতে হবে।এই উদাহরণটি স্থানটির ঠিকানা এবং রেটিং প্রদর্শন করতে উপাদানটিকে কনফিগার করে।
সুইফট
private let configuration = PlaceSearchConfiguration( content: [.address(), .rating()] )
এছাড়াও আপনি ঐচ্ছিকভাবে আপনার স্থান অনুসন্ধান উপাদানে প্রদর্শিত সামগ্রীর নিম্নলিখিত দিকগুলি কাস্টমাইজ করতে পারেন:
-
content
: উপাদানে দেখানো বিষয়বস্তু। -
mediaSize
: টুকরোটির উল্লম্ব অভিযোজনে ছবির আকার। ডিফল্ট ছোট. বিষয়বস্তু নির্দিষ্ট. -
preferTruncation
: প্রতিটি স্থানের বিশদ দৃশ্যের পাঠ্য ছাঁটাই করা হবে কিনা। ডিফল্ট মিথ্যা. -
theme
: আপনার কাস্টম থিম যা PlacesMaterialTheme থেকে উত্তরাধিকারসূত্রে প্রাপ্ত। থিমিং সম্পর্কে আরও জানুন। -
attributionPosition
: কম্পোনেন্টের উপরে বা নীচে Google ম্যাপ অ্যাট্রিবিউশন দেখাতে হবে কিনা। ডিফল্ট হল .top. -
selectable
: তালিকার প্রতিটি স্থান নির্বাচনযোগ্য কিনা। এটি নির্বাচনযোগ্য হলে, একটি স্থান নির্বাচন করার পরেonPlaceSelected
ক্লোজার বলা হবে। ডিফল্ট মিথ্যা.
PlaceSearchConfiguration
এ আপনার কাস্টমাইজেশন কনফিগারেশন যোগ করুন।
সুইফট
private let configuration = PlaceSearchConfiguration( content: [.address, .rating, .media(size: .large)], preferTruncation: true, // default is false theme: PlacesMaterialTheme(), attributionPosition: .bottom, // default is top selectable: true // default is false )
অভিযোজন কাস্টমাইজ করুন
ডিফল্ট অভিযোজন উল্লম্ব। আপনি PlaceSearchView
এ একটি অনুভূমিক অভিযোজন নির্দিষ্ট করতে পারেন।
সুইফট
PlaceSearchView( orientation: .horizontal, // default is vertical request: $placeSearchViewRequest, configuration: configuration )
থিম কাস্টমাইজ করুন
আপনি একটি থিম নির্দিষ্ট করতে পারেন যা যেকোনো ডিফল্ট শৈলী বৈশিষ্ট্যকে ওভাররাইড করে। ডিফল্ট হল PlacesMaterialTheme
।
থিমিং সম্পর্কে আরও তথ্যের জন্য কাস্টম স্টাইলিং বিভাগটি দেখুন।
প্লেস UI কিট ডিফল্টরূপে একটি অন্ধকার থিম প্রদান করে, তাই আপনাকে অন্ধকার এবং হালকা উভয় থিম কাস্টমাইজ করতে হতে পারে। অন্ধকার থিম কাস্টমাইজ করতে, আপনার কাস্টম থিমে .dark
এবং attribution.darkModeColor
এর মান যোগ করুন।
উদাহরণ
স্থান অনুসন্ধান উপাদান যোগ করুন
সুইফট
struct PlaceSearchDemoView: View { private let configuration = PlaceSearchConfiguration( content: [.address(), .rating(), .type(), .media(size: .large)], preferTruncation: true, // default is false theme: PlacesMaterialTheme(), attributionPosition: .bottom, // default is top selectable: true // default is false ) // can also do let placeSearchViewRequest = .searchNearby(...) to configure a searchNearby request @State private var placeSearchViewRequest: PlaceSearchViewRequest = .searchByText( SearchByTextRequest( textQuery: "Googleplex", placeProperties: [.all], locationBias: CircularCoordinateRegion( center: CLLocationCoordinate2D(latitude: 0, longitude: 0), radius: 0 ) ) ) var body: some View { PlaceSearchView( orientation: .horizontal, // default is vertical request: $placeSearchViewRequest, configuration: configuration ) .onLoad { places in print("places: \(places)") } .onRequestError { error in print("error: \(error)") } .onPlaceSelected { place in print("place: \(place)") } } }
থিম কাস্টমাইজ করুন
প্লেস UI কিট ডিফল্টরূপে একটি অন্ধকার থিম প্রদান করে, তাই আপনাকে অন্ধকার এবং হালকা উভয় থিম কাস্টমাইজ করতে হতে পারে। অন্ধকার থিম কাস্টমাইজ করতে, আপনার কাস্টম থিমে .dark
এবং attribution.darkModeColor
এর মান যোগ করুন।
সুইফট
@Environment(\.colorScheme) var colorScheme var theme: PlacesMaterialTheme { if customTheme { var theme = PlacesMaterialTheme() var color = PlacesMaterialColor() color.surface = (colorScheme == .dark ? .blue : .gray) color.outlineDecorative = (colorScheme == .dark ? .white : .black) color.onSurface = (colorScheme == .dark ? .yellow : .red) color.onSurfaceVariant = (colorScheme == .dark ? .white : .blue) color.onSecondaryContainer = (colorScheme == .dark ? .white : .red) color.secondaryContainer = (colorScheme == .dark ? .green : .purple) color.positive = (colorScheme == .dark ? .yellow : .red) color.primary = (colorScheme == .dark ? .yellow : .purple) color.info = (colorScheme == .dark ? .yellow : .purple) var shape = PlacesMaterialShape() shape.cornerRadius = 10 var font = PlacesMaterialFont() font.labelLarge = .system(size: UIFontMetrics.default.scaledValue(for: 18)) font.headlineMedium = .system(size: UIFontMetrics.default.scaledValue(for: 15)) font.bodyLarge = .system(size: UIFontMetrics.default.scaledValue(for: 15)) font.bodyMedium = .system(size: UIFontMetrics.default.scaledValue(for: 12)) font.bodySmall = .system(size: UIFontMetrics.default.scaledValue(for: 11)) var attribution = PlacesMaterialAttribution() attribution.lightModeColor = .black attribution.darkModeColor = .white theme.color = color theme.shape = shape theme.font = font theme.attribution = attribution } else { return PlacesMaterialTheme() } }