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属性はオプションです。

スタイリング・ルールおよび例の詳細は、「事前定義済空間ジオメトリ・テーマのスタイリング・ルール」を参照してください。