微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我想在地图上绘制具有来自 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。