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
-
ルーティング・プリファレンス。
サポートされる値は、
shortest
、fastest
およびtraffic
です。 - distance_unit
-
距離の単位。
サポートされる値は、
mile
、kilometer
、km
およびmeter
です。 - time_unit
-
時間の単位。
サポートされる値は、
hour
、minute
および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_longitude
、start_latitude
、end_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]]}
親トピック: SDO_GCDRパッケージ(ジオコーディング)