如何在 iOS (swift) 上仅保留 MapKit 中的当前注释标记?

How to keep only current annotation marker in MapKit on iOS (swift)?

我想使用来自外部 GPS 坐标的 MapKit (MapView) 显示我的当前位置(不使用 iphone 定位服务)。显示新坐标位置的注释标记应该是我唯一想保留的,而不是保留所有以前的注释。坐标值从 ContentView 更新(从外部检索)。

如何只显示当前的注释标记(最近的位置)?

import SwiftUI
import MapKit

struct MapView: UIViewRepresentable {
var longi = 34.011286
var lati = -116.166868


func makeUIView(context: Context) -> MKMapView {
    MKMapView(frame: .zero)
}

func updateUIView(_ uiView: MKMapView, context: Context) {


    let coordinate = CLLocationCoordinate2D(
        latitude: lati, longitude: longi)
    let pinpoa=MKPointAnnotation()
    pinpoa.coordinate=coordinate
    pinpoa.title="CAR"
    let span = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)
    let region = MKCoordinateRegion(center: coordinate, span: span)
    uiView.setRegion(region, animated: true)
    uiView.addAnnotation(pinpoa)
} 
}

每次添加新注释时,只需删除地图上已有的one/s即可。所以:

func updateUIView(_ uiView: MKMapView, context: Context) {
    let coordinate = CLLocationCoordinate2D(latitude: lati, longitude: longi)
    let pinpoa=MKPointAnnotation()
    pinpoa.coordinate=coordinate
    pinpoa.title="CAR"
    let span = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)
    let region = MKCoordinateRegion(center: coordinate, span: span)
    uiView.setRegion(region, animated: true)

    let annotations = mapView.annotations
    mapView.removeAnnotations(annotations)  // REMOVE THEM HERE

    uiView.addAnnotation(pinpoa)
}