GoogleMap上にGPSで取得した現在地を表示
- Android
-
2011-11-02 - 更新:2012-03-23
この記事は最終更新日から1年以上経過しています。
GoogleMap上にGPSで取得した現在地を表示します。
前回からの続きなので、レイアウトとマニフェストは割愛します。
HelloMapActivity.java
package android.sample;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
public class HelloMapActivity extends MapActivity {
private static MapView mMapView;
private static MapController mMapController;
MyLocationOverlay mOverlay;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMapView = (MapView)findViewById(R.id.mapview);
mMapView.setBuiltInZoomControls(true);
mMapController = mMapView.getController();
// 現在地のーバーレイを作成
mOverlay = new MyLocationOverlay(this, mMapView);
mOverlay.enableMyLocation();
//mOverlay.enableCompass();
mOverlay.runOnFirstFix(new Runnable(){
public void run(){
GeoPoint mPoint = mOverlay.getMyLocation();
mMapController.animateTo(mPoint);
}
});
mMapView.getOverlays().add(mOverlay);
}
@Override
public void onResume(){
super.onResume();
mOverlay.enableMyLocation(); //アクティビティが表示されたとき、位置情報取得を有効
//mOverlay.enableCompass();
}
public void onPause(){
super.onPause();
mOverlay.disableMyLocation(); //アクティビティが隠れたとき、位置取得をストップ
//mOverlay.disnableCompass();
}
@Override //必須メソッドをオーバーライド
protected boolean isRouteDisplayed() {
// TODO 自動生成されたメソッド・スタブ
return false;
}
}
Compassを使用するときは、センサーを使うのでSensorManagerを使用する必要があります。
その際、onPause等でunregisterListenerをしておかないとエラーが発生します。
この記事がお役に立ちましたらシェアお願いします
6,680 views




