如何使用 MapKit 从地图中删除所有注释
Posted
技术标签:
【中文标题】如何使用 MapKit 从地图中删除所有注释【英文标题】:How can I remove all annotations from a map using MapKit 【发布时间】:2021-02-04 18:41:46 【问题描述】:我尝试过使用 RemoveAnnotation 功能,但我不知道如何将它们全部删除
struct MapView: View
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(
latitude: 25.7617,
longitude: 80.1918
),
span: MKCoordinateSpan(
latitudeDelta: 100,
longitudeDelta: 100
)
)
var body: some View
Map(coordinateRegion: $region)
【问题讨论】:
【参考方案1】:我正在使用此扩展程序
extension MKMapView
func removeAnnotationAndOverlay(annotation: MKAnnotation)
removeAnnotation(annotation)
if overlays.count > 0
if let overlay = overlays.first
removeOverlay(overlay)
func removeAllOverlays()
removeOverlays(overlays)
func removeAllAnnotations()
removeAnnotations(annotations)
func removeAllAnnotationsAndOverlays()
removeAllOverlays()
removeAllAnnotations()
【讨论】:
我应该在哪里调用函数? 从你的代码很难说。我使用 MapView 作为 UIViewRepresentable,makeUIView 返回实际的 Map 类,在我的例子中是 RideMapView 类:MKMapView、MKMapViewDelegate。然后在 updateUIView 我放置和删除注释。以上是关于如何使用 MapKit 从地图中删除所有注释的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MapKit (SwiftUI) 将工具提示添加到地图注释以在地图上显示位置名称