无法在swift

时间:2017-09-18 22:46:58

标签: ios swift mapkit mkannotation

我的应用程序只需打开地图视图和按钮即可。每次用户按下按钮时,我都希望在当前位置放置一个引脚。用户的坐标将发送到Firebase,然后向下拉,存储在注释中,然后存储在注释数组中。

当用户移动到新位置并按下按钮时,我希望仍然显示旧引脚(在当前启动期间)。 遇到麻烦:当我致电mapView.addAnnotations(annotationArray)时,我只看到一个针脚(最近一个针脚),然后丢失其余针脚。

viewDidLoad中,我设置了纬度和经度观察器,以便将Firebase数据拉回来:

 ref = Database.database().reference()
 databaseHandle = ref?.child("Latitude").observe(.childAdded, with: { (snapshot) in
        self.latitude = snapshot.value as? CLLocationDegrees
    })
    databaseHandle = ref?.child("Longitude").observe(.childAdded, with: { (snapshot) in
        self.longitude = snapshot.value as? CLLocationDegrees
    })

myLatitudemyLongitude变量中存储当前位置:

func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) {

    myLatitude = userLocation.coordinate.latitude
    myLongitude = userLocation.coordinate.longitude
}

按下按钮时,用户的当前位置坐标存储在火力计中。它们会作为变量pullLatitudepullLongitude

退回
@IBAction func tagLocationBtn(_ sender: Any) {

    if myLongitude != nil && myLatitude != nil {
        ref?.child("Latitude").childByAutoId().setValue(myLatitude!)
        ref?.child("Longitude").childByAutoId().setValue(myLongitude!)
    }

    if pullLatitude != nil && pullLongitude != nil {

        coordinate = CLLocationCoordinate2DMake(pullLatitude!, pullLongitude!)
        annotation.coordinate = coordinate!
        annotationArray.append(annotation)
        mapView.addAnnotations(annotationArray)
    }

提前谢谢!

0 个答案:

没有答案