首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MKPointAnnotation到CloudKit坐标

从MKPointAnnotation到CloudKit坐标
EN

Stack Overflow用户
提问于 2016-11-27 00:15:29
回答 1查看 271关注 0票数 0

我将CloudKit中的坐标作为位置数据类型("Koordinaatit")。我试图从这些坐标绘制MKPointAnnotation来映射,但我不知道如何从数组获取坐标到注释。

代码语言:javascript
复制
var sijainnitArray:[CKRecord] = []


    func drawPin(sijainti: Int) {

         let annotation = MKPointAnnotation()
         annotation.coordinate = CLLocationCoordinate2D(sijainnitArray[sijainti].Koordinaatit) //XCode shows error: Value of type 'CKRecord' has no memeber 'Koordinaatit'
         self.mapView.addAnnotation(annotation)
}


func fetchRecordsFromCloud() {

        let cloudContainer = CKContainer.default()
        let publicDatabase = cloudContainer.publicCloudDatabase
        let predicate = NSPredicate(value: true)
        let query = CKQuery(recordType: "Sijainti", predicate: predicate)

        publicDatabase.perform(query, inZoneWith: nil, completionHandler: {
            (results, error) -> Void in

            if error != nil {
                print(error)
                return
            }

            if let results = results {
                print("Completed the download of locations data")
                self.sijainnitArray = results
                }
        })

    }



override func viewDidLoad() {
    super.viewDidLoad()

    fetchRecordsFromCloud()

    let sijainnitLkm = sijainnitArray.count - 1

    for i in 0...sijainnitLkm {
        drawPin(sijainti: i)
        }
}



 **ANSWER**

let sijaintilista = self.sijainnitArray[i]

            let sijaintiLatLong = sijaintilista.object(forKey: "Koordinaatit") as? CLLocation
            let sijaintiLat = sijaintiLatLong?.coordinate.latitude
            let sijaintiLon = sijaintiLatLong?.coordinate.longitude

            let sourceLocation = CLLocationCoordinate2D(latitude: sijaintiLat!,  longitude: sijaintiLon!)
            let sourcePlacemark = MKPlacemark(coordinate: sourceLocation, addressDictionary: nil)

            if let location = sourcePlacemark.location {
                annotation.coordinate = location.coordinate
            }

            self.mapView.addAnnotation(annotation)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-27 00:56:34

您希望在您的object(forKey:)上使用CKRecord方法。想必您想要使用的关键是"Koordinaatit“。

我以前没用过CloudKit。看起来,您可以直接将CLLocation保存到CKRecord中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40824513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档