縮尺フィルター
地図作成時に、一定の縮尺でのみ特定タイプの情報が表示されるマネージャー・レイヤーを表示する必要が生じる場合があります。たとえば、道路インフラストラクチャーについて、地図を小縮尺でオーバーロードされないように十分ズームした場合のみ、二次道路を表示する必要のある場合があります。
Rogue Wave® Views マップ・ビルダーのレイヤー・ウィンドウには、縮尺フィルター・コマンドが用意されています。ただし、
IlvScaleVisibilityFilter クラスによっても、縮尺フィルターを実行できます。このクラスは、地図用にカスタマイズした Rogue Wave Views 4.0 の一般クラス
IlvLayerVisibilityFilter の拡張機能です。
以下は、縮尺が 1/100,000~1/500,000 の場合のみ表示するレイヤーを指定するコードの例です。
IlvScaleVisibilityFilter* filter = new IlvScaleVisibilityFilter(1./500000., 1./100000.); layer->addVisibilityFilter(filter); |
IlvScaleVisibilityFilter コンストラクターは引数として、2 つの倍率をとります。マネージャー・レイヤーの縮尺がこれら 2 つの値の中間にあれば、そのレイヤーは表示されます。この限界チェックを破棄する場合は、倍率として
NoLimit() の値を渡すこともできます。マネージャー・レイヤーの縮尺は、マネージャーに付加されたマネージャー座標の表現に使用される測定単位 (m、cm、ヤードその他) を示す
IlvMapInfo によって算出されます。縮尺は、レイヤーを保持するマネージャーの測定単位に従って計算されます。
以下のコード例では、レイヤーが 1f/500,000 未満の縮尺のみで表示されるように指示します。
IlvScaleVisibilityFilter* scaleFilter = new IlvScaleVisibilityFilter(IlvScaleVisibilityFilter::NoLimit(), 1./500000.); layer->addVisibilityFilter(scaleFilter); |
レイヤーに付加されている可視性フィルターは、.ilv ファイルに自動的に保存されます。
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.