ヘッダーをスキップ
Oracle Spatial開発者ガイド
11g リリース1(11.1)
E05682-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

13 ルーティング・エンジン

Spatialのルーティング・エンジンを使用すると、次の情報を提供するXMLベースのWebサービスをホストできます。

いずれのリクエストの場合も、出発地および目的地は、住所、ジオコード結果または経度/緯度座標によって識別されます。

ルーティング・エンジンは、Java 2 Enterprise Edition(J2EE)のWebアプリケーションとして実装され、Oracle Application ServerまたはスタンドアロンのOracle Application Server Containers for J2EE(OC4J)環境のいずれかにデプロイできます。

図13-1に、ルーティング・エンジンを使用する基本的なアクション・フローを示します。クライアントは、リモートのルーティング・エンジン・インスタンスを探してルート・リクエストを送信し、ルーティング・エンジン・インスタンスから戻されたルート・レスポンスを処理します。

図13-1 Spatialルーティング・エンジンを使用した基本的なアクション・フロー

図13-1の説明が続きます。
図13-1「Spatialルーティング・エンジンを使用した基本的なアクション・フロー」の説明

この章の内容は次のとおりです。

13.1 ルーティング・エンジンのデプロイおよび構成

ルーティング・リクエストの処理およびレスポンスの生成を行うために、ルーティング・エンジンを有効にするには、OC4JまたはOracle Application Serverを使用してrouteserver.earファイルをデプロイする必要があります。ここでは、基本的な手順を示します。

  1. 次の要素を、OC4Jのhttp-web-site.xmlまたはdefault-web-site.xmlファイルの<web-site>要素内に追加します。

    <web-app application="routeserver"
              name="web"
              load-on-startup="true"
              root="/routeserver"
              max-inactivity-time="no shutdown"
              shared="false" />
    
  2. Oracle Application Serverコンソールを使用して、routeserver.earファイルをデプロイするか、または次の要素をOC4Jのserver.xmlファイルの<application-server>要素内に追加します(これに応じて、<ROUTE_SERVER_HOME>を置換します)。

    <application name="routeserver"
                 path="<ROUTE_SERVER_HOME>/routeserver.ear"
                 auto-start="true" />
    
  3. 次の要素を、OC4Jのserver.xmlファイルの<application-server>要素内に追加します。

    <max-http-connections value="10" />
    

    Oracle Route Serverがjava.lang.OutOfMemoryErrorエラーを発生することなく、常に処理できる同時リクエスト数を制限することは重要です。

  4. web.xmlファイルを構成します(13.1.1項を参照)。

  5. 次のコマンド・オプションを使用して、OC4Jを起動します。

    -server
    -Xms<HEAP_SIZE>
    -Xmx<HEAP_SIZE>
    -XX:NewSize=<YOUNG_GENERATION_SIZE>
    -XX:MaxNewSize=<YOUNG_GENERATION_SIZE>
    -Dsun.rmi.dgc.server.gcInterval=3600000
    -Dsun.rmi.dgc.client.gcInterval=3600000
    -verbose:gc  (optional)
    

    <HEAP_SIZE>は、512MB以上である必要があります。推奨サイズは、1024MB(1GB)以上です。このメモリーは仮想メモリーではなく、物理メモリーであることに注意してください。

    <YOUNG_GENERATION_SIZE>は、<HEAP_SIZE>値の1/4(25%)である必要があります。

    -verbose:gcは、マイナーおよびメジャーのJavaガベージ・コレクションをすべて出力します。これらの統計を監視すると、メモリー・リソース計画に役立ちます。ガベージ・コレクションが頻繁に発生したり、数秒間にわたり継続する場合は、Java VMに物理メモリーをさらに割り当てる必要がある可能性があります。


    注意:

    Java VMに必要となるメモリー量は、主に2つのパラメータによって決定されます。1つは、server.xml<application-server>要素の<max-http-connections value="..." />要素、もう1つは、web.xmlpartition_cache_size_limitパラメータです。

    次のコマンドは、OC4Jを起動する例です。-configフラグは、OC4Jコマンドライン・パラメータであり、VMオプションではないことに注意してください。

    c:\jdk1.5.0_06\bin\java -server
                            -Xms1024m
                            -Xmx1024m
                            -XX:NewSize=256m
                            -XX:MaxNewSize=256m
                            -Dsun.rmi.dgc.server.gcInterval=3600000
                            -Dsun.rmi.dgc.client.gcInterval=3600000
                            -verbose:gc
                            -jar c:\oc4j\j2ee\home\oc4j.jar
                            -config c:\oc4j\j2ee\home\config\server.xml
    
  6. 次の書式でURLにアクセスし、デプロイメントを確認します。

    http://<hostname>:<port>/routeserver
    

    ようこそページが表示されます。また、OC4Jを起動したコンソール・ウィンドウには、Oracle Route Serverが正常に初期化されたことを示すメッセージが表示されます。

    ようこそのメッセージが表示されない場合、ルート・サーバーは、ご使用の環境で適切に動作するように構成されていない可能性があります。このような場合は、<ROUTE_SERVER_HOME>/routeserver/web/WEB-INF/web.xmlファイルを編集して、ご使用の環境とプリファレンスを反映します。(web.xmlファイルは、routeserver.earファイル内にあり、OC4Jがこれを<ROUTE_SERVER_HOME>の下のルート・サーバー・ディレクトリ構造に展開するまでは表示されません。)編集が終了したら、OC4Jを再起動して、デプロイメントを確認します。

  7. 提示される例を参照します。http://<hostname>:<port>/routeserver/のページには、テスト・サンプルというセクションの下部にリンクがあります。これらの例では、Oracle Route Serverの様々な機能を実例を使用して説明します。これは、XML API(13.2項を参照)の学習に適しています。

13.1.1 web.xmlファイルの構成

