A.7 テーマ: スタイリング・ルール
テーマ定義には、1つの<styling_rules>
要素が含まれます。この要素はテーマのタイプに応じて、いくつかの他の要素で構成される場合があります。
この<styling_rules>
要素は、USER_SDO_THEMESメタデータ・ビューのSTYLING_RULES列で、次のDTDを使用して指定します。
<!ELEMENT styling_rules (rule+, hidden_info?, join_table?, join_columns?, operations?, bitmap_masks?, parameters?)> <!ATTLIST styling_rules theme_type CDATA #IMPLIED key_column CDATA #IMPLIED caching CDATA #IMPLIED "NORMAL" image_format CDATA #IMPLIED image_column CDATA #IMPLIED image_resolution CDATA #IMPLIED image_unit CDATA #IMPLIED raster_id CDATA #IMPLIED raster_table CDATA #IMPLIED raster_pyramid CDATA #IMPLIED raster_bands CDATA #IMPLIED polygon_mask CDATA #IMPLIED transparent_nodata CDATA #IMPLIED network_name CDATA #IMPLIED network_level CDATA #IMPLIED topology_name CDATA #IMPLIED service_url CDATA #IMPLIED srs CDATA #IMPLIED feature_ids CDATA #IMPLIED provider_id CDATA #IMPLIED srid CDATA #IMPLIED> <!ELEMENT rule (features, label?, rendering?)> <!ATTLIST rule column CDATA #IMPLIED> <!ELEMENT features (#PCDATA?, link?, node?, path?)> <!ATTLIST features style CDATA #REQUIRED> <!ELEMENT label (#PCDATA?, link?, node?, path?)> <!ATTLIST label column CDATA #REQUIRED style CDATA #REQUIRED> <!ELEMENT link (#PCDATA)> <!ATTLIST link style CDATA #REQUIRED direction_style CDATA #IMPLIED direction_position CDATA #IMPLIED direction_markersize CDATA #IMPLIED column CDATA #REQUIRED> <!ELEMENT node (#PCDATA)> <!ATTLIST node style CDATA #REQUIRED markersize CDATA #IMPLIED column CDATA #REQUIRED> <!ELEMENT path (#PCDATA)> <!ATTLIST path ids CDATA #REQUIRED styles CDATA #REQUIRED style CDATA #REQUIRED column CDATA #REQUIRED> <!ELEMENT hidden_info (field+)> <!ELEMENT field (#PCDATA)> <!ATTLIST field column CDATA #REQUIRED name CDATA #IMPLIED> <!ELEMENT join_table EMPTY> <!ATTLIST join_table name CDATA #REQUIRED start_measure CDATA #IMPLIED end_measure CDATA #IMPLIED measure CDATA #IMPLIED> <!ELEMENT join_columns EMPTY> <!ATTLIST columns lrs_table_column CDATA #REQUIRED join_table_column CDATA #REQUIRED> <!ELEMENT rendering (style+)> <!ELEMENT style (substyle?)> <!ATTLIST style name CDATA #REQUIRED value_columns CDATA #IMPLIED> <!ELEMENT substyle (#PCDATA)> <!ATTLIST substyle name CDATA #REQUIRED value_columns CDATA #REQUIRED changes CDATA #IMPLIED> <!ELEMENT operations (operation?)> <!ELEMENT operation (parameter?)> <!ATTLIST operation name CDATA #REQUIRED> <!ELEMENT parameters (parameter?)> <!ELEMENT parameter (#PCDATA)> <!ATTLIST parameter name CDATA #REQUIRED value DATA #REQUIRED> <!ELEMENT bitmap_masks (mask+)> <!ELEMENT mask (#PCDATA)> <!ATTLIST mask raster_id CDATA #REQUIRED raster_table CDATA #REQUIRED layers CDATA #REQUIRED zeromapping CDATA #IMPLIED onemapping CDATA #IMPLIED>
<styling_rules>
要素に含まれる場合があるtheme_type
属性は主に、特定のタイプの事前定義済テーマに使用されます。(theme_type
属性のデフォルト値はgeometry
であり、テーマが空間ジオメトリに基づいていることを示します。)これらの特殊なタイプの事前定義済テーマのtheme_type
属性値は、次のとおりです。
-
annotation
は、注釈テキスト・テーマを指定します。注釈テキスト・テーマの詳細は、「注釈テキスト・テーマ」を参照してください。 -
geom_custom
は、カスタム・ジオメトリ・テーマを指定します。provider_id
属性およびsrid
属性を指定する必要があります。カスタム・ジオメトリ・テーマの詳細は、「カスタム・ジオメトリ・テーマ」を参照してください。 -
georaster
は、GeoRasterテーマを指定します。指定したGeoRasterデータを使用するには(ただし、問合せ条件を使用してGeoRasterデータを取得する場合を除く)、raster_id
属性およびraster_table
属性も指定する必要があります。raster_pyramid
属性、raster_bands
属性およびpolygon_mask
属性、transparent_nodata
属性を指定することもできます。GeoRasterテーマの詳細は、「GeoRasterテーマ」を参照してください。 -
image
は、イメージ・テーマを指定します。ともに指定する必要がある属性はimage_format
属性とimage_column
属性であり、指定できる属性はimage_resolution
属性とimage_unit
属性です。イメージ・テーマの詳細は、「イメージ・テーマ」を参照してください。 -
network
は、ネットワーク・テーマを指定します。network_name
属性も指定する必要があります。network_level
属性も指定できますが、現在はデフォルト値(1)しかサポートされていません。ネットワーク・テーマの詳細は、「ネットワーク・テーマ」を参照してください。 -
topology
は、トポロジ・テーマを指定します。topology_name
属性も指定する必要があります。トポロジ・テーマの詳細は、「トポロジ・テーマ」を参照してください。 -
wfs
は、WFSテーマを指定します。service_url
属性およびsrs
属性も指定する必要があります。WFSテーマの詳細は、「WFSテーマ」を参照してください。
<styling_rules>
要素では、key_column
属性を指定できます。この属性が必要になるのは、結合ビュー(複数の表から作成されたビュー)でテーマが定義される場合のみです。このような場合は、キー列となる列をこのビューで指定し、そのビューでジオメトリまたは画像を一意に識別する必要があります。このキー列情報がない場合、マップ・ビジュアライゼーション・コンポーネントは結合ビューのジオメトリまたは画像をキャッシュできません。
<styling_rules>
要素では、caching
属性を指定できます。この属性は、各事前定義済テーマのキャッシュ・スキームを指定します。caching
属性には、NORMAL
(デフォルト)、NONE
またはALL
のいずれかの値を使用できます。
-
NORMAL
を指定すると、ジオメトリの再利用が必要な場合に負荷のかかる非Pickle化処理を繰り返さずにすむように、マップ・ビジュアライゼーション・コンポーネントは表示したばかりのジオメトリ・データのキャッシュを試行します。ジオメトリは常にデータベースからフェッチされますが、非Pickle化バージョンがキャッシュにすでに存在する場合、フェッチしたジオメトリは使用されません。 -
NONE
を指定すると、該当するテーマのジオメトリはキャッシュされません。テーマのデータを頻繁に編集し、編集したとおりにデータを表示する必要がある場合は、この値を使用すると便利です。 -
ALL
を指定すると、リクエストを表示する前に、マップ・ビジュアライゼーション・コンポーネントにより、キャッシュ内のこのテーマ全体のすべてのジオメトリ・データが確保されます。デフォルト値のNORMAL
とは対照的に、値ALL
では、初めてテーマが表示されるときに実表のすべてのジオメトリがキャッシュされ、以降データベースからジオメトリはフェッチされません。
事前定義済テーマのキャッシュの詳細は、「事前定義済テーマのキャッシュ」を参照してください。
各<rule>
要素は、<features>
要素を含める必要があり、<label>
要素と<rendering>
要素を含めることもできます。<rendering>
要素は、複数のレンダリング・スタイルの定義に使用できます。この要素を使用した場合、<features>
要素のレンダリング・スタイルは定義されないことがあります。<features>
要素のレンダリング・スタイルを定義し、<rendering>
要素も定義した場合、マップ・ビジュアライゼーション・コンポーネントは最初に<features>
要素のスタイルをレンダリングし、次に<rendering>
要素のスタイルをレンダリングします。(<rendering>
要素の詳細は、この項で後述します。)
<rule>
要素のオプションのcolumn
属性は、マップ・ビジュアライゼーション・コンポーネントで生成される問合せのSELECT構文リストに挿入される、実表の1つ以上の属性列をカンマ区切りリストで指定します。こうした列の値は、通常は該当するテーマの拡張スタイルによって処理されます。次の例は、column属性の使用方法を示しています。
<?xml version="1.0" standalone="yes"?> <styling_rules > <rule column="TOTPOP"> <features style="V.COUNTY_POP_DENSITY"> </features> </rule> </styling_rules>
この例では、テーマのジオメトリ地物が拡張スタイルV.COUNTY_POP_DENSITY
を使用してレンダリングされます。このスタイルでは、該当するテーマの実表のTOTPOP列内の数値を検索することで、郡ジオメトリを塗りつぶすための色が決定されます。
ネットワーク・テーマの各<features>
要素には、<link>
要素、<node>
要素または<path>
要素、あるいはそれらの組合せを含める必要があります。(<link>
要素、<node>
要素および<path>
要素はネットワーク・テーマにのみ適用します。ネットワーク・テーマの詳細は、「ネットワーク・テーマ」を参照してください。)次の例は、リンクおよびノードをレンダリングするネットワーク・テーマのスタイリング・ルールを示しています。
<?xml version="1.0" standalone="yes"?> <styling_rules theme_type="network" network_name="LRS_TEST" network_level="1"> <rule> <features> <link style="C.RED" direction_style="M.IMAGE105_BW" direction_position="0.85" direction_markersize="8"></link> <node style="M.CIRCLE" markersize="5"></node> </features> </rule> </styling_rules>
<label>
要素には、地物にラベルを適用するかどうかを決定するための要素値として、SQL式を含める必要があります。column
属性には、地物にラベル付けするためのテキスト値に対応したSQL式を指定し、style
属性には、ラベルをレンダリングするためのテキスト・スタイルを指定します。
<rendering>
要素は、複数のレンダリング・スタイルの定義に使用できます。スタイルは、表示されている順序でレンダリングされます。<rendering>
要素の各スタイルは、<style>
要素で定義されます。この要素はname
属性を指定する必要があり、value_columns
属性も指定できます。(value_columns
属性は拡張スタイルで使用され、列名は<rule>
要素のcolumn
属性で定義された属性リストに追加されます。)
<rendering>
要素では、各<style>
要素で、地物の塗りの属性を定義する<substyle>
要素を指定できます。<substyle>
要素はname
属性を指定する必要があり、value_columns
属性とchanges
属性も指定できます。changes
属性では、FILL_COLOR
値のみサポートされます。
次の例は、<rendering>
要素を使用するジオメトリ・テーマのスタイリング・ルールを示しています。地物の形状をレンダリングする拡張スタイルV.POIVMK
と、地物の形状を塗る拡張サブスタイルV.POIBKT
を定義します。
<?xml version="1.0" standalone="yes"?> <styling_rules> <rule> <features> </features> <label column="NAME" style="T.STREET2"> 1 </label> <rendering> <style name="V.POIVMK" value_columns="FEATURE_CODE"> <substyle name="V.POIVBKT" value_columns="POINT_ID" changes="FILL_COLOR"/> </style> </rendering> </rule> </styling_rules>
1つのスタイリング・ルールで複数のレンダリング・スタイルを適用する<rendering>要素の詳細は、「1つのスタイリング・ルールへの複数のレンダリング・スタイルの適用」を参照してください。
<hidden_info>
要素は、テーマの地物の上にマウスを動かしたときに表示される実表の属性リストを指定します。属性は、<field>
要素のリストで指定します。
各<field>
要素には、column
属性を含める必要があります。この属性は実表の列名を指定します。また、列の表示名を指定するname
属性を使用できます。(name
属性は、列名以外のテキスト文字列を表示する場合に便利です。)
<join_table>
要素は、測定のための表名およびその列を1つまたは2つ指定します。ポイント・タイプの地物には1つのメジャー列、線形タイプの地物には2つのメジャー列を含めることができます。メジャー列は、LRSジオメトリ列を持つLRS表との結合時に線形参照プロセスで使用されます。
<join_columns>
要素は、LRSジオメトリ列を持つLRS表の1つの列、および1つまたは2つのメジャー列を持つ結合表から1つの列を指定します。これらの2つの列を使用して、LRS表と結合表を結合します。
<operations>
要素は、GeoRasterテーマで適用されるイメージ処理オペレーションのリストを指定します。この操作は、<operation>
要素のリストで指定します。
<operation>
要素は、GeoRasterテーマで適用されるイメージ処理演算子とパラメータを指定します。各<operation>
要素には、<parameters>
要素のリストが含まれる場合があります。
<parameters>
要素では、固有のタスクで使用されるパラメータのリストを定義します。パラメータは、<parameter>
要素のリストで指定します。
<parameter>
要素では、name
属性とvalue
属性を定義する必要があります。
<bitmap_masks>
要素では、GeoRasterテーマで使用されるイメージ・マスクの属性を定義します。ビットマップ・マスクは、<mask>
要素のリストで指定します。
<mask>
要素は、GeoRasterオブジェクトで適用されるビットマップ・マスクを指定します。raster_id
属性とraster_table
属性とlayers
属性は定義する必要がありますが、zeromapping
属性とonemapping
属性はオプションです。
スタイリング・ルールおよび例の詳細は、「事前定義済空間ジオメトリ・テーマのスタイリング・ルール」を参照してください。