Camera Control

この章では地図の表示変更の方法を紹介します。

マップモード

マップモードは自車位置情報と地図の連動方法に関するモードで以下の3種類があります。

位置情報と地図の連動マップモード動作
連動するHEADING_UP地図の中心座標と回転角が両方とも位置情報と連動
連動するNORTH_UP地図の中心座標のみ位置情報と連動。回転角は北固定
連動しないSCROLL地図の中心座標は連動しない

Map.setMapModeにより上記のマップモードを変更することができます。

地図の表示変更

一般的な3DCGと同様にカメラの位置やその要素を変更することで地図の表示を変更することができます。変更可能な要素は以下の通りです。

要素変更関数
中心座標Map.setCenterGeoCoordinate()
回転角Map.setOrientation()
ズームレベルMap.setZoomLevel()
Map.zoomIn/Out()
Map.zoomTo()
傾きMap.setTilt()
パディングMap.setPadding()
アニメーション時間Map.setDuration()

中心座標

設定することで地図の表示の中心座標を変更することができます。

回転角

設定することで地図を回転させることができます。

orientation

ズームレベル

設定することで地図の縮尺を変更することができます。

zoom

Map.setZoomLevel()ではズームレベル指定してズームすることができます。

Map.zoomIn/Out()では呼び出し毎にズームレベル0.5単位で拡大、縮小することができます。ズームの単位を変更することも可能です。

Map.zoomTo()ではズームレベルではなく表示領域を指定します。

傾き

設定することで地図の傾きを変更することができます。

tilt

パディング

設定することで地図の上下左右のパディング領域を変更することができます。

setOrientation(), setCenter()等の地図の表示を変更する関数はパディング領域を除いた領域に適用されます。 例えば地図画面の上部に別のUI部品を表示した際にその分、上部にパディングを設定することでユーザーから見た地図の中心を適切に保つことが可能です。

padding

アニメーション時間

設定することで地図のアニメーション時間を変更することができます。

CameraOptionsによる表示変更

CameraOptionsオブジェクトに各種設定を行い、Map.moveToPoint(), Map.flyToPoint()の、アニメーション動作が異なるいずれかに渡すことで複数のカメラ要素を同時に設定し、地図の表示を変更することができます。

CameraOptions cameraOptions = new CameraOptions();
GeoCoordinate position = new GeoCoordinate(35.689595, 139.692221);

cameraOptions.setCenter(position);
cameraOptions.setLevel(13.5);

map.moveToPoint(cameraOptions, null);

地図の表示変更通知

地図の表示変更をリスナーにより検知することができます。変更内容と対応するリスナーは以下の通りです。

変更内容リスナーリスナー追加関数
回転角変化OnMapRotateChangeListenersetOnMapRotateChangeListener
傾き変化OnMapTiltChangeListenersetOnMapTiltChangeListener
縮尺変化OnMapScaleChangeListenersetOnMapScaleChangeListener