屋内マップの表示

屋内マップの表示

一番使えそうなので
これと現在地取得をやろう

http://seesaawiki.jp/w/moonlight_aska/d/%b2%b0%c6%e2%a4%f2%c9%bd%bc%a8/%c8%f3%c9%bd%bc%a8%a4%b9%a4%eb
を参考に行う

以前作成した 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"

となっていたのが原因

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です