如何使用 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
您可以通过先创建
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))
}
}