To add a location search UI component to your `AMLMapView`, you will add an `AMLSearchBar` to your View in your desired layout. Upon searching, `Geo.Place`s are converted to `MGLPointFeature`s using `AmplifyMapLibre.createFeatures(places)`. Lastly assign those converted `MGLPointFeature`s to `mapState.features`. Alternatively, you can leverage the `AMLMapCompositeView` directly, which includes an `AMLSearchBar` among other pre-configured UI components. ```swift import SwiftUI import AmplifyMapLibreUI import AmplifyMapLibreAdapter import Amplify struct MyMapView: View { @StateObject private var mapState = AMLMapViewState() @State private var searchText = "" @State private var displayState: AMLSearchBar.DisplayState = .map var body: some View { ZStack(alignment: .top) { AMLMapView(mapState: mapState) .edgesIgnoringSafeArea(.all) AMLSearchBar( text: $searchText, displayState: $displayState, onEditing: { }, onCommit: search, onCancel: { mapState.features = [] } ) .padding() } } private func search() { let searchArea = Geo.SearchArea.near(mapState.center) let searchOptions = Geo.SearchForTextOptions(area: searchArea) Task { do { let places = try await Amplify.Geo.search(for: searchText, options: searchOptions) await MainActor.run { self.mapState.features = AmplifyMapLibre.createFeatures(places) } } catch let error as Geo.Error { print("Failed to search: \(error)") } catch { print("Unexpected error: \(error)") } } } } ``` ![AMLMapView with AMLSearchBar](/images/ios-geocoder-search-box-map.png) ### Customize Feature Icons You can customize the feature images displayed on the `AMLMapView` or `AMLMapCompositeView`, you can leverage the `featureImage()` view modifier. ```swift var body: some View { AMLMapView(mapState: mapState) .featureImage { let image = UIImage( systemName: "paperplane.circle.fill", withConfiguration: UIImage.SymbolConfiguration( font: .systemFont(ofSize: 22, weight: .medium) ) )! return image } .edgesIgnoringSafeArea(.all) } ``` ![AMLMapView featureImage view modifier](/images/ios-geocoder-custom-images.png)