LocationClient
的工作方式类似于原生Android位置API,它接受一个LocationListener的作为参数传递给聆听位置更新: http://developer.android.com/reference/com/google/android/gms/location/LocationClient.html
的LocationListener.onLocationChanged(Location location)
方法,然后获取与新的位置的平台调用。
因此,您可以使用相同的策略将位置更新通过LocationSource
和LocationSource.OnLocationChangedListener
传递到Maps API v2,以控制地图上显示的位置。
首先,在你Activity
声明OnLocationChangedListener
对象:
private OnLocationChangedListener mListener; //Used to update the map with new location
然后,实施LocationSource为您的活动,这样的:
public class MapScreen extends FragmentActivity implements LocationSource{
在onCreate()
,为此成立了LocationSource
当您设置地图对象时:Activity
:
...
//Show the location on the map
mMap.setMyLocationEnabled(true);
//Set location source
mMap.setLocationSource(this);
...
然后,添加对LocationSource
接口所需的方法:LocationSource
/**
* Maps V2 Location updates
*/
@Override
public void activate(OnLocationChangedListener listener) {
mListener = listener;
}
/**
* Maps V2 Location updates
*/
@Override
public void deactivate() {
mListener = null;
}
的最后一部分是在位置更新通过从正常LocationListener
到Activity
实现:
//Update real-time location on map
if(mListener != null){
mListener.onLocationChanged(location);
}
其实您可以几乎一个接一个地用LocationClient替换LocationManager。我很容易被使用这个困惑...... –