প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

স্থান অনুসন্ধান উপাদান

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

স্থান UI কিট স্থান অনুসন্ধান উপাদান

আপনি স্থান অনুসন্ধান তালিকা কাস্টমাইজ করতে পারেন. আপনি নির্দিষ্ট করতে পারেন:

  • প্রদর্শন করার বিষয়বস্তু
  • উল্লম্ব অভিযোজনে মিডিয়ার আকার
  • পাঠ্য ছাঁটাই
  • অভিযোজন
  • থিম ওভাররাইড করে যা আপনার ব্র্যান্ড এবং অ্যাপের ডিজাইন ভাষার সাথে মেলে
  • অ্যাট্রিবিউশনের অবস্থান
  • একটি জায়গা নির্বাচনযোগ্য কিনা

আপনি একটি 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()
    }
}