2016-01-13 11 views
0

Я пытаюсь создать приложение, где каждый может видеть любое местоположение на той же карте. Я не могу найти учебники о том, как получить ВСЕ расположение пользователей на одной карте.Swift GeoPoint получить ВСЕ местоположение пользователей ios

меня удается сделать скрипт, который загружает пользователи расположение в Parse с помощью этого сценария:

PFGeoPoint.geoPointForCurrentLocationInBackground { 


      (geoPoint: PFGeoPoint?, Error : NSError?) -> Void in 
    if let geoPoint = geoPoint{ 

     PFUser.currentUser()? ["location"] = geoPoint 
    PFUser.currentUser()?.saveInBackground() 

Я также управлять, чтобы получить местоположение текущего пользователя.

Кто-нибудь знает, как я могу отображать любое местоположение, а не только мое?

Благодарим за внимание и помощь. Я очень новичок в Swift, поэтому дайте мне знать, если мне нужно предоставить дополнительную информацию.

Вот мой код.

PFGeoPoint.geoPointForCurrentLocationInBackground { 


      (geoPoint: PFGeoPoint?, Error : NSError?) -> Void in 
    if let geoPoint = geoPoint{ 

     PFUser.currentUser()? ["location"] = geoPoint 
    PFUser.currentUser()?.saveInBackground() 
self.MapView?.showsUserLocation = true 
     self.MapView?.delegate = self 
     MapViewLocationManager.delegate = self 
     MapViewLocationManager.startUpdatingLocation() 
    self.MapView?.setUserTrackingMode(MKUserTrackingMode.Follow, animated: false) 




    self.locationManager.requestAlwaysAuthorization() 

     self.locationManager.requestWhenInUseAuthorization() 

     if CLLocationManager.locationServicesEnabled(){ 

    self.locationManager.delegate = self 
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBest 
      self.locationManager.startUpdatingLocation() 
     } 





     func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocationManager]){ 
     var locValue:CLLocationCoordinate2D = (manager.location?.coordinate)! 
     print("locations = \(locValue.latitude) \(locValue.longitude)") 

Вне ViewWDidLoad

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 


     let location = locations.last 
     let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude) 

     let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1)) 

     self.MapView?.setRegion(region, animated: true) 

     self.locationManager.stopUpdatingLocation() 



    } 
+0

Кто такой "каждый"? Другие пользователи вашего приложения? – Moritz

+0

Да. Другие члены. –

+0

Ну, разве это не вопрос о том, как получить всех ваших пользователей от Parse API? Разве это не где-то в их документации? Я пытаюсь понять реальный характер вашей проблемы. На данный момент вопрос кажется ужасно широким и неопределенным для SO. :) – Moritz

ответ

0

Чтобы получить все пользователи места не так просто, как вы думаете. Основное время обычного приложения работает в фоновом режиме. В фоновом режиме приложение может находиться в фоновом режиме или приостановлено или прекращено (about states). И вы должны получить местоположение из любого из этих состояний.
Как это возможно: вы должны включить фоновый режим для отслеживания местоположения для вашего приложения. Чтобы сделать это проще - используйте значительное отслеживание местоположения для всех пользователей, но точность будет около 500 м.
Для получения большей точности (но подробнее сложной реализации) вы можете отправлять пользователям бесшумное push-уведомление (about silent push), оно пробуждает приложение из завершенных или приостановленных состояний в фоновое состояние, и теперь вы можете получать и отправлять текущее местоположение пользователей на ваш сервер.

Смежные вопросы