多くの場合(特に、古いweb.xmlファイルの設定を使用する場合や、言語を指定したり長いID値を使用する場合)、Spatialに含まれているデフォルトのweb.xmlファイルの一部を変更する必要があります。特に編集または追加する必要があると考えられるパラメータを次に示します。

  • routeserver_schema_jdbc_connect_string: ルーティング・データを含むデータベースへの接続文字列。

  • routeserver_schema_username: Oracleのルーティング・データにアクセスするために作成されたユーザーの名前。

  • routeserver_schema_password: Oracleのルーティング・データにアクセスするために作成されたユーザーのパスワード。パスワードを不明瞭にするには、パスワード文字列の前に感嘆符(!)を配置します。この処理を行うと、パスワードが不明瞭化され、次にルーティング・エンジンを起動するとweb.xmlファイルが再書込みされます。

  • geocoder_type: 使用されるジオコーダのタイプ。HTTPクライアントまたはThinクライアントに対して、それぞれhttpclientまたはthinclientを指定します。

    このパラメータの値に応じて、web.xmlファイルのHTTPクライアントまたはThinクライアントのセクションの設定が確認され、必要に応じて編集されます。たとえば、thinclientを指定している場合、routeserver_schema_passwordパラメータを使用する場合と同じ方法でOracle Geocoderのパスワードを不明瞭化できます。

  • log_filename: ログ・ファイルの場所と名前。

  • driving_side: 交通が右側通行の場合はR(デフォルト)、交通が左側通行の場合はL。

  • language: 運転方向の生成に使用するデフォルトの言語。サポートされている言語は英語(デフォルト)、フランス語、ドイツ語、イタリア語およびスペイン語です。

  • long_ids: TRUE(デフォルト)を指定すると、ID値の長さがINTEGERではなくLONGデータとして格納されます。FALSEを指定すると、ID値の長さがLONGではなくINTEGERデータとして格納されます。

    リリース11.1より前のOracle Databaseを使用してパーティション化されているルーティング・データを使用する場合は、現行のリリースを使用してデータを再パーティション化するまで、long_idsパラメータ値をFALSEに設定する必要があります。

  • local_road_threshold: マイル数(デフォルト値は25、最小値は10)。ソース・ノードと宛先ノード間の予想距離(マイル)がこの値以下である場合、地方道路はオプションとして考慮され、予想距離がこの値より大きい場合、地方道路は考慮されません。

    このパラメータによって、短ルートのための最適化が有効になります。値を小さくすると、検索対象となるソリューション・セットのサイズが小さくなるため、ルーティング・エンジンのパフォーマンスを向上できます。ただし、ルーティング・エンジンは通行可能な地方道路のルートを考慮しないため、最適化されていない短ルートが生成される可能性があります。値を(デフォルト値の25より)大きくすると、地方道路を使用したより正確なルートを生成できます。ただし、検索対象のソリューション・セットのサイズが大きくなるため、ルーティング・エンジンのパフォーマンスが低下する可能性があります。

13.2 ルーティング・エンジンのXML API

この項では、XML形式のルート・リクエストをルーティング・エンジンに送信する方法、およびルート・リクエスト(入力)とルート・レスポンス(出力)のXML Document Type Definition(DTD)について説明します。XMLは、構造化されたドキュメントをHTTPプロトコルで伝送する際に広く利用されています。HTTPリクエスト(GETまたはPOSTメソッド)を使用する場合、そのリクエストには、xml_requestというパラメータがあり、その値は、リクエストのXML文書が含まれる文字列であると想定されます。

ルーティング・エンジン・サーブレットへのリクエストの書式は、次のとおりです。

http://hostname:port/route-server-servlet-path?xml_request=xml-request

この書式のパラメータの意味は、次のとおりです。

入力XMLは、すべてのリクエストで必要です。出力は、XML文書になります。

一括ルート・リクエストではなく単純なルート・リクエストの場合は、ルートIDを指定する必要があります。また、次の属性を1つ以上指定できます。

一括ルート・リクエストの場合は、リクエストID、出発地、および1つ以上の目的地を指定する必要があります。ID属性は、場所ごとに必要です。一括ルート・リクエストでは、次の属性を1つ以上指定できます。

この項にはさらに次の項があります。

13.2.1 ルート・リクエストおよびルート・レスポンスの例

この項では、ルート・リクエストと、そのリクエストによって生成されるルート・レスポンスのXMLの例を示します。1つ目のリクエストでは、指定した住所を使用しています。次のリクエストでは、緯度/経度の座標で指定した点を使用しています。その次のリクエストでは、ジオコード済の場所を使用しています。使用可能な要素と属性のリファレンス情報は、リクエストについては13.2.2項を、レスポンスについては13.2.3項を参照してください。

例13-1は、住所を指定した2つのオフィス(Massachusetts州Waltham市とNew Hampshire州Nashua市)間の最速ルート(可能な場合は、高速道路を使用)のリクエストを示しています。このリクエストでは、セグメントごとの運転方向を要求し、距離の単位にはマイル、時間の単位には分を指定しています。

例13-1 指定した住所を使用した場合のルート・リクエスト

<?xml version="1.0" standalone="yes"?>
<route_request
          id="8"
          route_preference="fastest"
          road_preference="highway"
          return_driving_directions="true"
          distance_unit="mile"
          time_unit="minute">
  <start_location>
    <input_location id="1">
      <input_address>
        <us_form1
          street="1000 Winter St"
          lastline="Waltham, MA" />
      </input_address>
    </input_location></start_location>
  <end_location>
    <input_location id="2">
      <input_address>
        <us_form1
          street="1 Oracle Dr"
          lastline="Nashua, NH" />
      </input_address>
    </input_location>
  </end_location>
</route_request>

例13-2に、例13-1のリクエストによって生成されたレスポンスを示します。(出力は、読みやすくするために変更が加えられています。)

例13-2 指定した住所を使用した場合のルート・レスポンス

