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() |
中心座標
設定することで地図の表示の中心座標を変更することができます。
回転角
設定することで地図を回転させることができます。
ズームレベル
設定することで地図の縮尺を変更することができます。
Map.setZoomLevel()
ではズームレベル指定してズームすることができます。
Map.zoomIn/Out()
では呼び出し毎にズームレベル0.5単位で拡大、縮小することができます。ズームの単位を変更することも可能です。
Map.zoomTo()
ではズームレベルではなく表示領域を指定します。
傾き
設定することで地図の傾きを変更することができます。
パディング
設定することで地図の上下左右のパディング領域を変更することができます。
setOrientation()
, setCenter()
等の地図の表示を変更する関数はパディング領域を除いた領域に適用されます。
例えば地図画面の上部に別のUI部品を表示した際にその分、上部にパディングを設定することでユーザーから見た地図の中心を適切に保つことが可能です。
アニメーション時間
設定することで地図のアニメーション時間を変更することができます。
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);
地図の表示変更通知
地図の表示変更をリスナーにより検知することができます。変更内容と対応するリスナーは以下の通りです。
変更内容 | リスナー | リスナー追加関数 |
---|---|---|
回転角変化 | OnMapRotateChangeListener | setOnMapRotateChangeListener |
傾き変化 | OnMapTiltChangeListener | setOnMapTiltChangeListener |
縮尺変化 | OnMapScaleChangeListener | setOnMapScaleChangeListener |