LocationClient
与原始 Android Location API 的工作方式类似,因为它采用 LocationListener 作为参数来侦听位置更新:http:
//developer.android.com/reference/com/google/android/gms/location/LocationClient.html
然后,该LocationListener.onLocationChanged(Location location)
方法会被具有新位置的平台调用。
LocationSource
因此,您可以使用相同的策略通过和将位置更新传递给 Maps API v2LocationSource.OnLocationChangedListener
来控制在地图上显示哪些位置。
首先,OnLocationChangedListener
在你的声明一个对象Activity
:
private OnLocationChangedListener mListener; //Used to update the map with new location
然后,为您的活动实施 LocationSource,例如:
public class MapScreen extends FragmentActivity implements LocationSource{
在onCreate()
中,在设置 Map 对象时LocationSource
为此设置:Activity
...
//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
传递到Activity
实现LocationSource
:
//Update real-time location on map
if(mListener != null){
mListener.onLocationChanged(location);
}