2014-12-28 5 views
1

Я работаю в Swift.Преобразование Parse GeoPoint в CLLocation в Swift

В моем бэкэнде Parse у меня есть ключ, называемый местоположением, у которого есть множество значений геопотока, которые являются точками широты и долготы. Я хочу запросить/извлечь все эти точки и поместить их в массив, чтобы затем использовать их как разные аннотации на карте.

У меня возникли проблемы с запросом местоположений, чтобы они могли использоваться как CLLocation для карты.

Если кто-нибудь может помочь мне сделать это, мы будем очень благодарны.

+1

Какой код вы используете для выполнения QUER у? И что вы подразумеваете под «У меня возникают проблемы с поиском мест»? Какая проблема? –

+0

Я использую код: var query = PFUser.query(), а затем query.whereKey. Я не уверен, как запросить Locations из parse, а затем преобразовать их в CLLocation, чтобы они могли использоваться как аннотации на карте. –

+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) 
Смежные вопросы