Android maps v2:MyLocation按钮仅适用于GPS
我有一个关于使用内置“我的位置”按钮的问题。在我的设置中,我有Android maps v2:MyLocation按钮仅适用于GPS,android,google-maps,gps,location,Android,Google Maps,Gps,Location,我有一个关于使用内置“我的位置”按钮的问题。在我的设置中,我有 mMap.setMyLocationEnabled(true) 因此,按钮在地图上呈现,当GPS打开时,它就像一个符咒。当GPS关闭时,它不再工作。“我的位置”按钮是否只有在启用GPS时才起作用 我想在地图上显示大致位置,即使GPS被禁用。我是否必须使用LocationManager来完成此任务 感谢您当您没有gps或gps不可用时,您需要缓存上一个已知位置并显示它。使用Android Maps API V2,您可以使用和来传递您自
mMap.setMyLocationEnabled(true)代码>
因此,按钮在地图上呈现,当GPS打开时,它就像一个符咒。当GPS关闭时,它不再工作。“我的位置”按钮是否只有在启用GPS时才起作用
我想在地图上显示大致位置,即使GPS被禁用。我是否必须使用LocationManager来完成此任务
感谢您当您没有gps或gps不可用时,您需要缓存上一个已知位置并显示它。使用Android Maps API V2,您可以使用和来传递您自己的位置更新,并控制地图上显示的位置
例如,您可以通过普通网络收听GPS\u提供程序
或NETWORK\u提供程序
位置更新,并将这些位置传递给LocationSource.OnLocationChangedListener
。无论你通过什么,都会在地图上显示出来
首先,在活动中声明OnLocationChangedListener
对象:
private OnLocationChangedListener mListener; //Used to update the map with new location
然后,为您的活动实施LocationSource,例如:
公共类映射屏幕扩展碎片活动实现位置源{
在onCreate()
中,设置地图对象时,为该活动设置LocationSource
:
...
// Show the location on the map
mMap.setMyLocationEnabled(true);
// Set location source
mMap.setLocationSource(this);
...
然后,添加LocationSource
界面所需的方法:
/**
* Maps V2 Location updates
*/
@Override
public void activate(OnLocationChangedListener listener) {
mListener = listener;
}
/**
* Maps V2 Location updates
*/
@Override
public void deactivate() {
mListener = null;
}
最后一部分是将位置更新从正常的LocationListener
传递到实现LocationSource
的活动
:
//Update real-time location on map
if (mListener != null) {
mListener.onLocationChanged(location);
}
如果您正在收听GPS\U提供程序
并将位置从此提供程序传递到mListener.onLocationChanged()中
方法,然后关闭GPS,如果您不使用LocationSource
采取任何进一步的操作,最新的GPS位置将保留在屏幕上。此时,您可以收听网络\u提供程序
并将这些位置更新传递给mListener.onLocationChanged()
方法。看起来您必须请求位置更新。即使您没有在代码中使用传入位置,也会出现蓝点。如果GPS关闭,它将如何获得位置?通过使用“网络”模式。位置将不如GPS估计的位置精确