LocationSourceAndroid Maps API V2では、とを使用LocationSource.OnLocationChangedListenerして独自の位置情報の更新を渡し、地図に表示される位置を制御できます。
たとえば、通常のを介して場所の更新を聞いGPS_PROVIDERたり、場所を更新したりして、これらの場所をに渡すことができます。あなたが渡すものは何でも地図に表示されるものです。NETWORK_PROVIDERLocationListenerLocationSource.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);
}
GPS_PROVIDERこのプロバイダーからmListener.onLocationChanged()メソッドに位置情報を渡し、GPSをオフにしている場合、でそれ以上のアクションを実行しないと、最新LocationSourceのGPS位置情報が画面に表示されたままになります。この時点で、をリッスンし、NETWORK_PROVIDERこれらの場所の更新をmListener.onLocationChanged()メソッドに渡すことができます。