map.setMyLocationEnabled(true)确实做了什么

时间:2014-03-19 22:51:28

标签: android google-maps geolocation google-maps-android-api-2

我正在设置:

map.setMyLocationEnabled(true)

但我想知道这到底是做什么的。我所知道的:

  1. 我在地图的右上角找到了一个找到我的按钮
  2. 我在地图上看到一个代表我当前位置的蓝色图标
  3. 这是我的担忧。我正在写一个位置感知的应用程序,但我担心电池。在我的应用程序的其他地方(通过首选项)我设置了一个LocationManager并监听位置事件,以便我可以记录它们。但我的部分偏好是我获得更新的准确性和间隔。

    当我关闭我的LocationManager时:

    locationManange.removeUpdates(LocationListener listener);
    

    我希望关闭整个应用的位置服务。然而,我仍然在手机标题栏中看到小GPS图标,表明该应用正在获取位置更新。我知道这是因为我在地图视图中设置了这个:

    map.setMyLocationEnabled(true);
    

    我原本以为如果你没有通过设置一个设置map.setMyLocationEnabled(true)的LocationManager来监听位置更新就没有效果(即没有我的位置图标或按钮)。但事实并非如此。

    这是否意味着通过调用map.setMyLocationEnabled(true)google正在设置自己的LocationManager并使用自己的设置?我真的想调用map.setMyLocationEnabled(true),但让它使用我的设置进行位置更新,而不是谷歌在幕后做的事情。那可能吗?我在文档中遗漏了什么吗?当我调用map.setMyLocationEnabled(true)时,我找不到有关LocationManager上设置的准确度或间隔的任何信息。

1 个答案:

答案 0 :(得分:11)

  

这是否意味着通过调用map.setMyLocationEnabled(true)google正在设置自己的LocationManager并使用自己的设置?

不完全是。默认情况下映射V2 uses LocationClient

  

我真的想调用map.setMyLocationEnabled(true),但让它使用我的设置进行位置更新,而不是谷歌在幕后做的事情。这可能吗?

您可以use setLocationSource()提供您自己的位置数据,以便与my-location图层一起使用。 Here is a sample project证明了这一点。