A.2 マーカー・スタイル

マーカー・スタイルは、ポイント地物、または領域地物および線形地物のラベル・ポイントに配置されるマーカーを表します。

マーカーは、ベクトル・マーカーまたはラスター画像マーカーのいずれかになります。また、マーカーにはオプションの注釈テキストを含めることができます。ベクトル・マーカーの場合、ベクトル要素の座標はXML文書で定義される必要があります。ラスター画像に基づくマーカーの場合、スタイルに関するXML文書は、スタイルが外部画像に基づいていることを示します。

マーカーのXML文書では、優先表示サイズが指定されます。優先される幅および高さは、<g>要素のstyle属性において、width:value;height:valueのペアによって定義されます。class属性は"marker"に設定する必要があります。マーカーによっては、注釈テキストを重ねる必要があります。たとえば、米国州間高速道路の盾マーカーをレンダリングする場合、その上にルート番号も表示する必要があります。こうした注釈テキストのスタイルは、font-family:valuefont-style:valuefont-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-1に示します。

A.2.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>

A.2.2 画像マーカー・スタイル

画像マーカーの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/>として)有効な定義を作成し、画像を後で指定することもできます。

A.2.3 TrueTypeフォントベースのマーカー・スタイル

TrueTypeフォントベースのマーカーの場合、そのマーカー記号はTrueTypeフォント・ファイルに格納されます。このファイルのファイル拡張子は.ttfで、通常、個々の記号や絵文字が多数含まれています。多くのGISソフトウェア・パッケージには、マッピングに便利な記号が含まれるTrueTypeフォント・ファイルが付属しています。

TrueTypeフォント・ファイル内の記号をマップ・ビジュアライゼーション・コンポーネントで使用できるようにするには、次の処理を実行する必要があります。

  1. TrueTypeフォント・ファイルをデータベースにインポートします。その際には、Map Builderツール(「Oracle Map Builderツール」を参照)を使用するのが望ましい方法です。このツールを使用してインポートすることで、該当するフォント・ファイル内の記号が、システム・ビューUSER_SDO_STYLESの中の単一の行に挿入されます。この新しい行内で、TYPE列には文字列TTF、IMAGE列にはTrueTypeフォント・ファイルの内容が格納されます。インポート操作が終わると、Map Builderツールを使用して、TrueTypeフォント・ファイルに含まれているすべての絵文字や記号を表示できるようになります。また、フォント・ファイルはデータベース内に物理的に格納されるようになったため、すべてのマップ・ビジュアライゼーション・コンポーネント・ユーザーで共有可能です。

  2. インポートしたTrueTypeフォントの中の絵文字または記号に基づいて、マップ・ビジュアライゼーション・コンポーネント・マーカー・スタイルを作成します(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.2.4 線上でのマーカー・スタイルの使用方法

通常、マーカー・スタイルはポイント地物に適用します。その場合、マーカー・スタイルは地物を示すポイント位置にレンダリングされます。ただし、高速道路などの線(線文字列)地物では、ルート番号などの地物についての情報を示すために線に沿った地点にマーカーを配置する必要があります。たとえばアメリカ合衆国の地図では、図A-1のルート495のように、記号の中にルート番号が書かれた盾記号を高速道路の上に配置することがよくあります。

図A-1 高速道路の盾記号マーカー

図A-1の説明
「図A-1 高速道路の盾記号マーカー」の説明

図A-1のような結果を得るには、次のようにします。

  1. マーカー・スタイルを選択し、「マーカー・スタイル」の例のように、テキスト・スタイル定義(フォント・ファミリ、フォント・サイズ、塗りの色など)を追加します。

  2. テーマのスタイリング・ルールで、マーカー・スタイルをラベリング・スタイルとして指定します。高速道路を表示するテーマのスタイリング・ルールを指定したXML文書の例を次に示します。マーカー・スタイル(例では太字で表示)が指定されています。ラベル・テキスト(図A-1495)は、ラベル列の値です。この例では、ラベル列は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>
    

マップ・ビジュアライゼーション・コンポーネントは、マーカー・スタイル(この例では盾)の配置について、線上の最適な位置を自動的に決定します。