屋内マップの表示
一番使えそうなので
これと現在地取得をやろう
以前作成した usefulmap プロジェクトを改造して使う
レイアウトファイルは
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" />
となっている
手順としては
Google Map インスタンスの取得
private GoogleMap mMap =null;
次にマップの設定をする
デフォルトだと世界地図なので
今度いく予定の大阪のサンプルが載っているので
それを指定
private static final LatLng OSAKA_STATION = new LatLng(34.702177, 135.495114);
activity の場合は findViewById() で取得したけど
マップはフラグメントなので
findFragmentById()
を使う
これはonCreate() の中へ記述する
mMap =((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
これで mMap で操作するための準備ができる
if(mMap !=null){ }
で地図が空でないのなら表示していく
CameraPosition cameraPos = new CameraPosition.Builder() .target(OSAKA_STATION) .zoom(18.0f).bearing(0) .build();java] でカメラを大阪駅に指定 target で位置情報の座標を指定 zoom は倍率 bering はカメラの向きで0で北 build() でインスタンス生成 mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPos));
で大阪駅まで移動する
次にGoogleMap.setIndoorenabled()
で
屋内マップの表示、非表示を設定
デフォルトは表示
今回は表示したいので
mMap.setIndoorEnabled(true);
途中でエラーがあった
原因は作りかけて保存したXMLファイル
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" />
の
class=”” の部分が
class="com.google.android.gms.maps.MapFragment"
となっていたのが原因