<?xml version="1.0" encoding="UTF-8" ?>
<route_response>
  <route
    id="8"
    step_count="15"
    distance="29.855655894643636"
    distance_unit="mile"
    time="34.41252848307292"
    time_unit="minute">
  <segment
    sequence="1"
    instruction="Start out on WINTER ST (Going North)"
    distance="0.6715170911787637" time="1.1257004737854004"/>
  <segment
    sequence="2"
    instruction="Turn SLIGHT RIGHT onto RAMP (Going Northwest)"
    distance="0.05893317343308232"
    time="0.09879287083943684"/>
  <segment
    sequence="3"
    instruction="Turn RIGHT onto OLD COUNTY RD (Going Northeast)"
    distance="0.6890481152276999"
    time="1.6801289876302083"/>
  <segment
    sequence="4"
    instruction="Turn RIGHT onto TRAPELO RD (Going Southeast)"
    distance="1.0062739119153126"
    time="1.686871592203776"/>
  <segment
    sequence="5"
    instruction="Turn LEFT onto RAMP (Going North)"
    distance="0.3364944434303735"
    time="0.5640838623046875"/>
  <segment
    sequence="6"
    instruction="Merge onto I-95/RT-128 (Going North)"
    distance="4.775246959324318"
    time="4.926156107584635"/>
  <segment
    sequence="7"
    instruction="Continue on I-95/RT-128"
    distance="0.0"
    time="0.0"/>
  <segment
    sequence="8"
    instruction="Stay STRAIGHT to go onto 32B/32A (Going East)"
    distance="0.27138218577176415"
    time="0.4549326578776042"/>
  <segment
    sequence="9"
    instruction="Take EXIT 32A toward LOWELL"
    distance="0.043764782242279254"
    time="0.07336527506510417"/>
  <segment
    sequence="10"
    instruction="Stay STRAIGHT to go onto RAMP (Going East)"
    distance="0.2770620621155161"
    time="0.4644541422526042"/>
  <segment
    sequence="11"
    instruction="Turn LEFT onto US-3 (Going Northwest)"
    distance="20.664632308107564"
    time="21.317686971028646"/>
  <segment
    sequence="12"
    instruction="Stay STRAIGHT to go onto EVERETT TPKE/US-3 (Going Northwest)"
    distance="0.006080380444913938"
    time="0.006272379557291667"/>
  <segment
    sequence="13"
    instruction="Take EXIT 1 toward SO NASHUA"
    distance="0.550406717982974"
    time="0.9226765950520833"/>
  <segment
    sequence="14"
    instruction="Turn LEFT onto SPIT BROOK RD (Going West)"
    distance="0.5031617978313553"
    time="1.0825419108072916"/>
  <segment
    sequence="15"
    instruction="Turn RIGHT onto ORACLE DR (Going North)"
    distance="0.0016526518707758954"
    time="0.00886537532011668"/>
  </route>
</route_response>

例13-3は、緯度/経度で指定した2点間の最速ルート(可能な場合は、高速道路を使用)のリクエストを示しています。このリクエストは、セグメントごとの運転方向を要求し、距離の単位にはメートル、時間の単位には秒を指定しています。(この2つの場所は、California州San Francisco市の、World Trade Centerと100 Flower通りに対応しています。)

例13-3 緯度/経度での点指定を使用した場合のルート・リクエスト

<?xml version="1.0" standalone="yes"?>
<route_request id="8"
               route_preference="shortest"
               road_preference="highway"
               return_driving_directions="true"
               distance_unit="meter"
               time_unit="second"
               return_route_geometry="true"
          >
  <start_location>
     <input_location id="1" longitude="-122.39382" latitude="37.79518" />
  </start_location>
  <end_location>
     <input_location id="2" longitude="-122.4054826" latitude="37.7423566" />
  </end_location>
</route_request>

例13-4に、例13-3のリクエストによって生成されたレスポンスを示します。(出力は、読みやすくするために変更が加えられています。)

例13-4 緯度/経度での点指定を使用した場合のルート・レスポンス

?xml version="1.0" encoding="UTF-8" ?>
<route_response>
   <route id="8" step_count="11" distance="7196.72509765625" distance_unit="meter"
     time="521.2236328125" time_unit="second">
       <route_geometry>
         <LineString>
             <coordinates>
-122.39382,37.79518 -122.39382,37.79518 -122.39454,37.79601 -122.39467,37.79604
-122.39476,37.79604 -122.39484,37.79599 -122.39486,37.79591 -122.39484,37.79579
-122.39462,37.79539 -122.39425,37.79491 -122.39389,37.79462 -122.39338,37.79433
-122.39326,37.79424 -122.39275,37.79384 -122.39263,37.79371 -122.39174,37.79293
-122.39151,37.79274 -122.39142,37.79266 -122.3913,37.7925 -122.3912,37.79233
-122.39102,37.79184 -122.39093,37.79161 -122.39072,37.79128 -122.39049,37.79104
-122.39016,37.79076 -122.38878,37.78967 -122.38861,37.7895 -122.38839,37.7892
-122.38819,37.78877 -122.38813,37.78857 -122.38797,37.78783 -122.38796,37.78758
-122.38801,37.78709 -122.38819,37.78478 -122.38832,37.78477 -122.38841,37.78474
-122.38983,37.78361 -122.39127,37.78246 -122.39206,37.78184 -122.39261,37.78139
-122.39319,37.78094 -122.3943,37.7801 -122.39486,37.77968 -122.39534,37.7793
-122.39654,37.77833 -122.39876,37.77657 -122.39902,37.77639 -122.40033,37.77537
-122.40096,37.77483 -122.40151,37.7744 -122.40205,37.77396 -122.40226,37.7738
 -122.40266,37.77349 -122.40321,37.77305 -122.40376,37.77262 -122.40543,37.77129
-122.40578,37.77101 -122.40599,37.77083 -122.40699,37.77006 -122.40767,37.76953
-122.40774,37.76947 -122.40781,37.7694 -122.40786,37.76932 -122.40788,37.76922
-122.40788,37.76913 -122.40786,37.76897 -122.40785,37.76883 -122.40779,37.76838
-122.40767,37.7671 -122.40756,37.76577 -122.40743,37.76449 -122.40734,37.76321
-122.40722,37.76193 -122.40709,37.76067 -122.40695,37.75937 -122.40678,37.75776
-122.4067,37.75684 -122.40663,37.75617 -122.40647,37.75458 -122.40644,37.75428
-122.40632,37.75299 -122.4062,37.75174 -122.40617,37.75138 -122.40614,37.75103
-122.40606,37.75066 -122.40565,37.74987 -122.40529,37.74937 -122.40518,37.74924
-122.40506,37.74913 -122.4045,37.74873 -122.4041,37.74845 -122.40393,37.74827
-122.40384,37.74815 -122.40378,37.74801 -122.40375,37.74785 -122.40381,37.74762
-122.40397,37.74719 -122.4043,37.74633 -122.40434,37.74618 -122.40434,37.74603
-122.40431,37.74594 -122.4042,37.74554 -122.40416,37.7453 -122.40417,37.74515
-122.40431,37.74464 -122.40445,37.74427 -122.40461,37.74393 -122.40479,37.74362
-122.40522,37.74304 -122.40482,37.74282 -122.40517,37.74233
-122.40545613036156,37.742431337836386
          </coordinates>
        </LineString>
      </route_geometry>
      <segment sequence="1" instruction="Start out on FERRY BLDG/FERRY
         PLZ/HERB CAEN WAY/THE EMBARCADERO (Going Northwest)"
         distance="111.84008026123047" time="6.990005016326904"/>
      <segment sequence="2" instruction="Turn LEFT onto RAMP (Going
        Southwest)" distance="51.30750274658203" time="4.664318561553955"/>
      <segment sequence="3" instruction="Turn LEFT onto HERB CAEN
         WAY/THE EMBARCADERO (Going Southeast)"
          distance="902.3695068359375" time="56.39809036254883"/>
      <segment sequence="4" instruction="Turn SLIGHT RIGHT onto THE
         EMBARCADERO (Going Southeast)" distance="534.7628173828125"
         time="33.42267608642578"/>
      <segment sequence="5" instruction="Turn RIGHT onto BRANNAN ST
          (Going Southwest)" distance="2454.0565185546875"
          time="219.57013702392578"/>
      <segment sequence="6" instruction="Turn SLIGHT LEFT onto POTRERO AVE
         (Going South)" distance="2066.54541015625" time="129.15908813476562"/>
      <segment sequence="7" instruction="Turn SLIGHT LEFT onto BAY SHORE
          BLVD (Going Southeast)" distance="747.060546875"
          time="46.6912841796875"/>
      <segment sequence="8" instruction="Stay STRAIGHT to go onto BAY SHORE
         BLVD/BAYSHORE BLVD (Going South)" distance="195.7578125"
         time="12.23486328125"/>
      <segment sequence="9" instruction="Turn LEFT onto OAKDALE AVE
         (Going Southeast)" distance="42.8857421875" time="3.898712158203125"/>
      <segment sequence="10" instruction="Turn RIGHT onto PATTERSON ST
          (Going Southwest)" distance="62.525390625" time="5.68414306640625"/>
      <segment sequence="11" instruction="Turn RIGHT onto FLOWER ST (Going
         West)" distance="27.61372947692871" time="2.5103390216827393"/>
   </route>
