5.7 フィーチャ・モデリング

ネットワーク上の対象オブジェクトをフィーチャとしてモデル化できます。

フィーチャは1つまたは複数のフィーチャ要素で構成されます。フィーチャ要素は、ネットワークに沿った点、リンクまたは部分リンクです。フィーチャ・レイヤーはネットワークの上に定義できます。たとえば、レストランとホテルをそれぞれ道路ネットワーク上のフィーチャ・レイヤーとして定義したり、スイッチを電気ネットワーク上のフィーチャ・レイヤーとして定義できます。

フィーチャ・モデリングを使用する一般的なステップは次のとおりです。

  1. フィーチャ・レイヤーを作成します。

    たとえば、道路ネットワーク上の対象点(POI)をフィーチャとしてモデル化できます。POIの各タイプ(ホテル、レストラン、病院、学校など)は、1つのフィーチャ・レイヤーに対応します。次の例では、ホテルのフィーチャ・レイヤーを追加します。

    sdo_net.add_feature_layer(
       'US_ROAD_NETWORK', --network name
       'HOTEL',           --feature layer name
       2,                 --feature layer type: point on link
       'HOTEL_TAB',       --feature table or view name
       'HOTEL_NET_REL',   --relation table or view name
       null);             --hierarchy table or view name
    
  2. フィーチャ・ユーザー・データを登録します(アプリケーション固有のフィーチャ属性がフィーチャ分析で役立つ可能性がある場合)。

    フィーチャ・ユーザー・データを登録するには、TABLE_TYPE列をフィーチャ表の名前に設定することを除き、ネットワークのノードまたはリンクのユーザー・データを登録する場合と同じように、XXX_SDO_NETWORK_USER_DATAビューにエントリを追加します。次の例では、ホテル名をホテル・フィーチャのユーザー・データとして追加します。

    INSERT INTO USER_SDO_NETWORK_USER_DATA(
       network, table_type, data_name, data_type, category_id)
    VALUES(
       'US_ROAD_NETWORK',  --network name
       'HOTEL_TAB', 	       --feature table or view name
       'NAME',             --user data name, i.e., name of the user data column
       'VARCHAR2',         --user data type
       3);                 --user data category
    
  3. フィーチャ・レイヤーのフィーチャの追加、更新または削除を行います。

    フィーチャ表、フィーチャ要素関係表およびフィーチャ階層表(すべて「フィーチャ・レイヤー表」を参照)またはこれらの表の組合せの内容は、データ・プロバイダにより管理されますので、このステップは省略できます。省略しない場合は、SDO_NETパッケージに含まれるプロシージャ(ADD_FEATURE、UPDATE_FEATURE、DELETE_FEATURESなど)をコールして、フィーチャ・レイヤー内のフィーチャの追加、更新または削除を行います。(SDO_NETサブプログラムについては、「SDO_NETパッケージ・サブプログラム」を参照してください。)

  4. NetworkAnalystを使用してフィーチャ分析を実行します。フィーチャ分析ファンクションには、次のものがあります。

    • フィーチャ間の最短パス

    • 最も近い(到達)フィーチャ

    • コスト範囲内の(到達)フィーチャ

5.7.1 フィーチャ・モデリングに使用するデータ型

この項では、フィーチャ・モデリングに関連する一部のSDO_NETパッケージ・サブプログラムのパラメータおよび戻り値に使用される、次のPL/SQLデータ型について説明します。

  • SDO_NET_FEAT_ELEM_ARRAY

  • SDO_NET_FEAT_ELEM

  • SDO_NET_LAYER_FEAT_ARRAY

  • SDO_NET_LAYER_FEAT

  • SDO_NETWORK_NVP_TAB

  • SDO_NETWORK_NVP

SDO_NET_FEAT_ELEM_ARRAYは、VARRAY(1024) OF MDSYS.SDO_NET_FEAT_ELEMとして定義されます。

SDO_NET_FEAT_ELEMは次のとおり定義されます。

FEAT_ELEM_TYPE    NUMBER
NET_ELEM_ID       NUMBER
START_PERCENTAGE  NUMBER
END_PERCENTAGE    NUMBER

SDO_NET_LAYER_FEAT_ARRAYは、VARRAY(1024) OF MDSYS.SDO_NET_LAYER_FEATとして定義されます。

SDO_NET_LAYER_FEATは次のとおり定義されます。

FEATURE_LAYER_ID  NUMBER
FEATURE_ID        NUMBER

SDO_NETWORK_NVP_TABは、TABLE OF MDSYS.SDO_NETWORK_NVPとして定義されます。

SDO_NETWORK_NVPは次のとおり定義されます。

NAME   VARCHAR2(128)
VALUE  VARCHAR2(1024)