地図 GUI インタラクター

このセクションで説明されているコードをすべて含む Map Builder のデモ用ソース・コードについては、 <installdir> /jviews-maps89/samples/mapbuilder/index.html をご覧ください。

パン

pan.png
IlvMapPanInteractor を使用すると、スペース・キーを押し続けることで、マネージャーをパンさせることができます。一度インストールすると、いつでも利用可能です。
このインタラクターを作成して IlvManagerView に付加するには、以下のコードを使用できます。
IlvManagerView view = ...
...
IlvMapPanInteractor pan = new IlvMapPanInteractor();
pan.setView(view);

矩形のズーム

zoomrect.png
IlvMapZoomInteractor を使用すると、マネージャー・ビューの矩形を選択して拡大できます。矩形ズーム・インタラクターには、拡大および縮小インタラクターが含まれます。また、シンプル・クリックのズームおよびズーム解除インタラクターも提供しています。このインタラクターを作成するには、以下のコードを使用できます。
IlvMapZoomInteractor interactor = new IlvMapZoomInteractor();
view.setInteractor(interactor);

継続ズーム

mapsprg_continuouszoom.png
IlvContinuousZoomInteractor を使用すると、ユーザーはマウス・ボタンを押したままの状態で地図を拡大または縮小することができます。ズームの中心、つまりズームの焦点となる地図上の点はマウスがクリックしている点になります。デフォルトで、左マウス・ボタンを押すとズームの中心に迫って拡大表示し、右マウス・ボタンを押すと中心から離れて縮小表示するようになっています。マウスをドラッグすると現在のズーム操作が中断し、地図はマウスの動きに従ってパンされます。
このイテレーターは、マウス・ホイールの動きも方向転換します。このイテレーターを有効にすると、ユーザーはマウス・ホイールを後方に向かってスクロールして拡大し、前方に向かってスクロールして縮小します。
遅延とズーム倍率は各イテレーター・インスタンスごとに設定できます。
IlvContinuousZoomInteractor interactor = new IlvContinuousZoomInteractor();
interactor.setContinuousZoomFactor(factor);
interactor.setPeriod(period);
view.setInteractor(interactor);
このインタラクターを有効にするには、以下のコードを使用します。

回転

rotate.png
IlvManagerViewRotateInteractor を使用すると、マネージャー・ビューの内容全体を回転させることができます。即時回転、遅延回転およびキー制御回転など各種モードが利用できます。
このインタラクターを作成するには、次のコードが使用できます。
IlvManagerView view = …;
...
IlvManagerViewRotateInteractor interactor = new
   IlvManagerViewRotateInteractor();
interactor.setMode(IlvManagerViewRotateInteractor.DYNAMIC_CONTINUOUS_MODE);
view.setInteractor(interactor);

距離の測定

linedistance.png
IlvMakeMeasureInteractor を使用すると、マネージャー・ビューの地図に線を描き、地図上の線によって表される距離を自動的に表示させることができます。
final IlvMakeMeasureInteractor measure = new IlvMakeMeasureInteractor();
 JButton b = new JButton();
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        view.setInteractor(measure);
      }
    });
IlvMakeMeasureInteractor を作成するには、以下のコードを使用できます。