« 【Android】Google Map API v2を使用する | トップページ | 【Tizen】ウェブサイトのリンクから、Nativeアプリを起動する »

2013年10月22日 (火)

【Android】Google Map API v2で、地図を拡大/指定位置の表示/傾ける/回転などを行う

先日、せっかくgoogle map API v2を使って地図を表示したので、

遊んでみたいと思います。


  

【GoogleMapオブジェクトを取得する】

何をするにもまず、GoogleMapオブジェクトを取得する必要があります。

GoogleMapオブジェクトは、次のようにして取得します。

public class MainActivity extends FragmentActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        SupportMapFragment fragment
            = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map));
       
        GoogleMap map = fragment.getMap();

       
    }
}

マップオブジェクトが取得できたら、地図のズームや回転など、いろいろな操作をしてみましょう。


【地図の拡大/縮小を行う】

地図の拡大・縮小を行う方法は、以下の通り。

// 地図の倍率を指定する。
CameraUpdate update = CameraUpdateFactory.zoomBy(3);

// 倍率を地図に反映させる。
map.moveCamera(update);

なお、指定できる倍率の最大値及び最小値は、

map.getMaxZoomLevel() / map.getMinZoomLevel()

で、取得できます。


【指定した位置を地図で表示する】

指定した位置を、地図上で表示する場合は、次のように行います。

/*
*  表示位置を示すLatLngオブジェクトを生成。
*  第一引数が緯度、第二引数が軽度。
*/
LatLng lat = new LatLng(34.645947,135.514267);

// 地図の表示位置を指定する。
CameraUpdate update = CameraUpdateFactory.newLatLng(lat);

// 表示位置を地図に反映させる。
map.moveCamera(update);

ちなみに、上のサンプルソースで指定している座標は、

横浜ランドマークを超え、日本一高いビルとなったあべのハルカスの位置です。


【地図を傾ける】

Google Map API v2で表示した地図は、2点タッチしたまま上下にスライドすると、

地図の表示を傾けることができます。

これをソースで行う場合は、次のようになります。

// 傾きを指定する際は、CameraPositionを使用する必要がある。
CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());

// 地図の傾きを設定。大きければ大きいほど傾く。
builder.tilt(50);
CameraPosition position = builder.build();

// CameraPositionから、CameraUpdateを生成。
CameraUpdate update = CameraUpdateFactory.newCameraPosition(position);

// 傾きを地図に反映させる。
map.moveCamera(update);


【地図を回転させる】

Google Map API v2で表示した地図は、2点タッチしたまま回転させると、

地図を回転させることが出来ます。

この操作も、もちろんプログラムから行うことが出来ます。

これにより、地図をヘディングアップ表示させることも簡単に出来そうですね。

ソースは以下のとおりです。

// 地図を回転する際は、CameraPositionを使用する必要がある。
CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());

// 地図の回転角を設定。0~360で指定する。0で北を指す。
builder.bearing(90);
CameraPosition position = builder.build();

// CameraPositionから、CameraUpdateを生成。
CameraUpdate update = CameraUpdateFactory.newCameraPosition(position);

// 回転角を地図に反映させる。
map.moveCamera(update);


【倍率/指定位置の表示/傾き/回転を、一度に指定する】

ここまでで記載した、4つの操作を一度に行います。

1度に複数の設定を同時に行う場合は、CameraPosition.Builderを使用します。

CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());

// 地図の倍率を指定。
builder.zoom(17);

// 地図の表示位置を指定。
builder.target(new LatLng(34.645947,135.514267));

// 地図の傾きを指定。
builder.tilt(50);
// 地図の回転角を指定。
builder.bearing(90);

CameraPosition position = builder.build();

// CameraPositionから、CameraUpdateを生成。
CameraUpdate update = CameraUpdateFactory.newCameraPosition(position);

// 回転角を地図に反映させる。
map.moveCamera(update);


上記ソースの設定で地図を表示すると、下の画像のようになります。

Device20131022010551_2


立体的に表示されて、かなりカッコいい感じです。


--------------------------------------------------

自作アプリ、

いつでもクイックランチャー ver3.0アップデートを

公開しました!

Slidetask

Google playよりダウンロード可能ですので、是非お使いください!

https://play.google.com/store/apps/details?id=com.yso.slidetask


感想や改善点等、聞かせていただけるとうれしいです。

アプリの中の実装方法で気になる点のご質問も大歓迎です!

« 【Android】Google Map API v2を使用する | トップページ | 【Tizen】ウェブサイトのリンクから、Nativeアプリを起動する »

Android」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1882306/53679302

この記事へのトラックバック一覧です: 【Android】Google Map API v2で、地図を拡大/指定位置の表示/傾ける/回転などを行う:

« 【Android】Google Map API v2を使用する | トップページ | 【Tizen】ウェブサイトのリンクから、Nativeアプリを起動する »

購入


無料ブログはココログ