</route_response>

例13-5は、運転方向付きのルート・リクエストを示しています。出発地と目的地は、Massachusetts州Boston市内の約0.5マイル離れているジオコード済の場所です。

例13-5 ジオコード済の場所を使用した場合のルート・リクエスト

<?xml version="1.0" standalone="yes"?>
<route_request id="8"
               route_preference="shortest"
               road_preference="highway"
               return_driving_directions="true"
               distance_unit="mile"
               time_unit="minute"
               pre_geocoded_locations="true">
    <start_location>
        <pre_geocoded_location id="1">
            <edge_id>22161661</edge_id>
            <percent>.5</percent>
            <side>L</side>
        </pre_geocoded_location>
    </start_location>
    <end_location>
        <pre_geocoded_location id="2">
            <edge_id>22104391</edge_id>
            <percent>.5</percent>
            <side>R</side>
        </pre_geocoded_location>
    </end_location>
</route_request>

例13-6に、例13-5のリクエストに対するレスポンスを示します。(出力は、読みやすくするために変更が加えられています。)

例13-6 ジオコード済の場所を使用した場合のルート・レスポンス

<?xml version="1.0" encoding="UTF-8" ?>
<route_response>
  <route
     id="8"
     step_count="5"
     distance="0.6193447379707987"
     distance_unit="mile"
     time="1.6662169138590495"
     time_unit="minute">
    <segment
       sequence="1"
       instruction="Start out on HUNTINGTON AVE (Going Southeast)"
       distance="0.0059065276259536855"
       time="0.01440208355585734"/>
    <segment
       sequence="2"
       instruction="Turn LEFT onto AVENUE OF THE ARTS/HUNTINGTON AVE/RT-9 (Going Northeast)"              distance="0.020751234891437903"
       time="0.050598426659901934"/>
    <segment        sequence="3"
       instruction="Turn RIGHT onto PUBLIC ALLEY 405 (Going Southeast)"
       distance="0.053331456545578096"
       time="0.286087703704834"/>
    <segment        sequence="4"
       instruction="Turn RIGHT onto ST BOTOLPH ST (Going Southwest)"
       distance="0.028921701076542888"
       time="0.07052075068155925"/>
    <segment        sequence="5"
       instruction="Turn RIGHT onto MASSACHUSETTS AVE (Going Northwest)"
       distance="0.5104338249425094"
       time="1.2446078459421794"/>
  </route>
</route_response>

13.2.2 ルート・リクエストのDTD

次に、ルート・リクエストの完全なDTDを示します。DTDの主要な要素と属性については、後続の項で説明しています。

<?xml version="1.0" encoding="UTF-8"?>
<!-- geocoder.dtd includes gmlfeature.dtd. These define the
     ELEMENTS input_address and those in Feature, FeatureMember,
     and FeatureCollection that are used in geoFeature,
     geoFeatureCollection, and geoFeatureMember.
-->
<!ENTITY % GEOCODERDTD SYSTEM "geocoder.dtd">
%GEOCODERDTD;

<!—
   input_location: specify an input address to the geocoder
   input_address: specify a location using a street address
   Point: specify a location using its longitude/latitude

   (The input_location, input_address and Point elements are defined in
   geocoder.dtd. GeometryClasses is defined in gmlgeometry.dtd.)
-->
<!ELEMENT route_request (start_location, end_location)>
<!ATTLIST route_request
      vendor CDATA "Oracle"
      id CDATA #REQUIRED
      route_preference (FASTEST│SHORTEST) #IMPLIED
      road_preference (HIGHWAY│LOCAL) #IMPLIED
      return_driving_directions (TRUE│FALSE) #IMPLIED
      return_hierarchival_driving_directions (TRUE│FALSE) #IMPLIED
      return_route_geometry (TRUE│FALSE) #IMPLIED
      return_segment_geometry (TRUE│FALSE) #IMPLIED
      return_detailed_geometry (TRUE│FALSE) #IMPLIED
      return_route_edge_ids (TRUE│FALSE) #IMPLIED
      return_route_segment_ids (TRUE│FALSE) #IMPLIED
      language (ENGLISH│FRENCH│GERMAN│ITALIAN│SPANISH) #IMPLIED
      distance_unit (KM│MILE│METER) #IMPLIED
      time_unit (HOUR│MINUTE│SECOND) #IMPLIED
      pre_geocoded_locations (TRUE│FALSE) #IMPLIED>

