我创建了一个locationManager
对象,设置了所有选项,包括委托。我正在取回位置更新,这很棒。但是,我怎么知道location services
何时找到了我的用户位置?有时如果我搬到远离小区服务的地方,需要一段时间才能得到修复。由于我没有使用MapKit
,我没有看到一种方法可以知道我是否还没有找到用户位置。
此问题与MapKit
无关,仅与CoreLocation
有关。我知道MKMapViewDelegate
有mapView:didUpdateUserLocation:
方法,但我没有在这个应用中使用MapView。
有没有这样的方法?或者我是否需要添加隐藏的MKMapView
或其他内容才能使用mapView:didUpdateUserLocation:
?
答案 0 :(得分:0)
用户的位置可能会随时间而变化。读数的准确性会随着时间而改变。没有单一的离散时间点,用户被“找到”,这只是一个不断变化的测量。
如果您使用核心位置,则传递给您的代理人的消息包括CLLocation
个具有水平和垂直精度读数的对象。如果您想知道何时可以在一定程度的准确度内测量用户的位置,您可以使用它们。但是你应该意识到这些测量值可以在没有警告的情况下进出公差范围。这不是二元找到/未找到的情况。
答案 1 :(得分:0)
以下是两篇值得回顾的好文章: How to effectively use Core Location in your iPhone app 和 Getting iPhone Location Information using the iOS 4 Core Location Framework
在第二篇文章中,您将看到所描述的准确性,并且在属性值CLLocation verticalAccuracy
和CLLocation horizontalAccurcy
查看documentation for CLLocation Class Reference了解详情。
虽然您可以告诉位置服务您想要达到的准确度,但它可能无法实现,但是yoiu应该能够监控估计的准确度值并将其与阈值进行比较,以确定您是否满足您的准确度要求。< / p>
这意味着您可能需要在将位置信息传递到需要的位置之前过滤核心位置报告。这样,您就可以丢弃任何虚假的位置信息,这些信息通常可以生成。
当然,处理此问题的细节取决于您的具体需求。