Adicione a pesquisa de localização da Amazon ao seu aplicativo - Amazon Location Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Adicione a pesquisa de localização da Amazon ao seu aplicativo

Agora você adicionará a pesquisa de geocodificação reversa ao aplicativo, onde encontrará os itens em um local. Para simplificar o uso de um aplicativo iOS, pesquisaremos no centro da tela. Para encontrar um novo local, mova o mapa para onde você deseja pesquisar. Colocaremos um marcador no centro do mapa para mostrar onde estamos pesquisando.

  1. Adicione o seguinte código no arquivo `TrackingViewModel.swift` que está relacionado à pesquisa reversa de geocodificação

    func reverseGeocodeCenter(centerCoordinate: CLLocationCoordinate2D, marker: MLNPointAnnotation) { let position = [NSNumber(value: centerCoordinate.longitude), NSNumber(value: centerCoordinate.latitude)] searchPositionAPI(position: position, marker: marker) } func searchPositionAPI(position: [Double], marker: MLNPointAnnotation) { if let amazonClient = authHelper.getLocationClient() { Task { let searchRequest = SearchPlaceIndexForPositionInput(indexName: indexName, language: "en" , maxResults: 10, position: position) let searchResponse = try? await amazonClient.searchPosition(indexName: indexName, input: searchRequest) DispatchQueue.main.async { self.centerLabel = searchResponse?.results?.first?.place?.label ?? "" self.mlnMapView?.selectAnnotation(marker, animated: true, completionHandler: {}) } } } }
  2. Atualize o TrackingView.swift arquivo com o seguinte código, que mostrará o endereço da localização centralizada do mapview

    import SwiftUI struct TrackingView: View { @ObservedObject var trackingViewModel: TrackingViewModel var body: some View { ZStack(alignment: .bottom) { if trackingViewModel.mapSigningIntialised { MapView(trackingViewModel: trackingViewModel) VStack { UserLocationView(trackingViewModel: trackingViewModel) CenterAddressView(trackingViewModel: trackingViewModel) } } else { Text("Loading...") } } .onAppear() { if !trackingViewModel.identityPoolId.isEmpty { Task { do { try await trackingViewModel.authWithCognito(identityPoolId: trackingViewModel.identityPoolId) } catch { print(error) } } } } } }