LocationSource
Android Maps API V2では、とを使用LocationSource.OnLocationChangedListener
して独自の位置情報の更新を渡し、地図に表示される位置を制御できます。
たとえば、通常のを介して場所の更新を聞いGPS_PROVIDER
たり、場所を更新したりして、これらの場所をに渡すことができます。あなたが渡すものは何でも地図に表示されるものです。NETWORK_PROVIDER
LocationListener
LocationSource.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()
メソッドに渡すことができます。