使用纬度和经度在地图视图上绘制特定位置

问题描述

我想在地图上绘制具有来自 api 的纬度和经度的特定点。

程序流程

  1. 从 api 获取 LAT 和 LON(完成)
  2. 每 5 秒后通过计时器再次 Ping api 以获取最新位置(完成)
  3. 在地图上用检索到的 LAT 和 LON 绘制位置

问题是网络上的每个代码都与 2 点有关,因此用户 loc 和目标 loc。如果没有用户 loc,我似乎无法让它工作。然而,我已经对此进行了编码以绘制位置。但是,当我触摸地图时,地图会缩小。另一个问题是,当我得到另一个点时,前一个点也会保留在屏幕上。 (出于测试目的,我对 lat 和 lon 进行了硬编码,但是当我连接刷新的 api 代码时,先前的点仍然存在并且地图代码与此相同。lat 和 lon 通过 createAnnotation() 中的 func 参数传递。)

我的代码

import UIKit
import MapKit

class ViewController: UIViewController,MKMapViewDelegate {

    @IBOutlet weak var mapView: MKMapView!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        mapView.delegate = self // or connect in storyboard
        createAnnotation()
    }

    func createAnnotation(){
        let annotations = MKPointAnnotation()
        annotations.coordinate = CLLocationCoordinate2D(latitude: 41.87369,longitude: -87.813293)
        mapView.addAnnotation(annotations)
    }}


如何正确绘制坐标?然后删除之前的并显示新的?。

解决方法

对于“前一个还保留在屏幕上”的问题:如果您不想继续添加新注释,请不要继续制作新注释并调用 $("#btn-enter").click(function (e) { e.preventDefault() 。相反,请保留您添加的注释,稍后使用其坐标属性移动它。可能是这样的:

addAnnotation