在Pift中将Parse GeoPoint转换为CLLocation

时间:2014-12-28 18:40:34

标签: ios xcode swift parse-platform

我在Swift工作。

在我的Parse后端,我有一个称为位置的键,其中有许多geoPoint值,它们是纬度和经度点。我想查询/获取所有这些点并将它们放入一个数组中,这样我就可以将它们用作地图上的不同注释。

我无法查询位置,以便可以将它们用作地图的CLLocation。

如果有人能帮我这样做,我们将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以将变量创建为PFGeoPoint,并且可以将数据从解析中放入此变量中:

var descLocation: PFGeoPoint = PFGeoPoint()

var innerP1 = NSPredicate(format: "ObjectID = %@", objectID)
    var innerQ1:PFQuery = PFQuery(className: "Test", predicate: innerP1)

    var query = PFQuery.orQueryWithSubqueries([innerQ1])
    query.addAscendingOrder("createdAt")
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in

        if error == nil {
            for object in objects {
                descLocation = object["GeoPoint"] as PFGeoPoint
            }
        } else {
            println("Error")
        }

    }

在您需要该位置的班级中,只需添加以下行:

    var latitude: CLLocationDegrees = descLocation.latitude
    var longtitude: CLLocationDegrees = descLocation.longitude

    var location: CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: latitude, longitude: longtitude)

因此,您可以使用以下代码向地图添加注释:

    @IBOutlet var map: MKMapView!
    var annotation = MKPointAnnotation()
    annotation.title = "Test"
    annotation.coordinate = location
    map.addAnnotation(annotation)