LocationClient
работает аналогично оригинальная Android Location API в том, что он принимает в LocationListener в качестве аргумента для прослушивания геоданных: http://developer.android.com/reference/com/google/android/gms/location/LocationClient.html
LocationListener.onLocationChanged(Location location)
Затем метод вызывается платформой с новыми местами.
Таким образом, вы можете использовать ту же стратегию для передачи обновлений местоположения Maps API v2 через LocationSource
и LocationSource.OnLocationChangedListener
, чтобы контролировать, какие местоположения будут отображаться на карте.
Во-первых, объявить OnLocationChangedListener
объект в вашем Activity
:
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
:
/**
* 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);
}
На самом деле вы можете заменить LocationManager с помощью LocationClient почти один за другим. Я был смущен, смущенный простым использованием этого ... –