如何在 MapKit SwiftUI 上添加位置标记并显示卫星视图? [重复]

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

如何使用 MapKit 在 SwiftUI 中添加经纬度位置标记?

我可以看到位置,但如何使用自定义图标显示位置标记?

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.