Swift GeoPoint 获取所有用户位置 ios

Posted

技术标签:

【中文标题】Swift GeoPoint 获取所有用户位置 ios【英文标题】:Swift GeoPoint get ALL users location ios 【发布时间】:2016-01-13 18:36:11 【问题描述】:

我正在尝试制作一个应用程序,每个人都可以在同一张地图上看到每个人的位置。我找不到任何关于如何在同一张地图上检索所有用户位置的教程。

我已经设法制作了一个脚本,该脚本使用此脚本将用户位置上传到 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()



    

【问题讨论】:

谁是“每个人”?您应用的其他用户? 那么这不只是如何从 Parse API 获取所有用户的问题吗?它不是在他们的文档中的某个地方吗?我试图了解您的问题的实际性质。目前,对于 SO,这个问题似乎非常广泛和模糊。 :) Okei 对不起。例如,当您登录时,我想这样做。你可以看到我的位置。从现在开始,我设法将登录用户的位置发送给解析。这是我查看地图上所有位置的一种方式吗?如果你有苹果的“寻找我的朋友”应用程序,那就是我想要做的。 您可以查看自己的位置,以及所有已登录用户的位置。 感谢您的宝贵时间! 【参考方案1】:

获取所有用户的位置并不像您想象的那么简单。常规应用程序在后台运行的时间最多。在后台应用程序可以处于后台或暂停或终止状态(about states)。您必须从这些状态中的任何一个获取位置。 这怎么可能:您应该启用后台模式以对您的应用进行位置跟踪。为了更简单 - 对所有用户使用重要的位置跟踪,但准确度约为 500m。 为了获得更高的准确度(但更多难以实现),您可以向用户发送静默推送通知(@ 987654322@),它将应用程序从终止或挂起状态唤醒到后台状态,现在您可以获取用户当前位置并将其发送到您的服务器。

【讨论】:

以上是关于Swift GeoPoint 获取所有用户位置 ios的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Firestore Geopoint for Social Media 应用程序获取基于位置的帖子(swift Xcode)

解析其他用户的位置(swift)

如何在默认导航一个 Geopoint 中设置用户当前位置?

SpringBoot Data ElasticSearch 4.* 使用 GeoPoint 坐标位置获取范围内数据

如何使用swift获取appdelegate中的当前位置

我可以通过 GeoPoint 值查询 Firestore 数据库以查找本地位置吗?