この付録では、MapViewerメタデータ・ビュー(2.9項を参照)を使用してスタイル、テーマおよびベース・マップを定義するためのXML形式について説明します。
MapViewerスタイルに関するメタデータ・ビュー(USER_SDO_STYLESおよび関連ビュー)には、DEFINITION列が含まれます。各スタイルについて、DEFINITION列にレンダリング・エンジンに対してスタイルを定義するXML文書が格納されます。
各スタイルは、SVG (Scalable Vector Graphics)に類似した構文を使用して定義されます。MapViewer構文では、各スタイルのXML文書に単一の<g>
要素が含まれる必要があり、この要素には、スタイルのタイプまたはクラスを示すclass
属性が含まれる必要があります。たとえば、次の例では、塗りの色のコンポーネントによって色スタイルを定義しています。
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<desc> red </desc>
<g class="color" style="fill:#ff1100"/>
</svg>
MapViewer XMLパーサーでは、スタイル定義内の<g>
要素のみが検索されます。<desc>
要素などの他の属性は単なる情報であり、無視されます。
スケーラブルなスタイル: デフォルト以外のピクセル値(px )を指定することにより、スタイルのサイズを自由に変えることができます。たとえば、width:15.0km またはstroke-width:10.0m と指定します。スケーラブルなスタイルの使用の詳細は、2.2.1項を参照してください。 |
MapViewerテーマに関するメタデータ・ビュー(USER_SDO_THEMESおよび関連ビュー)には、STYLING_RULES列が含まれます。これらのビューのテーマごとに、テーマのスタイリング・ルールを定義したXML文書(CLOB値)がSTYLING_RULES列に格納されます。
MapViewerベース・マップに関するメタデータ・ビュー(USER_SDO_MAPSおよび関連ビュー)には、DEFINITION列が含まれます。これらのビューでは各ベース・マップについて、DEFINITION列にそのベース・マップを定義したXML文書(CLOB値)が格納されます。
次の各項では、各タイプのマッピング・メタデータのXML構文について説明します。
色スタイルには、塗りの色、ストロークの色またはその両方が含まれます。形状またはジオメトリに適用された場合、塗りの色(存在する場合)は形状の内側の塗りに使用され、ストロークの色(存在する場合)は形状の境界の描画に使用されます。どちらの色でも、その色の透明度を制御するアルファ値を使用できます。
色スタイルでは、<g>
要素のclass
属性を"color"
に設定する必要があります。<g>
要素には、色コンポーネントおよびそのオプションのアルファ値を指定したstyle
属性を含める必要があります。例:
<g class="color" style="fill:#ff0000">
: 塗りの色(RGB値は#ff0000)のみの色スタイルが指定されます。
<g class="color" style="fill:#ff0000;stroke:blue">
: 塗りの色およびストロークの色(青)の色スタイルが指定されます。
色の値は、16進文字列(#00ff00など)、またはblack、blue、cyan、darkGray、gray、green、lightGray、magenta、orange、pink、red、white、yellowの色名のいずれかを使用して指定できます。
色スタイルの透明度を指定するには、fill-opacity
およびstroke-opacity
の値を0(ゼロ、完全な透明)から255(不透明)の範囲内で指定できます。次の例では、半透明の塗りコンポーネントを指定しています。
<g class="color" style="fill:#ff00ff;fill-opacity:128">
次の例では、ストロークおよび塗りの不透明度を指定しています。
<g class="color" style= "stroke:red;stroke-opacity:70; fill:#ff00aa;fill-opacity:129">
style
属性の構文は、1つ以上のname:value
のペアをセミコロンで区切った文字列です。(この基本構文は、他のタイプのスタイルでも使用されます。)
ストローク色については、ストロークの幅を定義できます。形状の境界を描画するときのデフォルトのストローク幅は、1ピクセルです。デフォルトを変更するには、stroke-width:
value
ペアをstyle
属性文字列に追加します。次の例では、ストローク幅を3ピクセルに指定しています。
<g class="color" style="stroke:red;stroke-width:3">
マーカー・スタイルは、ポイント地物、または領域地物および線形地物のラベル・ポイントに配置されるマーカーを表します。マーカーは、ベクター・マーカーまたはラスター画像マーカーのいずれかになります。また、マーカーにはオプションの注釈テキストを含めることができます。ベクター・マーカーの場合、ベクター要素の座標はXML文書で定義される必要があります。ラスター画像に基づくマーカーの場合、スタイルに関するXML文書は、スタイルが外部画像に基づいていることを示します。
マーカーのXML文書では、優先表示サイズが指定されます。優先される幅および高さは、<g>
要素のstyle
属性において、width:
value
;height:
value
のペアによって定義されます。class
属性は"marker"
に設定する必要があります。マーカーによっては、注釈テキストを重ねる必要があります。たとえば、米国州間高速道路の盾マーカーをレンダリングする場合、その上にルート番号も表示する必要があります。こうした注釈テキストのスタイルは、font-family:
value
、font-style:
value
、font-size:
value
およびfont-weight:
value
の名前と値のペアのうち1つ以上を含むスタイル属性です。
次の例では、マーカーの上に描画できるラベル・テキストのフォント属性(太字で表示)を指定する画像ベースのマーカーを定義しています。
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<desc></desc>
<g class="marker"
style="width:20;height:18;font-family:sans-serif;font-size:9pt;fill:#ffffff">
<image x="0" y="0" width="9999" height="9999" type="gif"
href="dummy.gif"/>
</g>
</svg>
この例では、ラベル・テキスト付きのポイント地物にマーカーが適用されると、指定したフォント・ファミリおよびサイズを使用し、テキストのフォアグラウンドが指定した塗りの色(この場合は白)であるラベル・テキストが、マーカーの上に中央を中心として描画されます。この例で指定したテキスト属性を持つラベル・テキスト(495
)をA.2.4項の図A-1に示します。
ベクター・マーカーには、単一ポリゴン、最適化された矩形(2つのポイントを使用して定義)、単一ポリラインまたは円を使用できますが、これらの組合せは使用できません。各タイプのベクター・マーカーにおいて、<g>
要素には、ジオメトリ情報(ポリゴン、最適化された矩形またはポリラインの座標、あるいは円の半径)を指定した対応するサブ要素が含まれている必要があります。
ポリゴン定義では、カンマ区切りの座標リストを指定したpoints
属性を含む<polygon>
要素が使用されます。例:
<g class="marker"> <polygon points="100,20,40,50,60,80,100,20"/> </g>
最適化された矩形の定義では、カンマ区切りの座標リストを指定したpoints
属性を含む<rect>
要素が使用されます。例:
<g class="marker"> <rect points="0,0, 120,120"/> </g>
ポリライン定義では、カンマ区切りの座標リストを指定したpoints
属性を含む<polyline>
要素が使用されます。例:
<g class="marker"> <polyline points="100,20,40,50,60,80"/> </g>
円の定義では、円の半径を指定したr
属性を含む<circle>
要素が使用されます。例:
<g class="marker"> <circle r="50"/> </g>
ベクターベースのマーカーには、ストローク、塗りの色またはその両方を指定できます。構文は、色スタイルのスタイル属性と同じです。次の例では、枠線が黒であり、半透明の黄色で塗りつぶされた三角マーカーを定義しています。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="marker" style="stroke:#000000;fill:#ffff00;fill-opacity:128"> <polygon points="201.0,200.0, 0.0,200.0, 101.0,0.0"/> </g> </svg>
マーカーがスケーラブルな場合は、max_size_in_px
属性を使用して、マーカーの最大サイズをピクセル単位でマップに設定できます。この属性を適切な値に設定すると、ユーザーがズームインしてマップの詳細を表示するときに、マーカーが他のマップ機能を遮るほど大きくなるのを防ぐことができます。次の例では、マーカーの最大サイズを64ピクセルに設定します。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="marker" max_size_in_px="64" style="stroke:#0000BB;fill:#0033FF;width:3.0mile;height:3.0mile;font-family:Dialog;font-size:12;font-fill:#FF0000"> <polygon points="0.0,0.0,0.0,100.0,100.0,100.0,100.0,0.0,0.0,0.0"/> </g> </svg>
画像マーカーのXML文書には、マーカーを画像に基づくものとして識別する<image>
要素が含まれます。画像はGIF形式である必要があり、スタイル・メタデータ・ビューのIMAGE列に格納されます。
次の例は、画像マーカーに関するXML文書です。
<?xml version="1.0" standalone="yes"?> <svg> <g class="marker" style="width:20;height:18;font-family:sansserif;font-size:9pt"> <image x="0" y="0" width="9999" height="9999" type="gif" href="dummy.gif"/> </g> </svg>
この例では、<image>
要素を空にしたまま(つまり、<image/>
として)有効な定義を作成し、画像を後で指定することもできます。
TrueTypeフォントベースのマーカーの場合、そのマーカー記号はTrueTypeフォント・ファイルに格納されます。このファイルのファイル拡張子は.ttfで、通常、個々の記号や絵文字が多数含まれています。多くのGISソフトウェア・パッケージには、マッピングに便利な記号が含まれるTrueTypeフォント・ファイルが付属しています。
TrueTypeフォント・ファイル内の記号をMapViewerで使用できるようにするには、次の処理を実行する必要があります。
TrueTypeフォント・ファイルをデータベースにインポートします。その際には、Map Builderツール(第7章を参照)を使用するのが望ましい方法です。このツールを使用してインポートすることで、該当するフォント・ファイル内の記号が、システム・ビューUSER_SDO_STYLESの中の単一の行に挿入されます。この新しい行内で、TYPE列には文字列TTF、IMAGE列にはTrueTypeフォント・ファイルの内容が格納されます。インポート操作が終わると、Map Builderツールを使用して、TrueTypeフォント・ファイルに含まれているすべての絵文字や記号を表示できるようになります。また、このフォント・ファイルは、この段階で物理的にデータベースに格納されているので、すべてのMapViewerユーザーで共有することもできます。
インポートしたTrueTypeフォントの中の絵文字または記号に基づいて、MapViewerマーカー・スタイルを作成します(Map Builderツールを使用するのが望ましい方法です)。
次の例は、TrueTypeフォントベースのマーカーの使用例です(TrueTypeに固有の部分は太字で示されています)。
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<g class="marker" style="fill:#ff0000;width:25;height:25">
<ttfSymbol fontName="ERS_INCIDENTS" charCode="118" />
</g>
</svg>
通常、マーカー・スタイルはポイント地物に適用します。その場合、マーカー・スタイルは地物を示すポイント位置にレンダリングされます。ただし、高速道路などの線(線文字列)地物では、ルート番号などの地物についての情報を示すために線に沿った地点にマーカーを配置する必要があります。たとえばアメリカ合衆国の地図では、図A-1のルート495のように、記号の中にルート番号が書かれた盾記号を高速道路の上に配置することがよくあります。
図A-1のような結果を得るには、次のようにする必要があります。
マーカー・スタイルを選択し、A.2項の例のように、テキスト・スタイル定義(フォント・ファミリ、フォント・サイズ、塗りの色など)を追加します。
テーマのスタイリング・ルールで、マーカー・スタイルをラベリング・スタイルとして指定します。高速道路を表示するテーマのスタイリング・ルールを指定したXML文書の例を次に示します。マーカー・スタイル(例では太字で表示)が指定されています。ラベル・テキスト(図A-1の495
)は、ラベル列の値です。この例では、ラベル列はLABELという名前です。
<?xml version="1.0" standalone="yes"?>
<styling_rules theme_type="political">
<rule>
<features style="L.PH"> (name_class = 'I' and TOLL=0) </features>
<label column="label" style="M.SHIELD1">1</label>
</rule>
<styling_rules>
MapViewerは、マーカー・スタイル(この例では盾)の配置について、線上の最適な位置を自動的に決定します。
線スタイルは、道路、鉄道路線または政治的境界などの線形地物にのみ適用可能です。つまり、線スタイルは、SDO_GTYPE値の末尾が2(線)または6(マルチライン)であるOracle Spatial and Graphジオメトリにのみ適用できます。(SDO_GEOMETRYオブジェクト・タイプおよびSDO_GTYPE値の詳細は、Oracle Spatial and Graph開発者ガイドを参照してください。)
MapViewerによって線形地物が描画される場合、線スタイルにより、使用する色、破線パターンおよびストローク幅がレンダリング・エンジンに対して指定されます。線スタイルには基本線要素を使用でき、これが定義されている場合、元の線形ジオメトリと一致します。また、基本線に平行な2本の輪郭を定義できます。平行線要素では、独自の色、破線パターンおよびストローク幅を指定できます。平行線を使用する場合、基本線の両側に、等しいオフセットで配置される必要があります。
鉄道のような線を描画するには、線スタイルで、hashmarkと呼ばれる3つ目のタイプの線要素を定義する必要があります。クラスhashmark
の<line>
要素では、dash配列内の1つ目の値が2つのハッシュ・マーク間の間隔を示し、2つ目の値が両側の線までのハッシュ・マークの長さを示します。次の例では、間隔が8.5画面単位、基本線の各側の長さが3画面単位であるハッシュ・マーク線を定義しています。
<line class="hashmark" style="fill:#003333" dash="8.5,3.0"/>
次の例では、完全な線スタイルを定義しています。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="line" style="fill:#ffff00;stroke-width:5"> <line class="parallel" style="fill:#ff0000;stroke-width:1.0"/> <line class="base" style="fill:black;stroke-width:1.0" dash="10.0,4.0"/> </g> </svg>
この例では、class="line"
により、スタイルが線スタイルとして識別されます。全体的な塗りの色(#ffff00)は、平行線と基本線間の領域の塗りつぶしに使用されます。このスタイルで使用できる最大幅(平行線の幅を含む)は、全体的な線の幅(5ピクセル)で制限されます。
この例の線スタイルには、基本線要素と平行線要素の両方が含まれます。平行線要素(class="parallel"
)は、色と幅を定義する1つ目の<line>
要素によって定義されています。(この定義では破線パターンが指定されていないため、平行線または輪郭が実線となります。)基本線要素(class="base"
)は、色、幅および破線パターンを定義する2つ目の<line>
要素によって定義されています。
線スタイルには、マーカー(方向マーカーなど)を定義できます。marker-name
パラメータはマーカー・スタイルの名前を指定し、marker-position
パラメータはマーカーを配置する開始点からの線に沿った距離の比率(0から1)を指定し、marker-size
パラメータはマーカー・サイズのディスプレイ単位を数値で指定します。マーカーの向きは、マーカーを配置する線セグメントの向きに従います。
次の例では、方向マーカーを持つ線スタイルを定義しています。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="line" style="fill:#33a9ff;stroke-width:4; marker-name:M.IMAGE105_BW;marker-position:0.15;marker-size=8"> <line class="parallel" style="fill:red;stroke-width:1.0"/> </g> </svg>
複数のマーカーを取得するには、スタイル定義にmultiple-marker
属性を追加します。この場合、marker-positionによって最初のマーカーの位置と各マーカー間の間隔が定義されます。次の例では、0.15の位置から開始して0.15ずつの間隔で繰り返し表示される方向マーカーを持つ線スタイルを定義しています。
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<g class="line" style="fill:#33a9ff;stroke-width:4;
marker-name:M.IMAGE105_BW; marker-position:0.15;
marker-size=8; multiple-marker=true">
<line class="parallel" style="fill:red;stroke-width:1.0"/>
</g>
</svg>
領域スタイルは、領域地物の塗りつぶしに使用されるパターンを定義します。現行リリースでは、領域スタイルは画像ベースである必要があります。つまり、領域スタイルをジオメトリに適用する場合、ジオメトリが完全に塗りつぶされるまで、スタイルを定義する画像が繰り返し表示されます。
領域スタイルの定義は、画像マーカー・スタイルの定義(A.2.2項を参照)に似ています。
次の例では、領域スタイルを定義しています。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="area" style="stroke:#000000"> <image/> </g> </svg>
この例では、class="area"
により、スタイルが領域スタイルとして識別されます。ストロークの色(style="stroke:#000000"
)は、ジオメトリの境界を描画する際に使用される色です。ストロークの色が定義されていない場合、ジオメトリの境界は表示されませんが、内側はパターン画像で塗りつぶされます。
領域スタイルには、境界として使用する線スタイルも指定できます。次の領域スタイル定義では、line-style
キーワード(例では太字で表示)を使用して、地物の境界に使用される線スタイルを指定しています。
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<g class="area" style="line-style:L.DPH">
<image x="0" y="0" width="9999" height="9999" type="gif" href="dummy.gif"/>
</g>
</svg>
画像マーカー・スタイルと同様に、領域スタイルの画像は、独立した列に格納される必要があります(2.9.1項で説明するUSER_SDO_STYLESおよびALL_SDO_STYLESメタデータ・ビューのIMAGE列で識別されます)。
テキスト・スタイルは、空間地物のラベル付けに使用されるフォントおよび色を定義します。class
属性には、"text"
という値が含まれる必要があります。フォントには、スタイル(標準、イタリックなど)、フォント・ファミリ、サイズおよび太さを指定できます。フォアグラウンド・カラーを指定するには、fill
属性を使用します。
次の例では、テキスト・スタイルを定義しています。
<?xml version="1.0" standalone="yes"?> <svg width="1in" height="1in"> <g class="text" style="font-style:plain; font-family:Dialog; font-size:14pt; font-weight:bold; fill:#0000ff"> Hello World! </g> </svg>
この例では、Map Builderツールなどのスタイル作成ツールでスタイルをプレビューする場合のみ、「Hello World!」というテキストが表示されます。このスタイルをマップに適用した場合、MapViewerがテーマから取得する実際のテキスト・ラベルが常に提供されます。
テキスト・スタイルでは、地物の数が多いマップでラベルが読みやすくなるように、レンダリングされたテキストの周りに、白く浮き出たバックグラウンドを表示できます。図A-2では、文字の周りが白いバックグラウンドで囲まれたラベルVallejoが示されています。
図A-2のような結果を得るには、テキスト・スタイル定義の<g>
要素でfloat-width
属性を指定する必要があります。次の例ではfloat-width
属性(例では太字で表示)を使用して、各文字の境界に幅が3.5ピクセルの白いバックグラウンドを指定しています。(スタイルがラベルの表示に適用されると、Hello World!というテキストは無視されます。)
<?xml version="1.0" standalone="yes"?>
<svg width="1in" height="1in">
<desc></desc>
<g class="text" float-width="3.5"
style="font-style:plain; font-family:Dialog; font-size:12pt; font-weight:bold;
fill:#000000">
Hello World!
</g>
</svg>
拡張スタイルは、単純なスタイルから作成される構造化スタイルです。拡張スタイルは、主にテーマ・マッピングに使用されます。コア拡張スタイルはバケット・スタイル(BucketStyle
)であり、拡張スタイルはすべて一種のバケット・スタイルです。バケット・スタイルは、基本スタイルのセットとバケットのセット間の1対1マッピングです。各バケットには、表示される地物の1つ以上の属性値が含まれます。各地物のいずれかの属性によってその地物が分類される、つまり含まれるバケットが決定し、そのバケットに割り当てられたスタイルが地物に適用されます。
さらに、カラー・スキーム(A.6.2項を参照)および可変(目盛り付き)マーカー(A.6.3項を参照)という2種類の特殊なバケット・スタイルが提供されています。
その他の拡張スタイルとしては、ドット密度(A.6.4項を参照)、棒グラフ(A.6.5項を参照)、コレクション(A.6.6項を参照)および可変円グラフ(A.6.7項)があります。
バケット・スタイルは、バケットのセットを定義し、各バケットに1つの基本スタイルを割り当てます。バケットの内容は、次のいずれかになります。
離散値のコレクション(ハリケーンのリスク・コードが1または2のすべての郡のバケット、ハリケーンのリスク・コードが3のすべての郡のバケットなど)。
連続した範囲の値(平均世帯収入が$30,000未満のすべての郡のバケット、平均世帯収入が$30,000から$39,999のすべての郡のバケットなど)。この場合、一連のバケットの範囲は、個別に定義するか(それぞれ上限値および下限値により定義)、またはマスター範囲において均等に分割できます。
次の抜粋したコードは、バケット・スタイルの基本書式を示しています。
<?xml version="1.0" ?> <AdvancedStyle> <BucketStyle> <Buckets> . . . </Buckets> </BucketStyle> </AdvancedStyle>
他の(基本)スタイルとは対照的に、拡張スタイルには、<AdvancedStyle>
タグで識別されるルート要素が常に含まれます。
バケット・スタイルでは、<BucketStyle>
要素は、<AdvancedStyle>
要素の唯一の子です。各<BucketStyle>
要素には1つ以上の<Buckets>
子要素があり、子要素の内容はバケットのタイプによって異なります。
バケット・スタイルの各バケットに離散値のコレクションが含まれる場合、各バケットを表すには<CollectionBucket>
要素を使用します。各バケットには、1つ以上の値が含まれます。各バケットの値は<CollectionBucket>
要素の内容としてリストされ、複数の値がカンマで区切られます。次の例では、3つのバケットを定義しています。
<?xml version="1.0" ?> <AdvancedStyle> <BucketStyle> <Buckets> <CollectionBucket seq="0" label="commercial" style="10015">commercial</CollectionBucket> <CollectionBucket seq="1" label="residential" style="10031">residential, rural</CollectionBucket> <CollectionBucket seq="2" label="industrial" style="10045">industrial, mining, agriculture</CollectionBucket> </Buckets> </BucketStyle> </AdvancedStyle>
この例の内容は、次のとおりです。
各バケットの値は1つ以上の文字列ですが、値には数値も使用できます。
各バケットに関連付けられたスタイルの名前が指定されています。
各<CollectionBucket>
要素のラベル属性(commercial、residentialまたはindustrial)は、拡張スタイル用にコンパイルされたラベルでのみ使用されます。
各<CollectionBucket>
要素の順序は重要です。ただし、seq
(順序)属性の値は参照のみを目的としているため、MapViewerでは、定義内の要素の順序によってのみ順序が決定されます。
この例にはありませんが、他のすべての値(他に値が考えられる場合)に対してバケットが必要な場合は、属性値として#DEFAULT#
を含む<CollectionBucket>
要素を作成できます。これは、他のすべての<CollectionBucket>
要素の後に配置し、このバケットのスタイルが最後にレンダリングされるようにする必要があります。
離散値を含むコレクションベース・バケットにラベル・スタイルを適用するには、2.2.2項を参照してください。
バケット・スタイルの各バケットに、2つの値で定義された値範囲が含まれる場合、各バケットを表すには<RangedBucket>
要素を使用します。各バケットには、値の範囲が含まれます。次の例では、4つのバケットを定義しています。
<?xml version="1.0" ?> <AdvancedStyle> <BucketStyle> <Buckets> <RangedBucket high="10" style="10015"/> <RangedBucket low="10" high="40" style="10024"/> <RangedBucket low="40" high="50" style="10025"/> <RangedBucket low="50" style="10029"/> </Buckets> </BucketStyle> </AdvancedStyle>
個々の範囲ベースのバケットでは、下限値は含まれますが上限値は含まれません(ただし、他の範囲の値より大きい値が含まれる範囲では、上限値は含まれます)。いずれの範囲にも、他の範囲の値と重複する値の範囲を含めることはできません。
たとえば、この例の2つ目のバケット(low="10" high="40"
)には、10ちょうどの値から40未満の値(39や39.99など)までが含まれます。40ちょうどの値は3つ目のバケットに含まれます。
<CollectionBucket>
要素と同様に、各<RangedBucket>
要素に関連付けられたスタイルは、属性として指定されます。
個々の範囲ベース・バケットにラベル・スタイルを適用するには、2.2.2項を参照してください。
バケット・スタイルに、マスター範囲の均等に分割された範囲を含む一連のバケットが含まれる場合、<RangedBucket>
要素を省略して、かわりに<Buckets>
要素で範囲全体のマスター上限値と下限値、範囲を分割するバケット数、およびスタイル名(各バケットにつき1つ)のリストを指定できます。次の例では、0から29の均等範囲の5つのバケット(nbuckets=5
)を定義しています。
<?xml version="1.0" ?> <AdvancedStyle> <BucketStyle> <Buckets low="0" high="29" nbuckets="5" styles="10015,10017,10019,10021,10023"/> </BucketStyle> </AdvancedStyle>
この例の内容は、次のとおりです。
すべての値が整数の場合、5つのバケットには、0から5、6から11、12から17、18から23および24から29の各範囲の値が保持されます。
1つ目のバケットはスタイル10015
、2つ目のバケットはスタイル10017
、などのように関連付けられています。
指定されたスタイル名の数は、nbuckets
属性の値と同じである必要があります。バケットは昇順で配置され、スタイルは指定された順序どおりに各バケットに割り当てられます。
カラー・スキーム・スタイルでは、基本色に基づく各バケットに対し、輝度が異なる個々の色スタイルが自動的に生成されます。輝度は、完全に明るい状態から完全に暗い状態まで、等間隔で分けられます。通常は、1つ目のバケットに基本色の最も明るい階調が割り当てられ、最後のバケットに最も暗い階調が割り当てられます。
各バケットの色スタイルで使用されるストロークの色を含めることができます。ストロークの色は輝度計算には含まれません。したがって、たとえば、一連のポリゴン地物がカラー・スキーム・スタイルを使用してレンダリングされる場合、各ポリゴンの内側は、対応する各バケットの色(基本色の階調)で塗りつぶされますが、ポリゴンの境界はすべて同じストロークの色を使用して描画されます。
基本色(basecolor_opacity
属性を使用)およびストロークの色(strokecolor_opacity
属性を使用)に対して、不透明度値(0(透明)から255(不透明))を指定できます。
次の例では、ストロークの色を黒とし、基本色である青の様々な階調に4つのバケットが関連付けられたカラー・スキーム・スタイルを定義しています。
<?xml version="1.0" ?> <AdvancedStyle> <ColorSchemeStyle basecolor="blue" strokecolor="black"> <Buckets> <RangedBucket label="<10" high="10"/> <RangedBucket label="10 - 20" low="10" high="20"/> <RangedBucket label="20 - 30" low="20" high="30"/> <RangedBucket label=">=30" low="30"/> </Buckets> </ColorSchemeStyle> </AdvancedStyle>
注意: 次の特殊文字については、かわりにエスケープ・シーケンスを使用してください。
|
可変マーカー・スタイルでは、バケットごとにサイズが異なる一連のマーカー・スタイルが生成されます。バケットの数、マーカーの開始(最小)サイズおよび2つの連続するマーカー間のサイズ増分を指定します。
可変マーカー・スタイルは、概念的にカラー・スキーム・スタイルと類似しています。どちらのスタイルも、共通オブジェクトとの差異に基づいてバケットが作成されます。カラー・スキーム・スタイルでは、基本色の輝度が変化し、可変マーカー・スタイルでは、マーカーのサイズが変化します。
次の例では、4つのバケットを含む可変マーカー・スタイルを作成しています。各バケットは、マーカー(m.circle
)の様々なサイズ(増分4)に関連付けられています。1つ目のバケットのマーカーは半径が10ディスプレイ単位、2つ目のバケットのマーカーは半径が14ディスプレイ単位、というようになります。この例では、マーカーm.circle
がすでに定義されていると仮定しています。
<?xml version="1.0" ?> <AdvancedStyle> <VariableMarkerStyle basemarker="m.circle" startsize="10" increment="4"> <Buckets> <RangedBucket label="<10" high="10"/> <RangedBucket label="10 - 20" low="10" high="20"/> <RangedBucket label="20 - 30" low="20" high="30"/> <RangedBucket label=">=30" low="30"/> </Buckets> </VariableMarkerStyle> </AdvancedStyle>
ドット密度拡張マーカー・スタイルは、州や郡などの領域地物に適用されると、該当する領域内に一連のドットをランダムに描画します。各領域内に描画されるドットの数は、該当領域に関連付けられているカウント値によって決まります。ドット密度スタイルを定義する場合は、各ドットに使用されるマーカー・スタイルを指定する必要があります。
単純なドット密度スタイルのXML定義を、次の例で示します。
<?xml version="1.0" ?> <AdvancedStyle> <DotDensityStyle MarkerStyle="M.STAR" DotWidth="8" DotHeight="8"> </DotDensityStyle> </AdvancedStyle>
この例では、マーカー・スタイルM.STARが各ドットに使用され、各ドットのサイズは幅、高さともに8ピクセルです。
ドット密度スタイルを使用する場合は、カウント値を「調整」し、適切な範囲にする必要があります。たとえば、各郡の人口に基づいてドット密度スタイルを適用する場合、人口を直接使用して1人につき1ドットとすると、人口が15,000人の郡などでは描画されるドット数が許容できない数になるので望ましくありません。そのような場合はかわりに、テーマのスタイリング・ルールを定義する際に、スケールダウンした値または式(人口/1000
など)を使用します。(MapViewerでは内部的なスケールダウン処理は実行されません。そうした処理は、SQL問合せレベルで実行する必要があります。)
棒グラフ拡張マーカー・スタイルは、円グラフ・スタイルに類似しており、相違点は適用先の地物ごとに棒グラフが描画される点です。棒グラフ・スタイルのXML定義を、次の例で示します。
<?xml version="1.0" ?> <AdvancedStyle> <BarChartStyle width="30" height="25" show_x_axis="true"> <Bar name="1990" color="#FF0000" /> <Bar name="1995" color="#FFC800" /> <Bar name="1998" color="#0000FF" /> <Bar name="2000" color="#00FF00" /> <Bar name="2002" color="#00FFFF" /> </BarChartStyle> </AdvancedStyle>
この例では、widthおよびheightで棒グラフ全体(個々のすべての棒も含む)のサイズを指定しています。
地物に関連付けられている一連の値に基づき、その地物の上に棒グラフを描画する場合、各棒の高さはローカル・スケールまたはグローバル・スケールという2つのアプローチで決定できます。ローカル・スケールの棒グラフの場合、各棒の高さは該当する地物に関連付けられている一連の値によってのみ決定されます。そのため、1つのグラフの2番目の棒を同一テーマの別のグラフの2番目の棒と比較することなどはできません。一方、グローバル・スケールの棒グラフの場合は、マップ上の全グラフで同じ棒スケールが使用されます。そのため、1つのグラフの2番目の棒を同一テーマの別のグラフの2番目の棒と比較するといったことが行えます。
そこで、同じグラフ内のみでなく、マップに表示されているすべてのグラフにわたって棒を比較する場合は、次の例で示すように、棒グラフ・スタイルの定義でshare_scale="true"
を指定し、グローバル・スケールの棒グラフ・スタイルを使用する必要があります。
<?xml version="1.0" ?>
<AdvancedStyle>
<BarChartStyle width="40" height="30" share_scale="true"
min_value="0.0" max_value="100">
<Bar name="1990" color="#FF0000" />
<Bar name="1995" color="#FFC800" />
<Bar name="1998" color="#0000FF" />
<Bar name="2000" color="#00FF00" />
<Bar name="2002" color="#00FFFF" />
</BarChartStyle>
</AdvancedStyle>
先の例の棒グラフ・スタイルをテーマに適用すると、MapViewerは該当するテーマ内の全地物のグローバルな値域を考慮し、最小値から最大値のグローバルな範囲内での各値の位置に基づいて各棒の高さを決定します。
コレクション拡張スタイルは、1つの地物にまとめて適用される一連のタイプのスタイルの集合(コレクション)にすぎません。様々なスタイルに基づく複数のテーマを使用した場合に比べて、コレクション・テーマのレンダリングは高速に処理されます。
たとえば、棒グラフ・スタイルは、1つの郡に適用した場合、該当する郡内のどこかに該当する棒グラフのみを描画し、該当する郡自体(境界線と内側の領域)は描画しません。ただし、通常は、一連の郡の基盤となる境界線や、各棒グラフが属する郡も表示するはずです。コレクション・スタイルを使用せずにそのような処理を実行するには、2番目のテーマを定義し、その中で各郡に色スタイルや領域スタイルを関連付ける必要があります。そのようなアプローチをとると、本質的に同じグループの地物に対して、レンダリング・パスが2つできることになります(2つのテーマが含まれるため)。
ただし、この例でコレクション・スタイルを使用すると、棒グラフと色スタイルまたは領域スタイルの両方を参照するスタイルを1つ定義し、そのコレクション・スタイルを一連の郡のテーマに適用できます。そのテーマがMapViewerによってレンダリングされると、マップ上に一連の棒グラフと境界線の両方が表示されます。
ポリゴン(領域)、ポイント、線などの複数のタイプのジオメトリが含まれるコレクション型のトポロジ地物をレンダリングする場合にも、通常はコレクション・スタイルを使用します。そのような場合、コレクション・トポロジ地物内の各タイプのジオメトリに最適な一連のスタイルを、1つのコレクション・スタイルに含めることができます。
コレクション・スタイルのXML定義を、次の例で示します。
<?xml version="1.0" standalone="yes"?> <AdvancedStyle> <CollectionStyle> <style name="C.COUNTIES" shape="polygon" /> <style name="L.PH" shape="line" /> <style name="M.CIRCLE" shape="point" /> </CollectionStyle> </AdvancedStyle>
可変円グラフでは、バケットごとにサイズが異なる一連の円グラフが生成されます。円グラフの各区分の情報、円グラフの半径の初期(最小)サイズ、連続する2つの円間における半径の増分サイズを指定します。
可変円グラフ・スタイルは、概念的に可変マーカー・スタイルと類似しています。可変マーカー・スタイルではベース・マーカーのサイズが変化しますが、可変円グラフ・スタイルでは円の半径が変化します。
次の例は、4つのバケットを含む可変円グラフ・スタイルの定義を作成します。各バケットは、様々な円のサイズ(初期半径5で4ずつ増大)に関連付けられています。最初のバケットの円には5ディスプレイ単位の半径、2番目のバケットの円には9ディスプレイ単位の半径が指定されることになります。
<?xml version="1.0" ?>
<AdvancedStyle>
<VariablePieChartStyle startradius="5" increment="4">
<PieSlice name="WHITE" color="#FFFFFF"/>
<PieSlice name="BLACK" color="#000000"/>
<PieSlice name="HISPANIC" color="#FF0000"/>
<Buckets>
<RangedBucket seq="0" label="0 - 6194757.2" low="0" high="6194757.2" />
<RangedBucket seq="1" label="6194757.2 - 1.23895144E7" low="6194757.2" high="1.23895144E7"/>
<RangedBucket seq="2" label="1.23895144E7 - 1.85842716E7" low="1.23895144E7" high="1.85842716E7"/>
<RangedBucket seq="3" label="1.85842716E7 - 2.47790288E7" low="1.85842716E7" high="2.47790288E7"/>
<RangedBucket seq="4" label="2.47790288E7 - 3.0973786E7" low="2.47790288E7" high="3.0973786E7"/>
</Buckets>
</VariablePieChartStyle>
</AdvancedStyle>
ヒート・マップのスタイルを使用して、あらゆるポイント・タイプ・データセットの2次元(2D)のカラー・マップを生成できます。色は、分布密度や地域におけるポイントやイベントのパターンを表します。MapViewerは内部では2Dマトリックスを作成して、ポイント・データセットに対して実行された距離加重アルゴリズムの結果に基づいて、それぞれのグリッド・セルに値を割り当てます。
Map Builderツールを使用してヒート・マップのスタイルを作成し、それをポイント・タイプのジオメトリ・テーマにレンダリング・スタイルとして割り当てることができます。その後で、このテーマをベース・マップに追加するか、インタラクティブなOracle Mapsアプリケーションにテーマ・ベースのFOI層として追加できます。図A-3は、ヒート・マップ・スタイルに基づいたテーマを使用して表示されるマップを示します。このマップは、ピザ・レストランの分布を示します。赤の部分はピザ・レストランの密度が最も高く、オレンジ、黄色、濃い緑、明るい緑、薄い緑、白い部分の順に密度が次第に低くなります。
次の例では、ヒート・マップのスタイル定義を作成します。
<?xml version="1.0" ?>
<AdvancedStyle>
<HeatMapStyle>
<color_stops num_steps="200" alpha="128">
FFFFFF,00FF00, FFC800,FF0000
</color_stops>
<spot_light_radius>75.0mile</spot_light_radius>
<grid_sample_factor>2.5</grid_sample_factor>
<container_theme>THEME_DEMO_STATES</container_theme>
</HeatMapStyle>
</AdvancedStyle>
この例では、ヒート・マップの以下の重要な点を定義します。
カラー・ストップ。カラー・ストップは、色のグラデーションを生成するために使用します。この例では、色のグラデーションは白(値ゼロでグリッド・セルにマッピングされます)から緑、オレンジ、最後に赤(最も高い値でグリッド・セルにマッピングされます)になります。グラデーションは、これら4つのカラー・ストップにまたがる200色になります。すべての色のアルファ値は128(半透明、0は完全な透明で255は不透明を示します)。
スポットライト半径。スポットライト半径は、それぞれのグリッド・セルの半径を定義します。この半径内にあるイベントやポイントは、セルの最終的な集約された値に影響します。各ポイントの影響は、セルの中心からの距離が増えるほど少なくなり、この半径を超えるとゼロになります。
半径はピクセルまたはmile
のような実際の距離の単位で指定できます。半径をピクセル(単位を指定しない場合のデフォルト)で指定する場合、色のグラデーションからグリッド・セルへのマッピングは、ユーザーがマップ上でズームインやズームアウトするにつれて変化します。ユーザーがズームインおよびズームアウトを行うたびに、半径内にあるポイント数が絶えず変化するためにこのようになります。マップのスケールに関係なく固定のヒート・マップを実現するには、meter
やkm
、mile
など距離の単位でスポットライトの半径を指定する必要があります。この例では、mile
を使用します。
グリッド・サンプル係数。グリッド・サンプル係数は、ヒート・マップの計算で内部マトリックスまたはグリッドを作成する際に、現在のマップ・ウィンドウのサイズをサンプリングするために使用します。たとえば、サンプル係数が4であれば、内部ヒート・マップのグリッドが実際のマップのウィンドウ・サイズの4分の1 (0.25)となります。つまり、マップが1000x1000ピクセルの場合、内部ヒート・マップのグリッドは250x250です。このように、グリッド・サンプル係数の値が少ないほど、内部ヒート・マップのグリッドが大きくなり、値が大きいほど内部ヒート・マップのグリッドは小さくなります。
グリッド・サンプル係数の値は、おそらく他のどの属性よりもヒート・マップのレンダリングのパフォーマンスに大きく影響します。なぜなら、(グリッド・サンプル係数の値が小さいことに起因する)大きな内部ヒート・マップのグリッドによって、全体的な計算時間が長くなるためです。一般的に適切なガイドラインは、グリッド・サンプル係数値を十分に高く指定して、内部ヒート・マップのグリッドが512x512ピクセル以下となるようにすることです。
コンテナ・テーマ名。コンテナ・テーマ名では、ヒート・マップ・テーマの境界を定義するテーマ名(同じデータベース・スキーマの事前定義済ジオメトリ・テーマ)を指定します。たとえば、全米に散らばるポイント・データセットのヒート・マップを生成する場合、米国の国境あるいはすべての州をコンテナ名として表すテーマを選択してください。
指定されたコンテナ・テーマは、ヒート・マップ自体の計算方法には影響しません(これは、ポイント分布とスポットライト半径にのみ基づきます)。かわりに、調査地域の境界の外にある色のついたすべてのセルが、コンテナ・テーマによってマスクされます。こうすることで、ヒート・マップが整理されて見えます。
ヒート・マップのスタイルを作成した後は、ポイント・データのテーマを作成して、新しいヒート・マップのスタイルをテーマのレンダリング・スタイルとして割り当てることができます。
他のタイプの拡張スタイルとは異なり、ヒート・マップのスタイルには属性や値の列は必要ありません。
ヒート・マップ・スタイルを使用してレンダリングされたテーマでは、ラベルはサポートされていません。
テーマ定義には、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
は、注釈テキスト・テーマを指定します。注釈テキスト・テーマの詳細は、2.3.10項を参照してください。
geom_custom
は、カスタム・ジオメトリ・テーマを指定します。provider_id
属性およびsrid
属性を指定する必要があります。カスタム・ジオメトリ・テーマの詳細は、2.3.9項を参照してください。
georaster
は、GeoRasterテーマを指定します。指定したGeoRasterデータを使用するには(ただし、問合せ条件を使用してGeoRasterデータを取得する場合を除く)、raster_id
属性およびraster_table
属性も指定する必要があります。raster_pyramid
属性、raster_bands
属性およびpolygon_mask
属性、transparent_nodata
属性を指定することもできます。GeoRasterテーマの詳細は、2.3.4項を参照してください。
image
は、イメージ・テーマを指定します。ともに指定する必要がある属性はimage_format
属性とimage_column
属性であり、指定できる属性はimage_resolution
属性とimage_unit
属性です。イメージ・テーマの詳細は、2.3.3項を参照してください。
network
は、ネットワーク・テーマを指定します。network_name
属性も指定する必要があります。network_level
属性も指定できますが、現在はデフォルト値(1)しかサポートされていません。ネットワーク・テーマの詳細は、2.3.5項を参照してください。
topology
は、トポロジ・テーマを指定します。topology_name
属性も指定する必要があります。トポロジ・テーマの詳細は、2.3.6項を参照してください。
wfs
は、WFSテーマを指定します。service_url
属性およびsrs
属性も指定する必要があります。WFSテーマの詳細は、2.3.7項を参照してください。
<styling_rules>
要素では、key_column
属性を指定できます。この属性が必要になるのは、結合ビュー(複数の表から作成されたビュー)でテーマが定義される場合のみです。このような場合は、キー列となる列をこのビューで指定し、そのビューでジオメトリまたは画像を一意に識別する必要があります。このキー列情報がない場合、MapViewerは結合ビューのジオメトリまたは画像をキャッシュできません。
<styling_rules>
要素では、caching
属性を指定できます。この属性は、各事前定義済テーマのキャッシュ・スキームを指定します。caching
属性には、NORMAL
(デフォルト)、NONE
またはALL
のいずれかの値を使用できます。
NORMAL
を指定すると、ジオメトリの再利用が必要な場合に負荷のかかる非Pickle化処理を繰り返さずにすむように、MapViewerは表示したばかりのジオメトリ・データのキャッシュを試行します。ジオメトリは常にデータベースからフェッチされますが、非Pickle化バージョンがキャッシュにすでに存在する場合、フェッチしたジオメトリは使用されません。
NONE
を指定すると、該当するテーマのジオメトリはキャッシュされません。テーマのデータを頻繁に編集し、編集したとおりにデータを表示する必要がある場合は、この値を使用すると便利です。
ALL
を指定すると、MapViewerは該当するテーマのジオメトリ・データをすべて完全にキャッシュに確保してから、リクエストを表示します。デフォルト値のNORMAL
とは対照的に、値ALL
では、初めてテーマが表示されるときに実表のすべてのジオメトリがキャッシュされ、以降データベースからジオメトリはフェッチされません。
事前定義済テーマのキャッシュの詳細は、2.3.1.6項を参照してください。
各<rule>
要素は、<features>
要素を含める必要があり、<label>
要素と<rendering>
要素を含めることもできます。<rendering>
要素は、複数のレンダリング・スタイルの定義に使用できます。この要素を使用した場合、<features>
要素のレンダリング・スタイルは定義されないことがあります。<features>
要素のレンダリング・スタイルを定義し、<rendering>
要素も定義した場合、MapViewerは最初に<features>
要素のスタイルをレンダリングし、次に<rendering>
要素のスタイルをレンダリングします。(<rendering>
要素の詳細は、この項で後述します。)
<rule>
要素のオプションのcolumn
属性は、MapViewerで生成される問合せの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>
要素はネットワーク・テーマにのみ適用します。ネットワーク・テーマの詳細は、2.3.5項を参照してください。)次の例は、リンクおよびノードをレンダリングするネットワーク・テーマのスタイリング・ルールを示しています。
<?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>要素の詳細は、2.3.1.4項を参照してください。
<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
属性はオプションです。
スタイリング・ルールの詳細および例は、2.3.1.1項を参照してください。
ベース・マップの定義は、1つ以上のテーマで構成されます。ベース・マップのXML定義は次のDTDを使用し、USER_SDO_MAPSメタデータ・ビューのDEFINITION列で指定されます。
<!ELEMENT map_definition (theme+)> <!ELEMENT theme EMPTY> <!ATTLIST theme name CDATA #REQUIRED name CDATA #REQUIRED datasource CDATA #IMPLIED template_theme CDATA #IMPLIED max_scale CDATA #IMPLIED 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 >
<map_definition>
要素には、1つ以上の<theme>
要素が含まれます。テーマは、定義に指定された順序で、マップ上に相互に積み重ねてレンダリングされます。
<theme>
要素およびその属性の詳細は、3.1.2.20項を参照してください。
ベース・マップの定義の詳細および例は、2.4項を参照してください。
Oracle Mapsのマップ・タイル層は、マップ・タイル・サーバーの事前に生成された一連のマップ画像タイルを組み立てて表示します(3.3.2.2項「マップ・タイル層の構成」を参照)。マップ・タイル層のXML構成設定は、次のDTDを使用して定義されます。
<!ELEMENT map_tile_layer ((internal_map_source|external_map_source), tile_storage, coordinate_system, tile_image, , tile_dpi?, tile_meters_per_unit?, zoom_levels, auto_update?, themes?)> <!ATTLIST map_tile_layer name CDATA #REQUIRED image_format CDATA #IMPLIED http_header_expires CDATA #IMPLIED utfgrid (TRUE|FALSE) "FALSE" utfgrid_resolution CDATA #IMPLIED concurrent_fetching_threads CDATA #IMPLIED fetch_larger_tile (TRUE|FALSE) "TRUE" persistent_tiles (TRUE|FALSE) "TRUE"> <!ELEMENT internal_map_source EMPTY> <!ATTLIST internal_map_source data_source CDATA #REQUIRED base_map CDATA #REQUIRED bgcolor CDATA #IMPLIED out_of_bounds_color CDATA #IMPLIED antialias (TRUE|FALSE) "TRUE"> <!ELEMENT external_map_source (properties?)> <!ATTLIST external_map_source url CDATA #REQUIRED request_method CDATA #REQUIRED timeout CDATA #IMPLIED adapter_class CDATA #REQUIRED proxy_host CDATA #IMPLIED proxy_port CDATA #IMPLIED clipping_buffer CDATA #IMPLIED> <!ELEMENT properties (property+) > <!ELEMENT property EMPTY > <!ATTLIST property name CDATA #REQUIRED value CDATA #REQUIRED> <!ELEMENT tile_storage EMPTY > <!ATTLIST tile_storage root_path CDATA #REQUIRED xyz_storage_scheme (TRUE|FALSE) "FALSE"> <!ELEMENT coordinate_system EMPTY > <!ATTLIST coordinate_system srid CDATA #REQUIRED minX CDATA #REQUIRED minY CDATA #REQUIRED maxX CDATA #REQUIRED maxY CDATA #REQUIRED> <!ELEMENT tile_bound (coordinates)> <!ELEMENT coordinates (#PCDATA)> <!ELEMENT tile_image EMPTY > <!ATTLIST tile_image width CDATA #REQUIRED height CDATA #REQUIRED> <!ELEMENT tile_dpi EMPTY > <!ATTLIST tile_dpi value CDATA #REQUIRED> <!ELEMENT tile_meters_per_unit EMPTY > <!ATTLIST tile_meters_per_unit value CDATA #REQUIRED> <!ELEMENT zoom_levels (zoom_level+)> <!ATTLIST zoom_levels levels CDATA #REQUIRED min_scale CDATA #IMPLIED max_scale CDATA #IMPLIED min_tile_width CDATA #IMPLIED min_tile_height CDATA #IMPLIED> <!ELEMENT zoom_level (tile_bound?)> <!ATTLIST zoom_level level CDATA #REQUIRED level_name CDATA #IMPLIED description CDATA #IMPLIED scale CDATA #REQUIRED tile_width CDATA #REQUIRED tile_height CDATA #REQUIRED> <!ELEMENT auto_update (dirty_mbr_table_name,logtable_name)> <!ATTLIST auto_update finest_level_to_refresh CDATA #REQUIRED dirty_mbr_batch CDATA #REQUIRED dirty_mbr_cap CDATA #REQUIRED> <!ELEMENT dirty_mbr_table_name EMPTY> <!ATTLIST dirty_mbr_table_name name CDATA #REQUIRED> <!ELEMENT logtable_name EMPTY> <!ATTLIST logtable_name name CDATA #REQUIRED> <!ELEMENT themes (theme)> <!ATTLIST auto_update finest_level_to_refresh CDATA #REQUIRED dirty_mbr_batch CDATA #REQUIRED dirty_mbr_cap CDATA #REQUIRED> <!ELEMENT theme EMPTY> <!ATTLIST theme name CDATA #REQUIRED from_level CDATA #REQUIRED to_level CDATA #REQUIRED>