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)