如何在 Mapkit SwiftUi 上添加位置标记

问题描述 投票:0回答:1

如何使用mapkit在swift Ui中添加经纬度位置标记

我能够看到位置,但如何使用自定义图标在位置上显示标记

import SwiftUI
import MapKit

struct MapView: View {
  
    
   func makeUIView(context: UIViewRepresentableContext<MapView>) -> MKMapView {
        
        MKMapView()
   }

   func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<MapView>) {
       let coordinate = CLLocationCoordinate2D(latitude: 26.801, longitude: 75.805)
        let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)
        let region = MKCoordinateRegion(center: coordinate, span: span)
       uiView.setRegion(region, animated: true)
      }
    
   
        
}


#if DEBUG
struct MaoView_Previews: PreviewProvider {
    static var previews: some View {
        MapView()
    }
}
#endif
swiftui mapkit
1个回答
0
投票

您可以通过先创建

MKPointAnnotation
,然后调用
addAnnotation()
来显示点标记。
示例:

struct MapView: UIViewRepresentable {
    let coordinate: CLLocationCoordinate2D
    
    func makeUIView(context: UIViewRepresentableContext<MapView>) -> MKMapView {
        MKMapView()
    }
    func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<MapView>) {
        let span = MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)
        let region = MKCoordinateRegion(center: coordinate, span: span)
        uiView.setRegion(region, animated: true)
        
        let annotation = MKPointAnnotation()
        annotation.coordinate = coordinate
        uiView.addAnnotation(annotation)
    }
}

struct ContentView: View {
    var body: some View {
        MapView(coordinate: CLLocationCoordinate2D(latitude: 26.801, longitude: 75.805))
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.