今回は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 件のコメント:
コメントを投稿