Auto Free Zoom
この章ではオートフリーズームの表示や設定について紹介します。
オートフリーズームとは
ルート案内中に、案内地点に近づくと、自車位置と案内地点の両方が画面に収まる地図スケールに自動的に調整する機能です。
地図スケールは、自車位置から案内地点までの距離に応じて、徐々にズームインを行い、以下のように変化します。
| 自車位置から案内地点までの道沿い距離 | 地図スケール |
|---|---|
| 1000m | 500m |
| 500m | 200m |
| 200m | 100m |
| 100m以下 | 50m |
オートフリーズームによる地図スケールの変更は中間スケールを使用してシームレスに変更される。
オートフリーズームはマップモードがHEADING_UPもしくはNORTH_UPのみ行う。
オートフリーズーム中に、地図をスクロールした場合は、現在の地図スケールを維持してスクロールを行う。
再びマップモードをHEADING_UPもしくはNORTH_UPに変更した際に
現在の自車位置から次の案内地点までの距離により、オートフリーズームを行う。
オートフリーズーム中に、地図スケールを変更した場合は、オートフリーズームを一時停止する。
案内地点を通過後、再度オートフリーズームを行う。
オートフリーズームの設定方法
MapのsetAutoFreeZoomEnabled()をtrueに設定すると有効、falseに設定すると無効になります。
オートフリーズームを有効にするサンプルコードは以下の通りです。
map.setAutoFreeZoomEnabled(true);
オートフリーズームの状態通知
MapのaddOnAutoFreeZoomStateChangeListener()にてリスナーを追加すると
OnAutoFreeZoomStateChange()にてオートフリーズームの状態通知を受けることが出来ます。
リスナーの解除はMapのremoveOnAutoFreeZoomStateChangeListener()にて可能です。
リスナーの追加・解除のサンプルコードは以下の通りです。
// オートフリーズーム状態変更リスナーを実装
OnAutoFreeZoomStateChangeListener listener = new OnAutoFreeZoomStateChangeListener() {
@Override
public void OnAutoFreeZoomStateChange(Map.AutoFreeZoomState state) {
// オートフリーズームの状態通知
}
};
// オートフリーズーム状態変更リスナーを追加
map.addOnAutoFreeZoomStateChangeListener(listener);
// オートフリーズーム状態変更リスナーを解除
map.removeOnAutoFreeZoomStateChangeListener(listener)
OnAutoFreeZoomStateChange()通知されるAutoFreeZoomStateは以下となります。
| 状態 | 説明 |
|---|---|
| STOP | オートフリーズーム停止 |
| RUNNING | オートフリーズーム動作中 |
| INTERRUPT | オートフリーズームを一時停止し 現在のズームレベルをキープ |
| WAITING | オートフリーズーム待機中 |