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

Where does GMSMapView get its location data when isMyLocationEnabled is set to true?

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

self.mapView.isMyLocationEnabled = true

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

真巧,我最近遇到了同样的问题,但在 Google 文档或其他地方找不到任何内容。

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

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

self.mapView.isMyLocationEnabled = false

希望对您有所帮助,如果您发现有关该问题的内容可以分享,请回来。