【问题标题】:CLLocationManager in MapKit?MapKit 中的 CLLocationManager?
【发布时间】:2013-06-20 09:52:12
【问题描述】:

如果我在同一个应用程序中使用 CLLocationManager 和 MapKit 的实例(showUserLocatio 设置为 YES),这是否意味着它们使用了 CLLocationManager 的两个实例? stackoverflow上有很多类似的问题和答案,但实际上没有一个是有任何事实证明的。

【问题讨论】:

  • 为什么要有两个实例?
  • 看看this

标签: ios objective-c mapkit cllocationmanager


【解决方案1】:

我认为您混淆了CLLocationManager 和定位系统(GPS、WiFi 定位等)。位置管理器和地图视图都从同一个地方(设备的定位系统)获取它们的位置信息。地图视图可能会为其位置使用第二个位置管理器,但这并不重要。这是一个实现细节。您可以创建一个包含 10 个位置管理器的应用,但它不会使用 10 倍的功率,因为​​它们都从同一个位置(设备的位置系统)获取位置信息。

因此可能是地图视图在幕后使用了CLLocationManager,但这对您来说应该无关紧要。

【讨论】:

  • 感谢您的回答。这对我来说很重要的原因是我想控制 MapKit 显示用户当前位置的准确程度,并以此控制电源使用情况。在 CLLocationManager 中,您可以通过设置 desiredAccuracy 和 distanceFilter 来实现。我刚刚做了一个测试,表明 MapKit 和单独制作的 CLLocationManager 实例不会相互干扰 - 返回不同的纬度和经度。
  • 地图视图的位置无法控制太多。给用户一个按钮来关闭它(MKUserTrackingBarButtonItem),但不要试图自己优化它。确保地图离开屏幕时用户位置处于关闭状态。
猜你喜欢
  • 1970-01-01
  • 2021-07-29
  • 2012-05-08
  • 1970-01-01
  • 2014-11-15
  • 2019-01-15
  • 2015-08-12
  • 1970-01-01
  • 2013-11-14
相关资源
最近更新 更多