Map コンポーネントは、マップによって表される空間データとアプリケーションとの間の主要なインタフェースです。ほとんどのコンポーネントは、マップに関する情報を表示するか、ユーザが何らかの方法でマップと対話できるようにします。
Map コンポーネントは次の API をサポートしています。
- loadMap( mapDefinition ) – Map コンポーネントに指定の MapDefinition をロードさせます。
- reloadMap() – Map コンポーネントに現在の MapDefinition を再ロードさせます。これは、マップの状態が何らかの方法で変化した場合(たとえば、マップ内の画層を追加したり削除した場合)に必要であり、主に内部的な機能です。
- setExtents( minx, miny, maxx, maxy ) – マップの範囲を特定の境界ボックスにプログラム的に設定するために使用します。
- drawMap() – マップ イメージをレンダリングしてブラウザにロードするために使用します。通常では、この関数は必要に応じて自動的に呼び出されますが、Map コンポーネントに知らされずに、サーバ上でマップの状態が変化した場合は、プログラム的に呼び出す必要があります。
- query( options ) – 何らかの方法でマップのクエリーを行い、選択情報を作成(または修正)するために使用します。options 引数は、次のプロパティを格納できる JavaScript オブジェクトです。
- geometry – クエリーされる空間領域を定義するジオメトリが含まれている WKT 文字列。既定値では、クエリーは空間範囲に限定されません。
- maxFeatures – 返されるフィーチャの最大数を決める整数値。値が -1 の場合は、すべてのフィーチャを意味します。既定値は -1 です。
- persistent – クエリー結果をマップ上の視覚的な選択情報として保存するかどうかを決めるブール値。既定値は true です。
- selectionType – フィーチャがジオメトリに関係してどのように選択されるのかを決める文字列値。指定できる値は次のとおりです。
- INTERSECTS – フィーチャとジオメトリのいずれかの部分が交差する場合に、そのフィーチャが選択されます。これが既定値です。
- CONTAINS – フィーチャがジオメトリに含まれている場合に、そのフィーチャが選択されます。
- filter – 属性値に基づいてフィーチャを選択する際に使用される有効な FDO SQL の where 句を表す文字列値。これはジオメトリの値と結合できます。既定値は「フィルタなし」です。
- layers – クエリーされる画層名の配列。画層名が何も指定されない場合は、すべての画層がクエリーされます。既定ではすべての画層をクエリーします。
- extendSelection – このクエリーの結果を現在のセレクション セットに追加するか、または現在のセレクション セットを置き換えるかを制御するブール値。
- getSessionId() – 現在のセッション ID を返します。
- hasSelection() 「イベント」を参照してください。
- getSelection( callback ) 「イベント」を参照してください。
- clearSelection() 「イベント」を参照してください。
Map コンポーネントは、アプリケーションがロードされるときに自動的にロードされる既定の MapDefinition を保持できます。ただし、既定のマップを指定する必要はありません。既定のマップが指定されていない場合でも、Map コンポーネントはやはり初期化されます。その後、別のコンポーネント(MapMenu コンポーネントなど)または何らかのアプリケーション固有のコードに応答して MapDefinition がロードされます。MapDefinition がいつ、どのようにロードされても、Map コンポーネントは MAP_LOADED イベントを発行します。ほとんどのコンポーネントはロードされているマップが存在しないと役に立たないため、MAP_LOADED イベントを使用してコンポーネントを有効にすべきタイミングを決定します。これは、ほとんどのコンポーネントはマップがロードされるまでは初期状態で無効とみなされることを意味します。これには、Map Menu コンポーネントなど注目すべき例外がいくつかあります。このコンポーネントは、ユーザが選択できる MapDefinition のドロップダウン メニューを提供するために使用されます。
マップがロードされると、次のようなイベントが発行される可能性があります。
- MAP_SESSION_CREATED: Map コンポーネントは、サーバとのセッションを作成したり保守する役割を担います。セッションが作成されると、このイベントが発行されます。このイベントが発行されるまでは何も起こりません。
- MAP_LOADING: Map コンポーネントは、新しいマップのロードを開始するときに、このイベントを発行します。このイベントは、主にコンポーネントによって、それぞれの現在の状態を解除して一時的に無効にすることにより、新しいマップに対応する準備を整えるために使用されます。
- MAP_LOADED: Map コンポーネントは、マップがロードされて準備が整ったときに、このイベントを発行します。
- MAP_EXTENTS_CHANGED: Map コンポーネントは、現在の境界範囲を変更するナビゲーションの際に、このイベントを発行します。
- MAP_BUSY_CHANGED: Map コンポーネントは、非同期イベントの開始と終了の際に、その参照数を保持します。アプリケーションは、このイベントを使用して処理状況のイメージを表示することにより、何らかの非同期アクティビティが起こっていることをユーザに知らせます。
- MAP_RESIZED: Map コンポーネントは、マップのサイズが変更されたときに、このイベントを発行します。
- MAP_SELECTION_ON: Map コンポーネントは、新しい選択情報が作成されたときに、このイベントを発行します。
- MAP_SELECTION_OFF: Map コンポーネントは、現在の選択情報がクリアされたときに、このイベントを発行します。
- MAP_ACTIVE_LAYER_CHANGED: Map コンポーネントは、アプリケーションが 1 つの画層をアクティブとしてマークすることを許可します。このイベントは、アクティブな画層が変更されたときに発行されます。
- MAP_GENERIC_EVENT: ほとんどのコンポーネントは、それぞれの Map コンポーネントに直接にすべてを依存しています。ただし、場合によっては、コンポーネントは他のコンポーネントでの変更を通知される必要があります。このような場合に、Map コンポーネントは MAP_GENERIC_EVENT を介してイベントのブローカーとして機能することができます。MAP_GENERIC_EVENT を使用するコンポーネントが通常これを行うのは特定の内部的な目的のためであるので、アプリケーションは通常はこのイベントの登録を行ってはいけません。