24.8 SDO_GCDR.ELOC_ROUTE

書式

SDO_GCDR.ELOC_ROUTE(
  route_preference        IN  VARCHAR2,
  distance_unit           IN  VARCHAR2,
  time_unit               IN  VARCHAR2,  
  start_address           IN  VARCHAR2,    
  end_address             IN  VARCHAR2,    
  country                 IN  VARCHAR2,    
  vehicle_type            IN  VARCHAR2,    
  print_request_response  IN  VARCHAR2 DEFAULT 'FALSE'
) RETURN CLOB;

または

SDO_GCDR.ELOC_ROUTE(
  route_preference        IN  VARCHAR2,
  distance_unit           IN  VARCHAR2,
  time_unit               IN  VARCHAR2,  
  start_longitude         IN  NUMBER,
  start_latitude          IN  NUMBER,    
  end_longitude           IN  NUMBER,    
  end_latitude            IN  NUMBER,
  vehicle_type            IN  VARCHAR2,    
  print_request_response  IN  VARCHAR2 DEFAULT 'FALSE'
) RETURN CLOB;

説明

2つの場所の間のルートを計算し、ルート距離、ルート時間およびルートのジオメトリを含むJSON CLOBオブジェクトをGeoJSON形式で返します。

入力場所は、単一行アドレスにすることも、地理座標で指定することもできます。

パラメータ

route_preference

ルーティング・プリファレンス。

サポートされる値は、shortestfastestおよびtrafficです。

distance_unit

距離の単位。

サポートされる値は、milekilometerkmおよびmeterです。

time_unit

時間の単位。

サポートされる値は、hourminuteおよびsecondです。

start_address

完全な開始住所(別々のフィールドに形式化されていません)。

end_address

完全な終了住所(別々のフィールドに形式化されていません)。

country

ISOの2文字の国コード。サポートされているコードのリストを表示するには、ISO Online Browsing Platform (OBP)Country codesを参照してください。

start_longitude

開始点の経度値。

start_latitude

開始点の緯度値。

end_longitude

終了点の経度値。

end_latitude

終了点の緯度値。

vehicle_type

距離の計算に考慮される車両のタイプ。

サポートされる値は、autoおよびtruckです

print_request_response

送信されたリクエストおよび受信したレスポンスを印刷するかどうかを決定します。

デフォルトでは、パラメータ値はFALSEです。

使用上のノート

ノート:

SDO_GCDR.ELOC_ROUTEファンクションは、Oracle Autonomous Databaseでのみサポートされています。

Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。

SDO_GCDR.ELOC_ROUTEファンクションは、次のパラメータ・セットのいずれかを受け入れて、2点の間のルートを決定できます:

  • 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、start_addressおよびend_addressパラメータを指定します。
  • 地理座標の使用: start_longitudestart_latitudeend_longitudeおよびend_latitudeパラメータを指定して、出発地と目的地を決定します。

各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。

次に、出力JSONオブジェクトのスキーマについて説明します:

{
 "type": "object",
  "properties": {
    "routeResponse": {
      "type": "object",
      "properties": {
        "route": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "distance": {
              "type": "string"
            },
            "distanceUnit": {
              "type": "string"
            },
            "time": {
              "type": "string"
            },
            "timeUnit": {
              "type": "string"
            },
            "geometry": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },

                "coordinates": {
                  "type": "array",
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                }
              },
              "required": [. .]
            }
          },
          "required": [..]
        }
      },
      "required": [..]
    }
  },

  "required": [..]
}

次の例では、SDO_GCDR.ELOC_ROUTEファンクションを呼び出し、2つの地理座標間で自動車によって取得された最速のルートを計算します。ルート距離、移動時間およびルート・ジオメトリの出力値は、JSON_VALUEおよびJSON_QUERYファンクションを使用して結果のJSONオブジェクトから抽出されることに注意してください:

WITH x AS
(SELECT SDO_GCDR.ELOC_ROUTE('fastest', 'km', 'minute', -71.46439, 42.75875,-71.46278, 42.7553, 'auto') AS t FROM DUAL)
SELECT json_value(t, '$.routeResponse.route.time') AS TIME,
       json_value(t, '$.routeResponse.route.distance') AS DIST,
       json_query(t, '$.routeResponse.route.geometry' RETURNING CLOB
                  ) AS GEOM
FROM x;

TIME DIST GEOM                                                                                                
---- ---- ---------------------------------------------------------------------------------------------------
0.7  0.41 {"type":"LineString","coordinates":[[-71.4643900005,42.7587499999],[-71.46439,42.75875],
                                              [-71.46433,42.75862],[-71.46431,42.75858],[-71.46421,42.75837],
											  [-71.4641,42.75813],[-71.46397,42.75785],[-71.46375,42.75739],
											  [-71.4637,42.75728],[-71.46368,42.75724],[-71.46359,42.75706],
											  [-71.46351,42.75689],[-71.46333,42.75656],[-71.46326,42.75639],
											  [-71.46312,42.75605],[-71.46296,42.75568],[-71.46278,42.7553]]}