3.1.2.20 theme要素
theme要素には、次の定義が含まれます:
<!ELEMENT theme (jdbc_query | jdbc_image_query | jdbc_georaster_query
| jdbc_network_query | jdbc_topology_query | map_tile_theme)?,
operations? >
<!ATTLIST theme
name CDATA #REQUIRED
datasource CDATA #IMPLIED
template_theme CDATA #IMPLIED
max_scale CDATA #IMPLIED
min_scale CDATA #IMPLIED
label_max_scale CDATA #IMPLIED
label_min_scale CDATA #IMPLIED
label_always_on (TRUE|FALSE) "FALSE"
fast_unpickle (TRUE|FALSE) "TRUE"
mode CDATA #IMPLIED
min_dist CDATA #IMPLIED
fixed_svglabel (TRUE|FALSE) "FALSE"
visible_in_svg (TRUE|FALSE) "TRUE"
selectable_in_svg (TRUE|FALSE) "FALSE"
part_of_basemap (TRUE|FALSE) "FALSE"
simplify_shapes (TRUE|FALSE) "TRUE"
transparency CDATA #IMPLIED
minimum_pixels CDATA #IMPLIED
onclick CDATA #IMPLIED
onmousemove CDATA #IMPLIED
onmouseover CDATA #IMPLIED
onmouseout CDATA #IMPLIED
workspace_name CDATA #IMPLIED
workspace_savepoint CDATA #IMPLIED
workspace_date CDATA #IMPLIED
workspace_date_format CDATA #IMPLIED
fetch_size CDATA #IMPLIED
timeout CDATA #IMPLIED
>
<theme>要素を使用すると、事前定義済テーマまたは動的に定義されるテーマを指定できます。
- 事前定義済テーマの場合、定義はすでにUSER_SDO_THEMESビューに格納されているので、テーマ名のみが必要です。
- 動的に定義されるテーマの場合は、次のいずれか1つの要素で情報を指定する必要があります:
<jdbc_query>(3.1.2.9項を参照)、<jdbc_image_query>(「jdbc_image_query要素」を参照)、<jdbc_georaster_query>(「GeoRasterテーマ」を参照)、<jdbc_network_query>(「ネットワーク・テーマ」を参照)または<jdbc_topology_query>(「トポロジ・テーマ」を参照)。 - GeoRasterテーマの場合は、一部のイメージ処理オプション(「operation要素」を参照)を定義できます。
name属性は、テーマ名を識別します。事前定義済テーマの場合、この名前がUSER_SDO_THEMESビューのNAME列の値と一致する必要があります。動的に定義されるテーマの場合、この名前は、jdbc_queryベースのテーマを参照するための単なる一時名です。
datasourceは、テーマのデータソースを指定するオプション属性です。この属性を指定しない場合、マップ・リクエストのデータソースが想定されます(「map_requestの属性」のdatasource属性の説明を参照)。異なるテーマに異なるデータソースを指定することにより、1つのマップ・リクエストで複数のデータソースを使用できます。
template_themeは、事前定義済テーマが複数のデータソース内で同じ名前を持つときに複数のテーマのレンダリングに使用できるオプション属性です。テーマ名は、同一のマップ・リクエスト内で繰り返すことができません。ただし、同一の事前定義済テーマ名を持つデータソースが2つ存在する場合は、この属性を使用すると、両方のテーマをレンダリングできます。
次の例で指定している2つのテーマのベースになっているテーマUS_STATESは、2つのデータソースに存在していますが、各データソース内のコンテンツは異なっています。
<themes>
<theme name="US_STATES"
datasource="dsrc" />
<theme name="OTHER_US_STATES"
template_theme="US_STATES"
datasource="other_dsrc" />
</themes>
max_scale属性およびmin_scale属性は、このテーマの可視性に影響を与えます。max_scaleおよびmin_scaleが省略された場合、マップ・スケールに関係なくテーマは常にレンダリングされます。(max_scaleおよびmin_scaleについては、「マップのサイズおよびスケール」を参照してください。)
label_max_scaleおよびlabel_min_scale属性は、このテーマの地物ラベルの可視性に影響を与えます。label_max_scaleとlabel_min_scaleを省略すると、テーマの地物ラベルは常に、マップ・スケールがテーマのスケールの表示可能な範囲内(max_scaleとmin_scaleの間)にある場合にレンダリングされます。(label_max_scaleおよびlabel_min_scaleについては、「マップのサイズおよびスケール」を参照してください。)
label_always_onはオプション属性です。これをTRUEに設定した場合、表示の中で2つ以上のラベルが重なる場合にも、MapViewerによってテーマのすべての地物がラベル付けされます。(MapViewerは常にラベルが重ならないようにします。) label_always_onがFALSE (デフォルト)の場合、ラベルの重なりが避けられないときは、MapViewerによって1つ以上のラベルの表示が無効化されるため、重なることはありません。label_always_on属性は、マップ地物(geoFeature要素、「geoFeature要素」を参照)に対しても指定できるため、テーマについてlabel_always_onがFALSEであり、ラベルの重なりが避けられない場合には、ラベルを表示する地物を制御できます。
fast_unpickleはオプション属性です。この属性がTRUE (デフォルト)の場合、MapViewerでは汎用のJDBC変換アルゴリズムではなく、独自の高速な非Pickle化(アンストリーム)アルゴリズムを使用して、データベースからフェッチされたSDO_GEOMETRYオブジェクトをMapViewerがアクセス可能なJavaオブジェクトに変換します。このプロセスによりパフォーマンスは向上しますが、場合によっては座標の精度が失われ(約0.00000005)、各座標ですべて正確な数値を保持する必要のあるアプリケーションに重大な影響を与える可能性があります。fast_unpickleがFALSEに設定されている場合、MapViewerでは汎用のJDBC変換アルゴリズムが使用されます。このプロセスはMapViewerの高速な非Pickle化処理よりは時間がかかりますが、精度が失われることはありません。
modeはオプション属性です。トポロジ・テーマの場合、mode="debug"を指定すると、エッジ、ノードおよびフェースを表示できます(「トポロジ・テーマ」を参照)。その他のタイプのテーマでは、mode属性は無視されます。
min_distはオプション属性です。これは、別々の形状ポイントをレンダリングするための線文字列またはポリゴン上の、2つの隣接した形状ポイント間の画面上の最小距離(ピクセル数)を指定します。2つの隣接形状ポイント間の画面上の距離が、min_dist値より小さい場合は、一方の形状ポイントのみがレンダリングされます。デフォルト値は0.5です。属性値に大きな値を指定してSVGマップ上でレンダリングされる形状ポイント数を減らし、結果的にSVGファイルのサイズを小さくできます。異なるテーマ定義で異なる値を指定でき、それによりSVGマップの詳細レベルをカスタマイズできます。
fixed_svglabelはオプション属性です。SVGマップ上で各ラベルの外見上のサイズがすべてのズーム・レベルで同一になるように、元の固定ラベルを使用し、ズーム・レベルの増加(ズームイン)または減少(ズームアウト)に合せてラベルを拡大または縮小表示するか、または同一のテキストで実際のサイズが異なるラベルを使用するかを指定します。fixed_svglabel値がTRUEに指定されている場合、すべてのズーム・レベルで同じテーマ・ラベルがマップに表示され、マップのズームイン、ズームアウトに合わせてラベルがズームイン、ズームアウトされます。値がFALSE (デフォルト)の場合、異なるズーム・レベルで異なるテーマ・ラベルが表示されるため、ズームインおよびズームアウト操作中に表示ラベルのサイズが変化しないように見えます。
visible_in_svgは、SVGマップにテーマを表示するかどうかを指定するオプション属性です。値がTRUE (デフォルト)の場合はテーマが表示され、FALSEに設定されている場合は表示されません。ただし、この属性をFALSEに設定しても、テーマはSVGマップにレンダリングされます。最初はテーマが表示されませんが、SVGマップで定義されているJavaScript関数showTheme()をコールすることで、後から表示できます。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
selectable_in_svgは、SVGマップ上でテーマを選択できるかどうかを指定するオプション属性です。デフォルトはFALSEです。つまり、SVGマップ上でテーマを選択できません。この属性がTRUEに設定されていて、テーマ地物の選択が可能な場合、SVGマップ上で表示されるテーマの各地物は、クリックすることで選択できます。地物を選択すると、その色が変わり、ID(デフォルトではROWID)が記録されます。SVGマップで定義されたJavaScript関数getSelectedIdList()をコールすると、選択したすべての地物のID値のリストを取得できます。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
part_of_basemapはオプション属性です。マップ形式がSVGで、この属性の値がTRUEの場合、MapViewerではテーマをベース・マップの一部として、その上にレンダリングします。ベース・マップはラスター画像としてレンダリングされます。
simplify_shapesは、レンダリングされる前に形状を簡略化するかどうかを指定するオプション属性です。簡略化は、元のジオメトリより低い解像度でマップを表示する場合に便利です。たとえば、川や政治的境界における数百または数千という曲がり角をディスプレイの解像度で表示できない場合は、形状を簡略化して主要な曲がり角のみを表示すれば、パフォーマンスが改善される場合もあります。デフォルト値はTRUEです。その場合、形状はレンダリングされる前に簡略化されます。この属性をFALSEに設定すると、MapViewerは元のジオメトリのすべての頂点および線セグメントをレンダリングしようとするので、パフォーマンスが低下する場合もあります。
transparencyは、レンダリング時にテーマに適用される基本のアルファ構成値を定義するオプション・パラメータです。この値は0から1の範囲で指定でき、0は完全な透明、1(デフォルト値)は完全な不透明を意味します。
minimum_pixelsは、空間フィルタ問合せで使用される解像度のレベルを定義するオプション・パラメータです。これは、画面の同じ位置にレンダリングされる要素が多くなりすぎるのを防ぐことができます。(Oracle Spatial and Graphに関するドキュメントで、SDO_FILTER演算子のmin_resolutionオプションおよびmax_resolutionオプションを参照のこと。) minimum_pixelsの単位は、画面ピクセルです。たとえば、minimum_pixels=1と指定すると、現在のデバイス・ウィンドウおよび現在の問合せウィンドウで1ピクセルが表す量未満の解像度を持つ地物は空間フィルタ問合せから返されません。
onclickは、ユーザーがSVGマップ上をクリックし、テーマ地物の選択が可能な場合(selectable_in_svg属性の説明を参照)にコールされるJavaScript関数の名前を指定するオプション属性です。JavaScript関数は、SVGマップが埋め込まれたHTML文書で定義する必要があります。この関数には、テーマ名、地物のキー、およびSVGマップ上でクリックされたポイントの座標(ピクセル単位)を指定するxおよびyの4つのパラメータしか指定できません。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
onmousemoveは、ユーザーがSVGマップ上のテーマの任意の地物の上にマウスを移動するとコールされるJavaScript関数の名前を指定するオプション属性です。JavaScript関数は、SVGマップが埋め込まれたHTML文書で定義する必要があります。この関数には、テーマ名、地物のキー、およびSVGマップ上での移動に対するポイントの座標(ピクセル単位)を指定するxおよびyの4つのパラメータしか指定できません。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
onmouseoverは、ユーザーがSVGマップ上のテーマの地物内にマウスを移動するとコールされるJavaScript関数の名前を指定するオプション属性です。(onmousemove関数はマウスがテーマの内部で移動すると常にコールされますが、onmouseover関数はテーマの地物の外側からテーマの地物の内側にマウスが移動したときに1回のみコールされます。) JavaScript関数は、SVGマップが埋め込まれたHTML文書で定義する必要があります。この関数には、テーマ名、地物のキー、およびSVGマップの地物の内部にマウスが移動したポイントの座標(ピクセル単位)を指定するxおよびyの4つのパラメータしか指定できません。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
onmouseoutは、ユーザーがSVGマップ上のテーマの地物から外にマウスを移動するとコールされるJavaScript関数の名前を指定するオプション属性です。JavaScript関数は、SVGマップが埋め込まれたHTML文書で定義する必要があります。この関数には、テーマ名、地物のキー、およびSVGマップの地物から外にマウスが移動したポイントの座標(ピクセル単位)を指定するxおよびyの4つのパラメータしか指定できません。SVGマップでのJavaScript関数の使用の詳細は、付録Bを参照してください。
workspace_name、workspace_savepoint、workspace_dateおよびworkspace_date_formatは、MapViewerにおけるWorkspace Managerのサポート(「マップ・ビジュアライゼーション・コンポーネントでのWorkspace Managerのサポート」を参照)に関連するオプション属性です。
fetch_sizeは、メモリー内にプリフェッチする行数を指定するオプション属性です。デフォルト値は100です。
timeoutは、WMSまたはWFSサーバーへの接続を待機するミリ秒数を指定するオプション属性です。
親トピック: マップ・リクエストDTD