2013-07-17 1 views
0

Я возился с LocationClient в сочетании с Google Maps V2, потому что я хочу интегрировать его в свое приложение и outdate the LocationListener, LocationSource combination.Захват местоположения LocationClient до его предоставления на Карты?

Один requirement приложения я работаю, чтобы grab the Location предоставленной от LocationListener, modify что Местонахождение and pass it to Maps через LocationSource.

Это работает, но я не знаю, как управлять этим с помощью LocationClient. Поскольку кажется, что он автоматически предоставляет местоположение для Карт, и нет смысла захватывать местоположение до того, где я могу его изменить.

Пропустить что-то или это факт?

ответ

2

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); 
} 
+0

На самом деле вы можете заменить LocationManager с помощью LocationClient почти один за другим. Я был смущен, смущенный простым использованием этого ... –

Смежные вопросы