チュートリアル

Yahoo! AndroidマップSDKの主要機能を一通り体験していただくための開発チュートリアルを用意しました。
「利用準備」を済ませたうえでご利用ください。

現在地を追跡表示する

現在地を追跡表示するには、MyLocationOverlayのサブクラスを用意してonLocationChangedを実装します。

  • MyLocationOverlayのサブクラスを用意します。

public class SubMyLocationOverlay extends MyLocationOverlay {
 
    MapView _mapView = null;
    Activity _activity = null;
 
    public SubMyLocationOverlay(Context context, MapView mapView, Activity activity) {
        super(context, mapView);
 
        _mapView = mapView;
        _activity = activity;
    }
 
    //現在地更新のリスナーイベント
    @Override
    public void onLocationChanged(android.location.Location location) {
        super.onLocationChanged(location);
 
        if (_mapView.getMapController() != null) {
            //位置が更新されると地図の位置も変える。
            GeoPoint p = new GeoPoint((int) (location.getLatitude() * 1E6),(int) (location.getLongitude() * 1E6));
            _mapView.getMapController().animateTo(p);
            _mapView.invalidate();
        }
    }
}
  • 作成したSubMyLocationOverlayをオーバーレイ登録します。

MyLocationOverlay _overlay = null;
 
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    mapView = new MapView(this, appid);
 
    //MyLocationOverlayのサブクラスであるSubMyLocationOverlayインスタンスを作成
    _overlay = new SubMyLocationOverlay(getApplicationContext(), mapView, this);
 
    //現在位置取得開始
    _overlay.enableMyLocation();
     
    //MapViewにMyLocationOverlayを追加。
    mapView.getOverlays().add(_overlay);
    mapView.invalidate();
 
    setContentView(mapView);
}