プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

3.5 注釈テキストの型およびビュー

Oracle Spatial and Graphでは、『OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 1: Common architecture』で指定された注釈テキストをサポートしています。この仕様では、注釈テキストは、地理関連データまたはアドホック・データおよびプロセス関連情報を表示可能なテキストとして含む、単純に挿入されたテキストとして定義されています。このテキストは、エディタまたは単純な地図で表示するために使用できます。通常、完全な地図製作における品質としては不十分ですが、あらゆるアプリケーションで必要となるテキスト機能をほぼ果たすことができます。

ST_ANNOTATION_TEXTオブジェクト型は、注釈テキストの格納に使用できます。この型には、注釈テキストを表に挿入するコンストラクタがあります(「ST_ANNOTATION_TEXTコンストラクタの使用」を参照)。

USER_ANNOTATION_TEXT_METADATAビューおよびALL_ANNOTATION_TEXT_METADATAビューは、注釈テキストに関連するメタデータを格納します(「注釈テキストのメタデータ・ビュー」を参照)。

3.5.1 ST_ANNOTATION_TEXTコンストラクタの使用

注釈テキストのオブジェクトには、オブジェクトの配列が含まれます。ここでは、各オブジェクトは、テキスト・ラベル、テキスト・ラベルのレンダリングを開始する点、引き出し線(通常、テキスト・ラベルから地図上の関連付けられた点)およびオプションで追加の属性情報で構成されます。通常、単一の注釈テキストのオブジェクトには、地図のすべてのテキスト・ラベルを含めることができます。

各テキスト・ラベルのオブジェクトは、次のように定義されています。

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PRIVATEVALUE                                       VARCHAR2(4000)
 PRIVATELOCATION                                    MDSYS.SDO_GEOMETRY
 PRIVATELEADERLINE                                  MDSYS.SDO_GEOMETRY
 PRIVATETEXTATTRIBUTES                              VARCHAR2(4000)

例3-3 ST_ANNOTATION_TEXTコンストラクタの使用

単一の点に注釈を挿入する場合は、ST_ANNOTATION_TEXTコンストラクタを使用します。このコンストラクタは、例3-3に示すように、配列を使用して単一の点に情報を指定します。この例では、ST_ANNOTATION_TEXT型の列を含む表を作成し、INSERT文でST_ANNOTATION_TEXTコンストラクタを使用して、1つの行を挿入します。

CREATE TABLE my_annotations (id NUMBER, textobj ST_ANNOTATION_TEXT);
 
INSERT INTO my_annotations VALUES (2,
 ST_ANNOTATION_TEXT(
    ST_ANNOTATIONTEXTELEMENT_ARRAY(
           ST_ANNOT_TEXTELEMENT_ARRAY(
                 ST_ANNOTATIONTEXTELEMENT(
                    'Sample Label 2',
                    SDO_GEOMETRY(2001,null,sdo_point_type(10,10,null),null,null),
                    SDO_GEOMETRY(2002,null,null,
                        SDO_ELEM_INFO_ARRAY(1,2,1),
                        SDO_ORDINATE_ARRAY(5,10, 10,10)), 
                    NULL)))));

例3-3のST_ANNOTATION_TEXTコンストラクタでは、ST_ANNOTATIONTEXTELEMENTサブ要素で、次のような属性を指定しています。

  • ラベルのテキスト(この場合はSample Label 2)。

  • ラベルのレンダリングを開始する点を指定する点ジオメトリ(この場合は位置(10,10))。

  • 対象点とテキスト・ラベルの間で、引き出し線の開始点と終了点を指定する線ストリング・ジオメトリ(この場合は位置(5,10)と(10,10)の間の線)。

  • テキスト表示の属性情報がなく(NULL)、注釈テキストのメタデータ・ビューのTEXT_ATTRIBUTES列の情報が使用されていることを意味します(「注釈テキストのメタデータ・ビュー」表3-2を参照)

3.5.2 注釈テキストのメタデータ・ビュー

注釈テキストのメタデータは、MDSYSが所有するグローバル表に格納されます。ユーザーは、このグローバル表を直接更新しないでください。Spatial and Graphのユーザーは、ユーザーに関連付けられたスキーマで使用可能な次のビューを持っています。

  • USER_ANNOTATION_TEXT_METADATAには、ユーザー(スキーマ)が所有する表のすべての注釈テキストについてのメタデータ情報が含まれます。このビューのみが更新可能であり、Spatial and Graphのユーザーは、空間表に関連するメタデータをこのビューに挿入する必要があります。

  • ALL_ANNOTATION_TEXT_METADATAには、ユーザーがSELECT権限を持つ、表のすべての注釈テキストのメタデータ情報が含まれます。

これらのビューの移入は、Spatial and Graphのユーザーの責任において行います。注釈テキストの各オブジェクトについて、USER_ANNOTATION_TEXT_METADATAビューに適切な行を挿入する必要があります。Oracle Spatial and Graphでは、ALL_ANNOTATION_TEXT_METADATAビューも更新され、USER_ANNOTATION_TEXT_METADATAに挿入した行が確実に反映されます。

USER_ANNOTATION_TEXT_METADATAビューとALL_ANNOTATION_TEXT_METADATAビューのどちらにも表3-2に示す列が含まれますが、USER_ANNOTATION_TEXT_METADATAビューにはOWNER列は含まれません。列をビュー定義の順に示します。

表3-2 注釈テキストのメタデータ・ビューの列

列名 データ型 用途

OWNER

VARCHAR2(32)

TABLE_NAME列で指定された表の所有者(ALL_ANNOTATION_TEXT_METADATAビューのみ)。

TABLE_NAME

VARCHAR2(32)

ST_ANNOTATION_TEXT型の列を含む表の名前。

COLUMN_NAME

VARCHAR2(1024)

ST_ANNOTATION_TEXT型の列の名前。

TEXT_EXPRESSION

VARCHAR2(4000)

ラベルにテキストが指定されていない場合に使用できる値。OpenGISの仕様によると、挿入するテキストは、VALUEがNULLでない場合、最初に現行の要素のVALUEの内容から取得されます。それ以外の場合、テキストは最初のNULL以外の先行する要素のVALUEから取得されます。すべての先行する要素がNULLのVALUEフィールドの場合、VALUEはメタデータ表のTEXT_EXPRESSIONから取得されます。

TEXT_ATTRIBUTES

VARCHAR2(4000)

ラベル・テキストのスタイルおよびレイアウトについて、デフォルトのテキスト表示属性(フォント・ファミリーおよびフォント・サイズ、水平スペースおよび垂直スペースなど)ですが、ST_ANNOTATION_TEXTコンストラクタのPRIVATETEXTATTRIBUTES属性で上書きされた場合を除きます(「ST_ANNOTATION_TEXTコンストラクタの使用」を参照)。OpenGISの仕様の「XML for Text Attributes」の項で指定された形式を使用してください。