当isMyLocationEnabled设置为true时,GMSMapView在哪里获取其位置数据?

时间:2017-01-19 22:40:21

标签: ios swift google-maps google-maps-sdk-ios

我正在使用Google Maps iOS SDK为我当前的位置显示一个蓝点。我实例化地图并通过以下方式将标志设置为true:

self.mapView.isMyLocationEnabled = true

这样做会显示我当前位置的蓝点,但我找不到有关此数据更新频率的任何信息。使用此选项接收位置更新时,我担心电池使用情况。

  • Google Maps SDK是否使用自己的CLLocationManager
  • 如果是,它使用什么参数?它会不断更新位置吗?
  • 它使用什么位置准确度?
  • 如何处理屏幕上的视图?

1 个答案:

答案 0 :(得分:1)

多么巧合,我最近遇到了同样的问题,但在Google文档或某处找不到任何结果。

所以这是我对此事的想法和观察,你可能会发现一些有用的东西

  1. 除了使用iOS CoreLocation外,无法获取用户的GPS位置,所以我相信他们会像我们一样使用它
  2. 根据用户在地图上的位置显示的准确程度,我怀疑Google地图使用的精度大约为10米(如果不是最好的话)。您可以尝试从作为CLLocation实例的myLocation属性获取的实际精度。我没试过。并且它可能会不断更新用户位置,但是即使您拥有“始终”授权,它也不会将您的应用程序保留在后台。
  3. 即使离开屏幕,它也会使用用户的位置,我查看了能量条,而我的位置管理器已经关闭,它会填充相应的背景单元格,当然是 SDK可能会降低准确性,但我不确定UIView的子类是否可以检测它是显示还是隐藏。我发现的唯一方法是将旗帜改为假
  4. self.mapView.isMyLocationEnabled = false

    希望有所帮助,如果你能找到关于这个问题的分享内容,请回来。