<!-- The following are alternatives for specifying the location. Use
     input_location when you want to represent a location with a
     street address (input_address) or longitude/latitude (Point).
     If you have already geocoded the location,
     you can use information from the geocoder response to
     construct a pre_geocoded_location element.
     The geocoder returns:
         - An edge_id (integer that is the road segment identifier)
         - A side ('L' or 'R' – left or right side)
         - A percent (floating-point number 0.0 to 1.0 representing
           the fraction of the length from the start of the road
           segment to this location.
-->
<!ELEMENT pre_geocoded_location (edge_id, percent, side)>
<!ATTLIST pre_geocoded_location id CDATA #REQUIRED>


<!ELEMENT start_location (input_location│pre_geocoded_location│)>
<!ELEMENT end_location (input_location│pre_geocoded_location│)>

13.2.2.1 route_request要素

<route_request>要素は、次のとおり定義されています。

<!ELEMENT route_request (start_location, end_location)>

ルート・リクエストのルート要素には、常にroute_requestという名前が付けられます。

子要素の<start_location>は、住所指定、ジオコード済住所または経度/緯度座標として、ルートの出発地を示します。

子要素の<end_location>は、住所指定、ジオコード済住所または経度/緯度座標として、ルートの目的地を示します。

ルート・リクエストでは、次のように指定します。

  • <start_location>が住所指定または経度/緯度座標である場合、<end_location>には住所指定または経度/緯度座標のいずれかを使用できますが、ジオコード済住所は使用できません。

  • <start_location>がジオコード済住所である場合、<end_location>にはジオコード済住所を使用する必要があります。

13.2.2.2 route_request属性

ルート要素の<route_request>には、複数の属性があります(そのほとんどはオプションです)。属性は、次のとおり定義されています。

<!ATTLIST route_request
      vendor CDATA "Oracle"
      id CDATA #REQUIRED
      route_preference (FASTEST│SHORTEST) #IMPLIED
      road_preference (HIGHWAY│LOCAL) #IMPLIED
      return_driving_directions (TRUE│FALSE) #IMPLIED
      return_hierarchical_driving_directions (TRUE│FALSE) #IMPLIED
      return_route_geometry (TRUE│FALSE) #IMPLIED
      return_segment_geometry (TRUE│FALSE) #IMPLIED
      return_detailed_geometry (TRUE│FALSE) #IMPLIED
      return_route_edge_ids (TRUE│FALSE) #IMPLIED
      return_segment_edge_ids (TRUE│FALSE) #IMPLIED
      language (ENGLISH│FRENCH│GERMAN│ITALIAN│SPANISH) #IMPLIED
      distance_unit (KM│MILE│METER) #IMPLIED
      time_unit (HOUR│MINUTE│SECOND) #IMPLIED
      pre_geocoded_locations (TRUE│FALSE) #IMPLIED>
      driving_directions_detail (LOW│MEDIUM│HIGH) #IMPLIED

vendorはオプションの属性です。デフォルト値の場合は、Oracleがルーティング・プロバイダになります。

idは必須属性で、リクエストに関連付けるID番号を指定します。

route_preferenceはオプションの属性で、予想運転時間が最短のルート(FASTEST)と、運転距離が最短のルート(SHORTEST、デフォルト)のどちらを希望するのかを示します。

road_preferenceはオプションの属性で、道路の種類が選択できる場合に、高速道路を使用するルート(HIGHWAY、デフォルト)と、地方道路(LOCAL)を使用するルートのどちらを希望するのかを示します。

return_driving_directionsはオプションの属性で、ルートの運転方向が必要かどうかを示します。TRUEを指定すると運転方向が戻され、FALSE(デフォルト)を指定すると運転方向は戻されません。

return_hierarchical_driving_directionsはオプションの属性で、開いたり閉じたりすることができる階層でルートの運転方向を戻すかどうかを示します。TRUEを指定すると運転方向が開いたり閉じたりすることができる階層で戻され、FALSE(デフォルト)を指定すると運転方向が階層なしのリストで戻されます。

return_route_geometryはオプションの属性で、ルートのマヌーバを表す各線ストリングの座標が必要かどうかを示します。TRUEを指定すると座標が戻され、FALSE(デフォルト)を指定すると座標は戻されません。

return_segment_geometryはオプションの属性で、ルートを表す線ストリングの座標が必要かどうかを示します。TRUEを指定すると座標が戻され、FALSE(デフォルト)を指定すると座標は戻されません。return_segment_geometryTRUEの場合、return_route_geometry属性の値に関係なく、ルートの運転方向が戻されます。

return_detailed_geometryはオプションの属性で、戻されるジオメトリに含まれる詳細のレベルを示します。TRUE(デフォルト)は詳細なジオメトリを戻し、FALSEは総合的な(通常は座標の少ない)ジオメトリを戻します。

return_route_edge_idsはオプションの属性で、ルートのエッジのエッジID値が必要かどうかを示します。TRUEを指定するとエッジID値が戻され、FALSE(デフォルト)を指定するとエッジID値は戻されません。

return_segment_edge_idsはオプションの属性で、ルートのすべてのマヌーバのエッジについてエッジID値が必要かどうかを示します。TRUEを指定するとエッジID値が戻され、FALSE(デフォルト)を指定するとエッジID値は戻されません。return_segment_edge_idsTRUEの場合、return_route_edge_ids属性の値に関係なく、エッジID値が戻されます。

languageはオプションの属性で、運転方向の生成に使用するデフォルトの言語を上書きします。デフォルトの言語はweb.xmlファイルで設定されており、この属性を使用してリクエストごとにデフォルトを上書きできます。サポートされている属性値は、ENGLISHFRENCHGERMANITALIANおよびSPANISHです。

distance_unitはオプションの属性で、戻される距離の値の測定単位を示します。有効な値は、KM(キロメートル)、MILE(マイル、デフォルト)およびMETER(メートル)です。

time_unitはオプションの属性で、戻される時間値の単位を示します。有効な値は、HOUR(時間)、MINUTE(分、デフォルト)およびSECOND(秒)です。

pre_geocoded_locationsはオプションの属性で、出発地および目的地の指定方法を示します。TRUEは、両方の場所が、<pre_geocoded_location>要素によって、ジオコード済の場所として指定されることを示します。FALSE(デフォルト)は、両方の場所が、<input_location>要素によって、住所として指定されることを示します。

driving_directions_detailはオプションの属性で、運転の案内における詳細レベルと個別のステップの数に影響を与えます。指定可能な値は、HIGH(最も詳細でステップ数が最も多い)、MEDIUM(デフォルト)およびLOW(最も大まかでステップ数が最も少ない)です。たとえば、LOWを指定すると、セグメントに右または左へのわずかなマヌーバが含まれている場合でも、1つのセグメントが1つのステップとして処理される場合があります。戻される運転方向の長さに対してこの属性の値が与える影響は、要素の正確な名前とマヌーバによって異なります。return_driving_directionsまたはreturn_hierarchical_driving_directionsに対してTRUEを指定しない場合、この属性は無視されます。


注意:

デフォルトの詳細レベルはOracle Databaseリリース11.1で変更され、以前と比べると大まかになりステップ数が減りました。(driving_directions_detail属性が用意されていなかった)以前のリリースと同じ詳細レベルが必要な場合は、driving_directions_detail属性にHIGHを指定します。

13.2.2.3 input_location要素

<input_location>要素は、Oracle Spatialのジオコーディング・リクエストDTD(11.7.2項を参照)に適した形式で、住所を指定します。入力場所は、<Point>要素または<input_address>要素のいずれかを使用して指定できます。13.2.1項例13-1では、<input_location>要素とその子要素の<input_address>を使用して出発地と目的地の住所が指定されています。

<input_location>要素を使用する場合は、<route_request>要素のpre_geocoded_locations属性の値をFALSE(デフォルト)に設定する必要があります。リクエストでは<Point>要素と<input_address>要素を併用できます。

13.2.2.4 pre_geocoded_location要素

<pre_geocoded_location>要素は、その住所が通り(エッジ)に沿ってどれくらい離れているのか、また、通りのどちら側にあるのかを示す、ジオコード済の場所を指定します。13.2.1項例13-5では、<pre_geocoded_location>要素を使用して出発地と目的地の住所が指定されています。

<pre_geocoded_location>要素を使用する場合は、<route_request>要素でpre_geocoded_locations="TRUE"を指定し、出発地と目的地の両方を<pre_geocoded_location>要素で指定する必要があります。

13.2.3 ルート・レスポンスのDTD

次に、ルート・レスポンスの完全なDTDを示します。

<?xml version="1.0" encoding="UTF-8"?>
<!-- route_response DTD includes the gmlgeometry DTD
     as an external entity reference.
     -->
<!ENTITY % GMLGEOMETRYDTD SYSTEM "gmlgeometry.dtd">
  %GMLGEOMETRYDTD;

<!ELEMENT route_response (route │ router_error)>

<!ELEMENT route (route_geometry?, segment+)>
<!ATTLIST route id CDATA #REQUIRED
                step_count CDATA #IMPLIED
                time CDATA #IMPLIED
                distance CDATA #IMPLIED>

<!ELEMENT router_error EMPTY>
<!ATTLIST router_error
                 id CDATA #REQUIRED
                 error_code CDATA #IMPLIED
                 error_msg CDATA #IMPLIED>

<!ELEMENT route_geometry (LineString │ MultiLineString)?>

<!ELEMENT route_edge_ids (EdgeIDs)?>

<!ELEMENT segment segment*, (LineString │ MultiLineString)?>
<!ATTLIST segment sequence CDATA #REQUIRED
                  instruction CDATA #IMPLIED
                  time CDATA #IMPLIED
                  distance CDATA #IMPLIED>

<!ELEMENT segment_geometry (LineString │ MultiLineString)?>

<!ELEMENT segment_edge_ids (EdgeIDs)?>

13.2.4 一括ルート・リクエストおよび一括ルート・レスポンスの例

この項では、一括ルート・リクエストと、そのリクエストによって生成されるルート・レスポンスのXMLの例を示します。1つのリクエストでは、指定した住所を使用しています。もう1つのリクエストでは、ジオコード済の場所を使用しています。使用可能な要素と属性のリファレンス情報は、リクエストについては13.2.5項を、レスポンスについては13.2.6項を参照してください。

例13-7では、指定した住所を使用する一括ルート・リクエストを示しています。このリクエストは、Massachusetts州Waltham市にあるオフィスと3つの目的地(New Hampshire州Nashua市のOracleオフィス、Massachusetts州Concord町役場、およびBoston市庁舎)との間の最速ルート(可能な場合は高速道路を使用)を求めます。このリクエストでは、戻されるルートを、出発地と目的地の距離でソートするように要求しています。また、距離が35マイルを超えるルートは戻さないようにしています。

例13-7 指定した住所を使用した場合の一括ルート・リクエスト

<?xml version="1.0" standalone="yes"?>
<batch_route_request
          id="8"
          route_preference="fastest"
          road_preference="highway"
          return_driving_directions="false"
          sort_by_distance = "true"
          cutoff_distance="35"
          distance_unit="mile"
          time_unit="minute">
  <start_location>
    <input_location
          id="1">
      <input_address>
        <us_form1
          street="1000 Winter St"
          lastline="Waltham, MA" />
      </input_address>
    </input_location>
  </start_location>
  <end_location>
    <input_location id="10">
      <input_address>
        <us_form1
          street="1 Oracle Dr"
          lastline="Nashua, NH" />
      </input_address>
    </input_location>
  </end_location>
  <end_location>
    <input_location
          id="11">
      <input_address>
        <us_form1
          street="22 Monument Sq"
          lastline="Concord, MA" />
      </input_address>
    </input_location>
  </end_location>
  <end_location>
    <input_location
          id="12">
      <input_address>
        <us_form1
          street="1 City Hall Plaza"
          lastline="Boston, MA" />
      </input_address>
    </input_location>
  </end_location>
</batch_route_request>

例13-8に、例13-7のリクエストによって生成されたレスポンスを示します。(出力は、読みやすくするために変更が加えられています。)

例13-8 指定した住所を使用した場合の一括ルート・レスポンス

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<batch_route_response
      id="8">
  <route
    id="11"
    step_count="0"
    distance="6.637544152543032"
    distance_unit="mile"
    time="10.53597412109375"
    time_unit="minute" />
  <route
    id="12"
    step_count="0"
    distance="17.204805418116575"
    distance_unit="mile"
    time="24.47645467122396"
    time_unit="minute" />
  <route
    id="10"
    step_count="0"
    distance="29.855655894643636"
    distance_unit="mile"
    time="34.41252848307292"
    time_unit="minute" />
</batch_route_response>

例13-9は、ジオコード済の場所を使用する一括ルート・リクエストを示しています。このリクエストは、可能であれば高速道路を使用し、ある場所と他の3つの場所の間の最短ルートを求めます。距離にはマイル、時間には分を指定しています。このリクエストでは、戻されるルートを、出発地と目的地の距離でソートするように要求しています。また、距離が50マイルを超えるルートは戻さないようにしています。

例13-9 ジオコード済の場所を使用した場合の一括ルート・リクエスト

<?xml version="1.0" standalone="yes"?>
<batch_route_request id="8"
                     route_preference="shortest"
                     road_preference="highway"
                     return_driving_directions="false"
                     distance_unit="mile"
                     time_unit="minute"
                     pre_geocoded_locations="true"
                     cutoff_distance="50"
                     sort_by_distance="true">
    <start_location>
        <pre_geocoded_location id="1">
            <edge_id>22161661</edge_id>
            <percent>.5</percent>
            <side>L</side>
        </pre_geocoded_location>
    </start_location>
    <end_location>
        <pre_geocoded_location id="2">
            <edge_id>22104391</edge_id>
            <percent>.5</percent>
            <side>R</side>
        </pre_geocoded_location>
    </end_location>
    <end_location>
        <pre_geocoded_location id="3">
            <edge_id>22160808</edge_id>
            <percent>.5</percent>
            <side>L</side>
        </pre_geocoded_location>
    </end_location>
    <end_location>
        <pre_geocoded_location id="4">
            <edge_id>22325991</edge_id>
            <percent>.5</percent>
            <side>R</side>
        </pre_geocoded_location>
    </end_location>
</batch_route_request>

例13-10に、例13-9のリクエストに対するレスポンスを示します。3番目のルートは、指定したカットオフ距離の50マイルよりも長いため、2つのルートのみが戻されます。(出力は、読みやすくするために変更が加えられています。)

例13-10 ジオコード済の場所を使用した場合の一括ルート・レスポンス

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<batch_route_response
      id="8">
  <route
    id="2"
    step_count="0"
    distance="0.6193447379707987"
    distance_unit="mile"
    time="1.6662169138590495"
    time_unit="minute" />
  <route
    id="4"
    step_count="0"
    distance="41.342018851363946"
    distance_unit="mile"
    time="47.95714518229167"
    time_unit="minute" />
</batch_route_response>

13.2.5 一括ルート・リクエストのDTD

次に、一括ルート・リクエストの完全なDTDを示します。DTDの主要な要素と属性については、後続の項で説明しています。

<!ENTITY % GEOCODERDTD SYSTEM "geocoder.dtd">
%GEOCODERDTD;
<!-- input_location element is defined in geocoder.dtd -->

<!ELEMENT batch_route_request (start_location, end_location+)>
 <!ATTLIST batch_route_request
      vendor CDATA "Oracle"
      id CDATA #REQUIRED
      route_preference (FASTEST │ SHORTEST ) #IMPLIED
      road_preference (HIGHWAY │ LOCAL) #IMPLIED
      distance_unit (KM │ MILE │ METER ) #IMPLIED
      time_unit (HOUR │ MINUTE │ SECOND) #IMPLIED
      sort_by_distance (TRUE │ FALSE) #IMPLIED
      cutoff_distance CDATA #IMPLIED>

<!-- The following are alternatives for specifying the location. Use
     input_location when you want to represent a location with a
     street address (input_address) or by longitude/latitude (Point).
     If you have already geocoded the location,
     you can use information from the geocoder response to
     construct a pre_geocoded_location element.
     The geocoder returns:
         - an edge_id (integer that is the road segment identifier)
         - a side ('L' or 'R' – left or right side)
         - a percent (floating-point number 0.0 to 1.0 representing
           the fraction of the length from the start of the road
           segment to this location.
-->
<!ELEMENT pre_geocoded_location (edge_id, percent, side)>
<!ATTLIST pre_geocoded_location id CDATA #REQUIRED>

<!ELEMENT start_location (input_location│pre_geocoded_location)>
<!ELEMENT end_location (input_location│pre_geocoded_location)>
<!-- IMPORTANT VALIDITY CONSTRAINT: each of the input_location
     elements that are children of end_location MUST contain
     the id attribute.  Normally, the id attribute is optional.
     If an id is not present, an exception will result.
     Also, each id must be unique within a batch_route_request.
     Otherwise, the request will yield unpredictable results.
-->

13.2.5.1 batch_route_request要素

<batch_route_request>要素は、次のとおり定義されています。

<!ELEMENT batch_route_request (start_location, end_location+)>

一括ルート・リクエストのルート要素には、常にbatch_route_requestという名前が付けられます。

子要素の<start_location>は、住所指定、ジオコード済住所または経度/緯度の点として、ルートの出発地を示します。

1つ以上ある子要素の<end_location>は、それぞれが、住所指定、ジオコード済住所または経度/緯度の点として、ルートの目的地を示します。

13.2.5.2 batch_route_request属性

ルート要素<batch_route_request>には、複数の属性があります(そのほとんどはオプションです)。属性は、次のとおり定義されています。

<!ATTLIST batch_route_request
      vendor CDATA "Oracle"
      id CDATA #REQUIRED
      route_preference (FASTEST│SHORTEST) #IMPLIED
      road_preference (HIGHWAY│LOCAL) #IMPLIED
      distance_unit (KM│MILE│METER) #IMPLIED
      time_unit (HOUR│MINUTE│SECOND) #IMPLIED
      sort_by_distance (TRUE │ FALSE) #IMPLIED
      cutoff_distance CDATA #IMPLIED>
      pre_geocoded_locations (TRUE│FALSE) #IMPLIED>

<batch_route_request>のほとんどの属性は、<route_request>の属性と同じ意味を持ちます(13.2.5.2項を参照)。また、sort_by_distance属性およびcutoff_distance属性は、単一ルートのリクエストには適用されません。

sort_by_distanceはオプションの属性で、戻されるルートを、出発地から目的地までの距離で昇順にソートするかどうかを示します。TRUEを指定すると距離でソートされたルートが戻され、FALSE(デフォルト)を指定するとソートは行われません。

cutoff_distanceはオプションの属性で、この属性を指定すると、出発地から目的地までの距離が、指定した距離以下のルートのみが戻されます。デフォルトでは、すべてのルートが戻されます。


注意:

距離がcutoff_distanceの指定値以下でも、レスポンスに<router_error>要素(13.2.6項を参照)を生成するようなルートは、レスポンスから除外され表示されません。

13.2.6 一括ルート・レスポンスのDTD

次に、一括ルート・レスポンスの完全なDTDを示します。

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT batch_route_response (route │ route_error)+ >
<!ATTLIST batch_route_response id CDATA #REQUIRED>
<!ELEMENT route EMPTY>
<!ATTLIST route
       id CDATA #REQUIRED
       step_count CDATA #IMPLIED
       distance CDATA #IMPLIED
       distance_unit CDATA #IMPLIED
       time CDATA #IMPLIED
       time_unit CDATA #IMPLIED>
<!ELEMENT router_error EMPTY>
<!ATTLIST router_error
       id CDATA #REQUIRED
       error_code CDATA #IMPLIED
       error_msg CDATA #IMPLIED>

13.3 ルーティング・エンジンで使用されるデータ構造

ルーティング・エンジンを使用する各データベース・ユーザーは、各自のスキーマに次の表を持っている必要があります。

EDGE表およびNODE表には、ルーティング・エンジンで使用する街路ネットワークに関するエッジおよびノードの情報が格納されます。街路ネットワークの通りセグメント、交差点およびその他のエンティティを、エッジおよびノードを使用して表現する方法を理解するには、Oracle Spatialネットワーク・データ・モデル(『Oracle Spatialトポロジおよびネットワーク・データ・モデル開発者ガイド』を参照)を熟知している必要があります。

これ以降の項では、ルーティング・エンジンで使用する表について、表名のアルファベット順に説明します。

13.3.1 EDGE表

EDGE表には、街路ネットワークの方向付きエッジごとに1つの行が含まれます。それぞれの通りセグメント(2つのノード間の道路の一部)は、方向のないエッジで、EDGE表内の1つ以上の方向付きエッジに対応します。このEDGE表に含まれる列を、表13-1に示します。

表13-1 EDGE表

列名 データ型 説明

EDGE_ID

NUMBER

エッジID番号です。

START_NODE_ID

NUMBER

このエッジの開始ノードのノードID番号です。

END_NODE_ID

NUMBER

このエッジの終了ノードのノードID番号です。

PARTITION_ID

NUMBER

このエッジが含まれるネットワーク・パーティションのパーティションID番号です。

FUNC_CLASS

NUMBER

1から5の数字で表す道路機能クラスです。1は大規模で交通量が多い高速道路を示し、通常、数字が大きくなるに従って、規模、走行速度および交通量が小さくなります。クラス2の道路は安定した速度が維持され、クラス1の道路へのアクセスに使用されます。クラス3の道路は交通量が多く、クラス2の道路への接続に使用されます。クラス4の道路は、近隣の地区の間の輸送に使用されます(たとえば、交通量が多い市内の主要道など)。クラス5の道路は、その他のすべての道路です(たとえば、郊外の小規模な交通量の少ない通りなど)。

LENGTH

NUMBER

このエッジの長さ(m)です。

SPEED_LIMIT

NUMBER

このエッジに割り当てられた制限速度(m/s)です。

GEOMETRY

SDO_GEOMETRY

このエッジを表す線ストリング・ジオメトリです(座標は、開始ノードから終了ノードの順に並びます)。

NAME

VARCHAR2(128)

このエッジの名前です。

DIVIDER

VARCHAR2(1)

値がNの場合は、エッジが分割されていないことを示します。他の値は、分割されたエッジ上の回転を許容するかどうか、許容する場合はその場所および方法を示します。(現在のルーティング・エンジンでは、エッジが分割されているかどうかのみを考慮しています。)


13.3.2 NODE表

NODE表には、街路ネットワーク内の1つ以上のエッジの開始ノードまたは終了ノードごとに1つの行が含まれます。ノードは、ほとんどの場合、交差点(2つのエッジの交差部分)に対応しますが、交差点と無関係な場合もあります(たとえば、袋小路や行き止まりの通りの終点など)。このNODE表に含まれる列を、表13-2に示します。

表13-2 NODE表

列名 データ型 説明

NODE_ID

NUMBER

ノードID番号です。

GEOMETRY

SDO_GEOMETRY

このノードを表す点ジオメトリです。

PARTITION_ID

NUMBER

このノードが含まれるネットワーク・パーティションのパーティションID番号です。


13.3.3 PARTITION表

PARTITION表は、EDGE表とNODE表の内容に基づいて、Oracleによって生成されます。このPARTITION表に含まれる列を、表13-3に示します。

表13-3 PARTITION表

列名 データ型 説明

PARTITION_ID

NUMBER

パーティションID番号です。

SUBNETWORK

BLOB

このパーティションに含まれているネットワークの一部です。

NUM_NODES

NUMBER

このパーティションのノード数です。

NUM_NON_BOUNDARY_EDGES

NUMBER

このパーティション内のエッジであり、このパーティションに完全に含まれるエッジの数です。

NUM_OUTGOING_BOUNDARY_EDGES

NUMBER

このパーティション内のエッジであり、開始点がこのパーティションで、終了点が別のパーティションであるエッジの数です。(1つのエッジが2つを超えるパーティションにまたがることはできません。たとえば、あるパーティションを起点とするエッジが、2番目のパーティションを通過して3番目のパーティションで終了することはできません。)

NUM_INCOMING_BOUNDARY_EDGES

NUMBER

このパーティション内のエッジであり、開始点が別のパーティションで、終了点がこのパーティションであるエッジの数です。(1つのエッジが2つを超えるパーティションにまたがることはできません。たとえば、あるパーティションを起点とするエッジが、2番目のパーティションを通過して3番目のパーティションで終了することはできません。)


13.3.4 SIGN_POST表

SIGN_POST表には、運転方向の生成に使用する標識情報が格納されます。たとえば、ある標識は、US Route 3 South上のExit 33AがWinchesterに向かうことを示すことができます。SIGN_POSTの行は、高速道路の出口ランプの物理的な標識に対応させることができますが、必ずしも物理的な標識に対応させる必要はありません。SIGN_POST表に含まれる列を、表13-4に示します。

表13-4 SIGN_POST表

列名 データ型 説明

FROM_EDGE_ID

NUMBER

この標識が適用されるエッジのエッジID番号です(たとえば、出口ランプが含まれる通りセグメント)。

TO_EDGE_ID

NUMBER

この標識が指す先のエッジのエッジID番号です(たとえば、出口ランプの先にある通りセグメント)。

RAMP

VARCHAR2(64)

ランプのテキストです(たとえば、US-3 SOUTH)。

EXIT

VARCHAR2(8)

出口番号です(たとえば、33A)。

TOWARD

VARCHAR2(64)

出口の先にある場所を示すテキストです(たとえば、WINCHESTER)。