今回はGPSで現在位置の取得へ移りたいと思います。
では、ここからはActivityとlayoutの記述になりますが、
私はMapViewを使用する以外の位置取得方法が分からないので、
MapViewを使用する前提でお話します。
MapViewを使用せずに取得する方法がありましたら教えて下さい。
まずLayoutにMapViewを準備します。
main_layout.xml
<com.google.android.maps.MapView android:id="@+id/map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="@string/map_key_android" />これでMapを表示する場所の準備は出来ました。
次に、Activityの記述へ移ります。
まず、onCreateメソッドへ、下記を追記します。
MainActivity.java
public class MainActivity extends MapActivity { // … private static final int INITIAL_ZOOM_LEVEL = 16; public void onCreate(Bundle savedInstanceState) { // ... mv = (MapView) findViewById(R.id.map_view); overlay = new MyLocationOverlay(getApplicationContext(), mv); overlay.onProviderEnabled(LocationManager.GPS_PROVIDER); overlay.enableMyLocation(); GeoPoint myLocation = overlay.getMyLocation(); if(myLocation == null){ myLocation = new GeoPoint( new Double(35.68198003744061 * 1E6).intValue(), new Double(139.76609230041504 * 1E6).intValue() ); } mv.getController().animateTo(myLocation); mv.getController().setZoom(INITIAL_ZOOM_LEVE); overlay.runOnFirstFix(new Runnable() { public void run() { // follow user's current location myLocation = overlay.getMyLocation(); mv.getController().animateTo(myLocation); mv.getController().setZoom(INITIAL_ZOOM_LEVE); } }); mv.getOverlays().add(overlay); mv.invalidate(); } }
これでMapが表示されると思います。
overlay.runOnFirstFix(new Runnable());でGPSからの位置取得をいたします。
myLocation = overlay.getMyLocation();
現在位置が取得できます。
今回はここまでにします。
分かりにくくてすいません。
GPSを使用したAndroidアプリOneClickHomeをよろしくお願いします。
0 件のコメント:
コメントを投稿