25 SDO_GCDRパッケージ(ジオコーディング)
MDSYS.SDO_GCDRパッケージにはジオコーディングを実行するためのサブプログラムが含まれています。
この章で説明するサブプログラムを使用する場合は、ジオコーディングの概念および使用方法を理解しておく必要があります(「住所データのジオコーディング」を参照)。
ノート:
- SDO_GCDR.ELOC_GEOCODEおよびSDO_GCDR.ELOC_GEOCODE_AS_GEOMは、ホストされたジオコーディング・サービスを利用し、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみ使用できます。
- SDO_GCDR.ELOC_GEOCODEおよびSDO_GCDR.ELOC_GEOCODE_AS_GEOMを除き、ジオコーディング・ファンクションではサポート参照データの取得およびロードが必要です。詳細は、「ジオコーディングのデータ構造」を参照してください。
- 次のサブプログラムは、Oracle Spatialのルーティング機能をサポートしており、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみ使用できます:
この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
- SDO_GCDR.CREATE_PROFILE_TABLES
- SDO_GCDR.ELOC_DRIVE_TIME_POLYGON
- SDO_GCDR.ELOC_GEOCODE
- SDO_GCDR.ELOC_GEOCODE_AS_GEOM
- SDO_GCDR.ELOC_GRANT_ACCESS
- SDO_GCDR.ELOC_ISO_POLYGON
- SDO_GCDR.ELOC_REVOKE_ACCESS
- SDO_GCDR.ELOC_ROUTE
- SDO_GCDR.ELOC_ROUTE_DISTANCE
- SDO_GCDR.ELOC_ROUTE_GEOM
- SDO_GCDR.ELOC_ROUTE_TIME
- SDO_GCDR.GEOCODE
- SDO_GCDR.GEOCODE_ADDR
- SDO_GCDR.GEOCODE_ADDR_ALL
- SDO_GCDR.GEOCODE_ALL
- SDO_GCDR.GEOCODE_AS_GEOMETRY
- SDO_GCDR.REVERSE_GEOCODE
親トピック: リファレンス情報
25.1 SDO_GCDR.CREATE_PROFILE_TABLES
構文
SDO_GCDR.CREATE_PROFILE_TABLES;
説明
コール元のスキーマにCG_COUNTRY_PROFILE表、GC_PARSER_PROFILES表およびGC_PARSER_PROFILEAFS表を作成します。
パラメータ
なし。
使用上のノート
このプロシージャは、ジオコーディング・データ・プロバイダがGC_PARSER_PROFILES表およびGC_PARSER_PROFILEAFS表を提供していない場合にのみ使用します。詳細は、「プロファイル表のインストール」を参照してください。
例
次の例では、コール元のスキーマにGC_PARSER_PROFILES表およびGC_PARSER_PROFILEAFS表を作成します。
EXECUTE SDO_GCDR.CREATE_PROFILE_TABLES;
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.2 SDO_GCDR.ELOC_DRIVE_TIME_POLYGON
構文
SDO_GCDR.ELOC_DRIVE_TIME_POLYGON(
route_preference IN VARCHAR2,
start_address IN VARCHAR2,
country IN VARCHAR2,
cost IN NUMBER,
cost_unit IN VARCHAR2,
vehicle_type IN VARCHAR2,
print_request_response IN VARCHAR2 DEFAULT 'FALSE');
または
SDO_GCDR.ELOC_DRIVE_TIME_POLYGON(
route_preference IN VARCHAR2,
longitude IN NUMBER,
latitude IN NUMBER,
cost IN NUMBER,
cost_unit IN VARCHAR2,
vehicle_type IN VARCHAR2,
print_request_response IN VARCHAR2 DEFAULT 'FALSE');
説明
指定されたコストの入力場所を囲むドライブ時間ポリゴンを計算し、ポリゴンのジオメトリをSDO_GEOMETRY
形式で返します。
入力場所には、単一行アドレスを指定することも、経度および緯度を指定することもできます。
パラメータ
- route_preference
-
ルーティング・プリファレンス。
サポートされる値は、
shortest
、fastest
およびtraffic
です。 - start_address
-
完全な開始住所(別々のフィールドに形式化されていません)。
- country
-
ISOの2文字の国コード。サポートされているコードのリストを表示するには、ISO Online Browsing Platform (OBP)のCountry codesを参照してください。
- longitude
-
開始点の経度値。
- latitude
-
開始点の緯度値。
- cost
-
ポリゴンの距離または時間境界。
- cost_unit
-
コストの単位。
サポートされる値は、
mile
、kilometer
、km
、meter
、hour
、minute
、second
です。 - vehicle_type
-
距離の計算に考慮される車両のタイプ。
サポートされる値は、
auto
およびtruck
です - print_request_response
-
送信されたリクエストおよび受信したレスポンスを印刷するかどうかを決定します。
デフォルトでは、パラメータ値は
FALSE
です。
使用上のノート
ノート:
SDO_GCDR.ELOC_DRIVE_TIME_POLYGON
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
SDO_GCDR.ELOC_DRIVE_TIME_POLYGON
ファンクションは、次の入力パラメータのセットのいずれかを受け入れて、指定された場所を囲むドライブ時間ポリゴンを(ジオメトリとして)計算できます。
- 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、
start_address
パラメータを指定します。 - 地理座標の使用:
longitude
およびlatitude
パラメータを指定して場所を決定します。
各パラメータ入力には、表またはビューの列、または明示的な文字列または数値も指定できます。
例
次の例では、トラックの住所を囲む最速のドライブ時間ポリゴンを計算します:
SELECT SDO_GCDR.ELOC_DRIVE_TIME_POLYGON('fastest', '1 Oracle Dr, Nashua, NH', 'US', 1, 'minute', 'truck') polygon FROM DUAL;
POLYGON(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
------------------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 4326, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(-71.46924,
42.76051, -71.46928, 42.76, -71.46919, 42.75975, -71.46911, 42.75962, -71.46899, 42.7594,
-71.46974, 42.75638, -71.47012, 42.75626, -71.47038, 42.75617, -71.46688, 42.7552, -71.46602,
42.75482, -71.46409, 42.75397, -71.46244, 42.75343, -71.4618, 42.75311, -71.46102, 42.7542,
-71.46054, 42.75496, -71.45947, 42.75647, -71.45924, 42.75761, -71.45815, 42.75858, -71.45741,
42.75912, -71.45813, 42.75955, -71.45959, 42.76009, -71.46187, 42.76099, -71.46227, 42.76177,
-71.46266, 42.76243, -71.46354, 42.76268,-71.46447, 42.76344, -71.46639, 42.76425, -71.4668,
42.76412, -71.46668, 42.76387, -71.46683, 42.7625, -71.46732, 42.76183, -71.46924, 42.76051))
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.3 SDO_GCDR.ELOC_GEOCODE
構文
SDO_GCDR.ELOC_GEOCODE(
street IN VARCHAR2,
city IN VARCHAR2,
region IN VARCHAR2,
postal_code IN VARCHAR2,
cc2 IN VARCHAR2,
match_mode IN VARCHAR2 default 'DEFAULT');
または
SDO_GCDR.ELOC_GEOCODE(address IN VARCHAR2);
または
SDO_GCDR.ELOC_GEOCODE(
longitude IN NUMBER,
latitude IN NUMBER);
説明
形式化された(別々のフィールドの住所部分)または形式化されていない(単一の文字列フィールドの完全な住所)住所をジオコードし、地理座標およびジオコーディング・メタデータを含む標準化された住所をJSON形式で戻します。
経度および緯度の入力の場合、ファンクションは位置を逆にジオコードし、JSON形式で住所を戻します。
パラメータ
- street
-
通りの名前。
- city
-
市区町村の名前。
- region
-
リージョンの名前。
- postal_code
-
郵便番号。
- cc2
-
ISOの2文字の国コード。サポートされているコードのリストを表示するには、ISO Online Browsing Platform (OBP)のCountry codesを参照してください。
- match_mode
-
ジオコーディング操作の一致モードを指定します。一致モードの詳細は、「一致モード」を参照してください。
- address
-
完全な住所(別々のフィールドに形式化されていません)。
- longitude
-
逆ジオコーディング操作の経度値。
- latitude
-
逆ジオコーディング操作の緯度値。
使用上のノート
ノート:
SDO_GCDR.ELOC_GEOCODE
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
このファンクションは、入力パラメータに応じて次の操作を実行します。各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。
- 形式化された住所のジオコーディング: ファンクションのパラメータ(
street
、city
、region
、postal_code
、cc2
など)に対応する住所フィールドを指定します。このファンクションでは、ジオコーディング操作のデフォルトの一致モードとして
'DEFAULT'
が使用されることに注意してください。詳細は、「一致モード」を参照してください。「例-1」を参照してください。
- 形式化されていない住所のジオコーディング: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、完全な住所に対応する
address
フィールドを指定します。「例-2」を参照してください。
- 位置の逆ジオコーディング: 経度および緯度の座標を指定する必要があり、ファンクションはJSON形式で住所を戻します。
「例-3」を参照してください。
例
次の例では、デフォルトの一致モードを使用して、形式化された住所をジオコードします。この場合、この住所の経度と緯度の座標が、それぞれ-71.07355166666666および42.355174166666664として戻されます。
SELECT SDO_GCDR.ELOC_GEOCODE('123 Beacon St', 'Boston', 'MA', '02116' , 'US') FROM DUAL;
[{"id":"0","matchCount":"1","matches":[{"sequence":"0","x":-71.07355166666666,"y":42.355174166666664,
"houseNumber":"123","street":"Beacon St","settlement":"Boston","municipality":"Suffolk","region":"MA",
"postalCode":"02116","country":"US","language":"ENG","name":"","edgeId":946710796,
"percent":0.08333333333333333,"side":"R","matchCode":1,"matchVector":"???10101010??000?"}]}]
次の例では、形式化されていない住所をジオコードします。この場合、この住所の経度と緯度の座標が、それぞれ-71.07355166666666および42.355174166666664として戻されます。
SELECT SDO_GCDR.ELOC_GEOCODE('123 Beacon St, Boston MA, 02116, US') FROM DUAL;
[{"id":"0","matchCount":"1","matches":[{"sequence":"0","x":-71.07355166666666,"y":42.355174166666664,
"houseNumber":"123","street":"Beacon St","settlement":"Boston","municipality":"Suffolk","region":"MA",
"postalCode":"02116","country":"US","language":"ENG","name":"","edgeId":946710796,
"percent":0.08333333333333333,"side":"R","matchCode":1,"matchVector":"???10101010??000?"}]}]
次の例では、地理的位置を逆にジオコードします。経度(-71.073551
)および緯度(42.355174
)の座標の住所を戻します。
SELECT SDO_GCDR.ELOC_GEOCODE(-71.073551, 42.355174) FROM DUAL;
[{"id":"0","matchCount":"1","matches":[{"sequence":"0","x":-71.07355109772594,"y":42.35517433341787,
"houseNumber":"123","street":"Beacon St","settlement":"Boston","municipality":"Suffolk","region":"MA",
"postalCode":"02116","country":"US","language":"ENG","name":"","edgeId":946710796,
"percent":0.08431426223078922,"side":"R","matchCode":1,"matchVector":"???14141414??404?"}]}]
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.4 SDO_GCDR.ELOC_GEOCODE_AS_GEOM
構文
SDO_GCDR.ELOC_GEOCODE_AS_GEOM(
street IN VARCHAR2,
city IN VARCHAR2,
region IN VARCHAR2,
postal_code IN VARCHAR2,
cc2 IN VARCHAR2,
match_mode IN VARCHAR2 default 'DEFAULT');
または
SDO_GCDR.ELOC_GEOCODE_AS_GEOM(address IN VARCHAR2);
説明
形式化された(別々のフィールドの住所部分)または形式化されていない(単一の文字列フィールドの完全な住所)住所をジオコードし、地理座標およびジオコーディング・メタデータを含む標準化された住所をSDO_GEOMETRYオブジェクトとして戻します。
パラメータ
- street
-
通りの名前。
- city
-
市区町村の名前。
- region
-
リージョンの名前。
- postal_code
-
郵便番号。
- cc2
-
ISOの2文字の国コード。サポートされているコードのリストを表示するには、ISO Online Browsing Platform (OBP)のCountry codesを参照してください。
- match_mode
-
ジオコーディング操作の一致モードを指定します。一致モードの詳細は、「一致モード」を参照してください。
- address
-
完全な住所(別々のフィールドに形式化されていません)。
使用上のノート
ノート:
SDO_GCDR.ELOC_GEOCODE_AS_GEOM
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
このファンクションは、入力パラメータに応じて次の操作を実行します。各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。
- 形式化された住所のジオコーディング: ファンクションのパラメータ(
street
、city
、region
、postal_code
、cc2
など)に対応する住所フィールドを指定します。このファンクションでは、ジオコーディング操作のデフォルトの一致モードとして
'DEFAULT'
が使用されることに注意してください。詳細は、「一致モード」を参照してください。 - 形式化されていない住所のジオコーディング: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、完全な住所に対応する
address
フィールドを指定します。
例
次の例では、デフォルトの一致モードを使用して、形式化された住所をジオコードし、出力をSDO_GEOMETRY
オブジェクトとして戻します。
SELECT SDO_GCDR.ELOC_GEOCODE_AS_GEOM('123 Beacon St', 'Boston', 'MA', '02116' , 'US') FROM DUAL;
MDSYS.SDO_GEOMETRY(2001, 4326,
MDSYS.SDO_POINT_TYPE(-71.07355166666666, 42.355174166666664, NULL), NULL, NULL)
Autonomous Databaseインスタンスのデータベース・アクションでSQLワークシートを使用している場合、すべてのオブジェクト・タイプ(SDO_GEOMETRY
を含む)が[object Object]
として表示されることに注意してください。SQLワークシートに結果を表示するには、次のようにGet_GeoJSON( )
メソッドを適用して、結果をGeoJSON文字列に変換します:
SELECT (SDO_GCDR.ELOC_GEOCODE_AS_GEOM('123 Beacon St', 'Boston', 'MA', '02116' , 'US')).GET_GEOJSON() FROM DUAL;
{ "type": "Point", "coordinates": [-71.07355166666666, 42.355174166666664] }
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.5 SDO_GCDR.ELOC_GRANT_ACCESS
構文
SDO_GCDR.ELOC_GRANT_ACCESS(
user_name IN VARCHAR2);
説明
Autonomous DatabaseインスタンスでOracle Mapsジオコーダをコールする権限をユーザーに付与します。
使用上のノート
ノート:
SDO_GCDR.ELOC_GRANT_ACCESS
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスで、ADMINユーザーとしてSDO_GCDR.ELOC_GRANT_ACCESS
ファンクションを起動する必要があります。
例
次の例では、Autonomous Databaseインスタンスでジオコーダ機能を使用するためのアクセス権をユーザーSCOTT
に付与します。
EXEC SDO_GCDR.ELOC_GRANT_ACCESS('SCOTT');
PL/SQL procedure successfully completed.
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.6 SDO_GCDR.ELOC_ISO_POLYGON
構文
SDO_GCDR.ELOC_ISO_POLYGON(
iso IN VARCHAR2,
start_address IN VARCHAR2,
country IN VARCHAR2,
cost IN NUMBER,
cost_unit IN VARCHAR2,
vehicle_type IN VARCHAR2,
print_request_response IN VARCHAR2 DEFAULT 'FALSE');
または
SDO_GCDR.ELOC_ISO_POLYGON(
iso IN VARCHAR2,
longitude IN NUMBER,
latitude IN NUMBER,
cost IN NUMBER,
cost_unit IN VARCHAR2,
vehicle_type IN VARCHAR2,
print_request_response IN VARCHAR2 DEFAULT 'FALSE');
説明
指定されたコストの入力場所の周囲でドライブ時間ポリゴンを計算し、ポリゴンのコスト、コスト単位およびジオメトリを含むJSONオブジェクトをGeoJSON形式で返します。
入力場所には、単一行アドレスを指定することも、経度および緯度を指定することもできます。
パラメータ
- iso
-
時間ベースまたは距離ベースのポリゴンかどうかを決定します。
サポートされている値は次のとおりです:distance
: これは距離ベースのポリゴンに適用されます。time
: これは時間ベースのポリゴンに適用されます。
- start_address
-
完全な開始住所(別々のフィールドに形式化されていません)。
- country
-
ISOの2文字の国コード。サポートされているコードのリストを表示するには、ISO Online Browsing Platform (OBP)のCountry codesを参照してください。
- longitude
-
開始点の経度値。
- latitude
-
開始点の緯度値。
- cost
-
ポリゴンの距離または時間境界。
- cost_unit
-
コストの単位。
サポートされる値は、
mile
、kilometer
、km
、meter
、hour
、minute
、second
です。 - vehicle_type
-
距離の計算に考慮される車両のタイプ。
サポートされる値は、
auto
およびtruck
です - print_request_response
-
送信されたリクエストおよび受信したレスポンスを印刷するかどうかを決定します。
デフォルトでは、パラメータ値は
FALSE
です。
使用上のノート
ノート:
SDO_GCDR.ELOC_ISO_POLYGON
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
SDO_GCDR.ELOC_ISO_POLYGON
ファンクションは、次の入力パラメータのセットのいずれかを受け入れて、場所の周囲でドライブ時間ポリゴンを(JSONオブジェクトとして)計算できます。
- 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、
start_address
パラメータを指定します。 - 地理座標の使用:
longitude
およびlatitude
パラメータを指定して場所を決定します。
各パラメータ入力には、表またはビューの列、または明示的な文字列または数値も指定できます。
次に、JSON出力のスキーマについて説明します:
{
"type": "object",
"properties": {
"routeResponse": {
"type": "object",
"properties": {
"driveTimePolygon": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"cost": {
"type": "string"
},
"unit": {
"type": "string"
},
"geometry": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
},
"required": [..]
}
},
"required": [..]
}
},
"required": [..]
}
},
"required": [..]
}
例
次の例では、自動車の住所を囲むドライブ時間ポリゴンを計算します。コスト、単位およびポリゴン・ジオメトリの出力値は、JSON_VALUE
およびJSON_QUERY
ファンクションを使用して結果のJSONオブジェクトから抽出されることに注意してください:
WITH x AS
(SELECT SDO_GCDR.ELOC_ISO_POLYGON('time', '1 Oracle Drive, Nashua, NH', 'US', 1, 'minute', 'auto') AS t FROM DUAL)
SELECT json_value(t, '$.routeResponse.driveTimePolygon.cost') AS cost,
json_value(t, '$.routeResponse.driveTimePolygon.unit') AS unit,
json_query(t, '$.routeResponse.driveTimePolygon.geometry' RETURNING clob) AS geom
FROM x;
1
minute
{"type":"Polygon","coordinates":[[[-71.46924,42.76051],[-71.46928,42.76],[-71.46919,42.75975],[-71.46911,42.75962],
[-71.46899,42.7594],[-71.46974,42.75638],[-71.47012,42.75626],[-71.47038,42.75617],
[-71.46688,42.7552],[-71.46602,42.75482],[-71.46409,42.75397],[-71.46244,42.75343],
[-71.4618,42.75311],[-71.46102,42.7542],[-71.46054,42.75496],[-71.45947,42.75647],
[-71.45924,42.75761],[-71.45815,42.75858],[-71.45741,42.75912],[-71.45813,42.75955],
[-71.45959,42.76009],[-71.46187,42.76099],[-71.46227,42.76177],[-71.46266,42.76243],
[-71.46354,42.76268],[-71.46447,42.76344],[-71.46639,42.76425],[-71.4668,42.76412],
[-71.46668,42.76387],[-71.46683,42.7625],[-71.46732,42.76183],[-71.46924,42.76051]]]}
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.7 SDO_GCDR.ELOC_REVOKE_ACCESS
構文
SDO_GCDR.ELOC_REVOKE_ACCESS(
user_name IN VARCHAR2);
説明
ユーザーがAutonomous DatabaseインスタンスでOracle Mapsジオコーダをコールする権限を取り消します。
使用上のノート
ノート:
SDO_GCDR.ELOC_REVOKE_ACCESS
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスで、ADMINユーザーとしてSDO_GCDR.ELOC_REVOKE_ACCESS
ファンクションを起動する必要があります。
例
次の例では、ユーザーSCOTT
がAutonomous Databaseインスタンスでジオコーダ機能を使用するための権限を取り消します。
EXEC SDO_GCDR.ELOC_REVOKE_ACCESS('SCOTT');
PL/SQL procedure successfully completed.
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.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');
または
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');
説明
2つの場所の間のルートを計算し、ルート距離、ルート時間およびルートのジオメトリを含むJSONオブジェクトを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パッケージ(ジオコーディング)
25.9 SDO_GCDR.ELOC_ROUTE_DISTANCE
構文
SDO_GCDR.ELOC_ROUTE_DISTANCE(
route_preference IN VARCHAR2,
distance_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');
または
SDO_GCDR.ELOC_ROUTE_DISTANCE(
route_preference IN VARCHAR2,
distance_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');
説明
2つの場所の間のルート距離を計算します。
入力場所は、単一行アドレスにすることも、地理座標で指定することもできます。
パラメータ
- route_preference
-
ルーティング・プリファレンス。
サポートされる値は、
shortest
、fastest
およびtraffic
です。 - distance_unit
-
距離の単位。
サポートされる値は、
mile
、kilometer
、km
およびmeter
です。 - 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_DISTANCE
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
SDO_GCDR.ELOC_ROUTE_DISTANCE
ファンクションは、次のパラメータ・セットのいずれかを受け入れて、2点の間の距離を計算できます:
- 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、
start_address
およびend_address
パラメータを指定します。 - 地理座標の使用:
start_longitude
、start_latitude
、end_longitude
およびend_latitude
パラメータを指定して、出発地と目的地を決定します。
各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。
例
次の例では、2つの住所位置間のトラックの最短ルート距離(マイル)を計算します。
SELECT SDO_GCDR.ELOC_ROUTE_DISTANCE('shortest', 'mile', '1 Oracle Dr, Nashua, NH', '77 Massachusetts Ave, Cambridge, MA', 'US', 'truck') route_dist FROM DUAL;
ROUTE_DIST
----------
33.22
次の例では、経度座標と緯度座標を使用して、2点間の自動車の最速ルート距離(マイル)を計算します。
SELECT SDO_GCDR.ELOC_ROUTE_DISTANCE('fastest', 'mile', -122.39436, 37.79579, -122.40459, 37.74211,'auto') route_dist FROM DUAL;
ROUTE_DIST
----------
4.51
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.10 SDO_GCDR.ELOC_ROUTE_GEOM
構文
SDO_GCDR.ELOC_ROUTE_GEOM(
route_preference IN VARCHAR2,
start_address IN VARCHAR2,
end_address IN VARCHAR2,
country IN VARCHAR2,
vehicle_type IN VARCHAR2,
print_request_response IN VARCHAR2 DEFAULT 'FALSE');
または
SDO_GCDR.ELOC_ROUTE_GEOM(
route_preference 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');
説明
2つの場所の間のルートを計算し、ルートのジオメトリをSDO_GEOMETRY
形式で返します。
入力場所は、単一行アドレスにすることも、地理座標で指定することもできます。
パラメータ
- route_preference
-
ルーティング・プリファレンス。
サポートされる値は、
shortest
、fastest
およびtraffic
です。 - 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_GEOM
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
SDO_GCDR.ELOC_ROUTE_GEOM
ファンクションは、次のパラメータ・セットのいずれかを受け入れて、2つのポイント間のルート・ジオメトリを決定できます:
- 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、
start_address
およびend_address
パラメータを指定します。 - 地理座標の使用:
start_longitude
、start_latitude
、end_longitude
およびend_latitude
パラメータを指定して、出発地と目的地を決定します。
各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。
例
次の例では、2つの地理座標間のトラックで取得した最短ルート・ジオメトリを計算します。
SELECT SDO_GCDR.ELOC_ROUTE_GEOM('shortest', -71.46439, 42.75875,-71.46278, 42.7553, 'truck') route_geom FROM DUAL;
ROUTE_GEOM
–-------------------------------------------------------------------------------------------------------------------------------
MDSYS.SDO_GEOMETRY(2002, 4326, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 2, 1), MDSYS.SDO_ORDINATE_ARRAY(-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, -71.46278, 42.7553))
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.11 SDO_GCDR.ELOC_ROUTE_TIME
構文
SDO_GCDR.ELOC_ROUTE_TIME(
route_preference 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');
または
SDO_GCDR.ELOC_ROUTE_TIME(
route_preference 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');
説明
2つの場所の間の移動時間を計算します。
入力場所は、単一行アドレスにすることも、地理座標で指定することもできます。
パラメータ
- route_preference
-
ルーティング・プリファレンス。
サポートされる値は、
shortest
、fastest
およびtraffic
です。 - 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_TIME
ファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。Autonomous Databaseインスタンスでこのファンクションを使用するには、必要な権限が付与されていることを確認してください。詳細は、SDO_GCDR.ELOC_GRANT_ACCESSを参照してください。
SDO_GCDR.ELOC_ROUTE_TIME
ファンクションは、次のパラメータ・セットのいずれかを受け入れて、2点の間の移動時間を計算できます:
- 形式化されていない住所の使用: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、
start_address
およびend_address
パラメータを指定します。 - 地理座標の使用:
start_longitude
、start_latitude
、end_longitude
およびend_latitude
パラメータを指定して、出発地と目的地を決定します。
各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。
例
次の例では、地理座標によって決定された2つの場所間で自動車によって取得された最速ルートの移動時間(分)を計算します。
SELECT SDO_GCDR.ELOC_ROUTE_TIME('fastest', 'minute', -122.39436, 37.79579, -122.40459, 37.74211, 'auto') route_time FROM DUAL;
ROUTE_TIME
----------
8.02
次の例では、2つの住所の間でトラックによって取得された最速ルートの移動時間(分)を計算します。また、print_request_response
パラメータがTRUE
に設定されているため、問合せによってリクエストおよびレスポンスの出力が生成されることに注意してください。
SELECT SDO_GCDR.ELOC_ROUTE_TIME('fastest', 'minute', '1 Oracle Dr, Nashua, NH', '45 Middlesex road, Tyngborough, MA', 'US', 'truck', 'TRUE') route_time FROM DUAL;
ROUTE_TIME
----------
11.24
1 row selected.
REQUEST: xml_request=<route_request id="1" route_preference="fastest"
time_unit="minute" vehicle_type="truck"> <start_location> <input_location
id="1"> <input_address><unformatted country="US" > <address_line value="1 Oracle
Dr, Nashua, NH"/> </unformatted></input_address>
</input_location></start_location> <end_location> <input_location id="2">
<input_address><unformatted country="US" > <address_line value="45 Middlesex
road, Tyngborough, MA"/> </unformatted></input_address>
</input_location></end_location> </route_request>
RESPONSE: {
"type" : "Feature",
"geometry" :
{"type":"Polygon","coordinates":[]},
"properties" : {
"requestType" :
"route",
"featureType" : "route",
"stepCount" : "0",
"dist" :
"6.3",
"distUnit" : "mile",
"time" : "11.24",
"timeUnit" : "minute"
}
}
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.12 SDO_GCDR.GEOCODE
構文
SDO_GCDR.GEOCODE( username IN VARCHAR2, addr_lines IN SDO_KEYWORDARRAY, country IN VARCHAR2, match_mode IN VARCHAR2 ) RETURN SDO_GEO_ADDR;
説明
形式化されていない住所をジオコードして、結果をSDO_GEO_ADDRオブジェクトとして戻します。
パラメータ
- username
-
ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。
- addr_lines
-
ジオコード対象の形式化されていない住所を表す文字列の配列を、引用符で囲んで指定します。SDO_KEYWORDARRAY型の詳細は、「SDO_KEYWORDARRAY型」を参照してください。
- country
-
国名またはISOの国コード。
- match_mode
-
ジオコーディング操作の一致モードを指定します。一致モードの詳細は、「一致モード」を参照してください。
使用上のノート
このファンクションは、SDO_GEOR_ADDR型のオブジェクトを戻します(「SDO_GEO_ADDR型」を参照)。実行する操作はSDO_GCDR.GEOCODE_AS_GEOMETRYファンクションと同じですが、そのファンクションはSDO_GEOMETRYオブジェクトを戻します。
例
次の例では、RELAX_BASE_NAME
一致モードを使用して、California州San Francisco市の市庁舎の住所をジオコードします。この場合、この住所の緯度と経度の座標が、それぞれ-122.41815および37.7784183として戻されます。
SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME') FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), NULL, 'CARLTON B GOODLETT PL', NULL, NULL, ' SAN FRANCISCO', NULL, 'CA', 'US', '94102', NULL, '94102', NULL, '1', 'CARLTON B GOODLETT', 'PL', 'F', 'F', NULL, NULL, 'L', .01, 23614360, '????#ENUT?B281CP?', 1, 'RELAX_BASE_NAME', -122.41815, 37.7784183, '????0101010??000?')
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.13 SDO_GCDR.GEOCODE_ADDR
構文
SDO_GCDR.GEOCODE_ADDR( gc_username IN VARCHAR2, address IN SDO_GEO_ADDR ) RETURN SDO_GEO_ADDR;
説明
SDO_GEO_ADDRオブジェクトの属性を使用して、入力された住所をジオコードし、最初に一致した住所をSDO_GEO_ADDRオブジェクトとして戻します。
パラメータ
- gc_username
-
ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。
- address
-
1つ以上の属性セットを持つSDO_GEO_ADDRオブジェクトです。SDO_GEO_ADDR型の詳細は、「SDO_GEO_ADDR型」を参照してください。
使用上のノート
このファンクションでは、入力SDO_GEO_ADDRオブジェクトで設定可能な属性を必要に応じて指定できます。このファンクションは最初に一致する住所を検索し、可能な属性セットをすべて持つSDO_GEO_ADDRオブジェクトを戻します。
形式化されていない住所行で指定した入力住所をジオコードするSDO_GCDR.GEOCODEファンクションとは異なり、SDO_GCDR.GEOCODE_ADDRファンクションは、SDO_GEO_ADDRオブジェクトで定義した個々の住所フィールドで指定した入力住所をジオコードします。形式化されていない住所行を使用する場合、入力された住所を解析して個々の住所フィールドに分解するために、ジオコーディング・ソフトウェアを使用する必要があります。通常、この処理は問題なく実行されますが、入力された住所が十分に形式化されていない場合は、不適切な結果が生成されることがあります。これに対し、入力された住所の一部をSDO_GEO_ADDRオブジェクトの属性として指定すると、ジオコーディング・エラーの発生を減少させ、適切な結果を生成することができます。
SDO_GCDR.GEOCODE_ADDRファンクションの例については、「場所名からのジオコーディング」の例12-2および例12-3を参照してください。
SDO_GCDR.GEOCODE_ADDR_ALLファンクションも参照してください(実行する操作はこのファンクションと同じですが、複数の住所を戻すことができます)。
例
次の例では、CALIFORNIA PACIFIC MEDICAL CTR
という名前の対象点のジオコード結果を戻します。この例では、create_addr_from_placename
という名前のユーザー定義ファンクション(「場所名からのジオコーディング」の例12-2で定義)を使用して入力SDO_GEO_ADDRオブジェクトを作成します。
SELECT sdo_gcdr.geocode_addr('SCOTT', create_addr_from_placename('CALIFORNIA PACIFIC MEDICAL CTR', 'US')) FROM DUAL; SDO_GCDR.GEOCODE_ADDR('SCOTT',CREATE_ADDR_FROM_PLACENAME('CALIFORNIAPACIFICME -------------------------------------------------------------------------------- SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), 'CALIFORNIA PACIFIC MEDICAL CTR-SF', 'BUCHAN AN ST', NULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94115', NULL, '94115', N ULL, '2333', NULL, NULL, 'F', 'F', NULL, NULL, 'L', 0, 23599031, '??????????B281 CP?', 4, 'DEFAULT', -122.43097, 37.79138, '????4141114??404?')
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.14 SDO_GCDR.GEOCODE_ADDR_ALL
構文
SDO_GCDR.GEOCODE_ADDR_ALL( gc_username IN VARCHAR2, address IN SDO_GEO_ADDR, max_res_num IN NUMBER DEFAULT 4000 ) RETURN SDO_ADDR_ARRAY;
説明
SDO_GEO_ADDRオブジェクトの属性を使用して、入力された住所をジオコードし、一致する住所をSDO_ADDR_ARRAYオブジェクトとして戻します(「SDO_ADDR_ARRAY型」を参照)。
パラメータ
- gc_username
-
ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。
- address
-
1つ以上の属性セットを持つSDO_GEO_ADDRオブジェクトです。SDO_GEO_ADDR型の詳細は、「SDO_GEO_ADDR型」を参照してください。
- max_res_num
-
SDO_ADDR_ARRAYオブジェクトで戻す結果の最大数を指定します。デフォルト値は4000です。
使用上のノート
このファンクションでは、入力SDO_GEO_ADDRオブジェクトで設定可能な属性を必要に応じて指定できます。このファンクションは一致する住所(最大4000またはmax_res_num
パラメータで指定した上限まで)を検索し、SDO_ADDR_ARRAYオブジェクトを戻します。このオブジェクトでは、各ジオコード結果に可能な属性セットがすべて含まれます。
このファンクションは複数の住所を戻すことができますが、それ以外は、SDO_GCDR.GEOCODE_ADDRファンクションと同じ操作を実行します。詳細は、SDO_GCDR.GEOCODE_ADDRファンクションの「使用上のノート」を参照してください。
例
次の例では、CALIFORNIA PACIFIC MEDICAL CTR
という名前の対象点のジオコード結果(最大3つ)を戻します。(ジオコーディング・データには、対象点に一致する住所が1つしか含まれないため、この場合に戻される結果は1つのみです。)この例では、create_addr_from_placename
という名前のユーザー定義ファンクション(「場所名からのジオコーディング」の例12-2で定義)を使用して入力SDO_GEO_ADDRオブジェクトを作成します。
SELECT sdo_gcdr.geocode_addr_all('SCOTT', create_addr_from_placename('CALIFORNIA PACIFIC MEDICAL CTR', 'US'), 3) FROM DUAL; SDO_GCDR.GEOCODE_ADDR_ALL('SCOTT',CREATE_ADDR_FROM_PLACENAME('CALIFORNIAPACIF -------------------------------------------------------------------------------- SDO_ADDR_ARRAY(SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), 'CALIFORNIA PACIFIC MEDICAL C TR-SF', 'BUCHANAN ST', NULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94115', N ULL, '94115', NULL, '2333', NULL, NULL, 'F', 'F', NULL, NULL, 'L', 0, 23599031, '??????????B281CP?', 4, 'DEFAULT', -122.43097, 37.79138, '????4141114??404?'))
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.15 SDO_GCDR.GEOCODE_ALL
構文
SDO_GCDR.GEOCODE_ALL( gc_username IN VARCHAR2, addr_lines IN SDO_KEYWORDARRAY, country IN VARCHAR2, match_mode IN VARCHAR2 ) RETURN SDO_ADDR_ARRAY;
説明
形式化されていない住所に関連付けられたすべての住所をジオコードして、結果をSDO_ADDR_ARRAYオブジェクトとして戻します。
パラメータ
- gc_username
-
ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。
- addr_lines
-
ジオコード対象の形式化されていない住所を表す文字列の配列を、引用符で囲んで指定します。SDO_KEYWORDARRAY型の詳細は、「SDO_KEYWORDARRAY型」を参照してください。
- country
-
国名またはISOの国コード。
- match_mode
-
ジオコーディング操作の一致モードを指定します。一致モードの詳細は、「一致モード」を参照してください。
使用上のノート
このファンクションは、SDO_ADDR_ARRAY型のオブジェクトを戻します(「SDO_ADDR_ARRAY型」を参照)。実行する操作はSDO_GCDR.GEOCODEファンクションと同じですが、複数の住所に対する結果を戻すことができます。その場合、戻されるSDO_ADDR_ARRAYオブジェクトには、複数のSDO_GEO_ADDRオブジェクトが含まれます。アプリケーションの他の操作で住所を選択する必要がある場合、戻された各住所の情報を使用して、選択を簡単に行うことができます。
戻されるSDO_ADDR_ARRAY配列の各SDO_GEO_ADDRオブジェクトは、addr_lines
パラメータの基準に一致する通りの各セグメントの中心点を示します。たとえば、大通りが2つの郵便番号の地区にまたがっている場合、または2つの別の郵便番号の地区内にそれぞれ大通りと呼ばれる通りがある場合に、このファンクションで大通り、都市および州を指定すると、戻されるSDO_ADDR_ARRAY配列には2つのSDO_GEO_ADDRオブジェクトが含まれます。各オブジェクトには、異なる郵便番号の地区にある大通りの中心点が反映されます。入力された住所に家または建物の番号が含まれていない場合、または存在しない番号が含まれている場合でも、各SDO_GEO_ADDRオブジェクトは家または建物の番号を示します。これは通りのセグメントの中心点に位置する家または建物の番号です。
例
次の例では、ジオコード結果の配列を戻します。各結果には、California州San Francisco市のClay通りを含むすべての郵便番号の地区について、その地区のClay通りの中心点が反映されます。結果の配列には4つのSDO_GEOR_ADDRオブジェクトが含まれます。各オブジェクトには、Clay通りを含む4つの地区の郵便番号(94108、94115、94118および94109)ごとに、Clay通りのセグメントの中心点に位置する家が反映されます。
SELECT SDO_GCDR.GEOCODE_ALL('SCOTT', SDO_KEYWORDARRAY('Clay St', 'San Francisco, CA'), 'US', 'DEFAULT') FROM DUAL; SDO_GCDR.GEOCODE_ALL('SCOTT',SDO_KEYWORDARRAY('CLAYST','SANFRANCISCO,CA'),'US -------------------------------------------------------------------------------- SDO_ADDR_ARRAY(SDO_GEO_ADDR(1, SDO_KEYWORDARRAY(), NULL, 'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94109', NULL, '94109', NULL, '1698', 'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', 0, 23600700, '????#ENUT?B281CP?', 1, 'DEFAULT' , -122.42093, 37.79236, '????4101010??004?'), SDO_GEO_ADDR(1, SDO_KEYWORDARRAY() , NULL, 'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94111', NULL, '94111', NULL, '398', 'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', 0, 23600678, '?? ??#ENUT?B281CP?', 1, 'DEFAULT', -122.40027, 37.79499, '????4101010??004?'), SDO_ GEO_ADDR(1, SDO_KEYWORDARRAY(), NULL, 'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NU LL, 'CA', 'US', '94108', NULL, '94108', NULL, '978', 'CLAY', 'ST', 'F', 'F', NUL L, NULL, 'L', 0, 23600689, '????#ENUT?B281CP?', 1, 'DEFAULT', -122.40904, 37.793 85, '????4101010??004?'), SDO_GEO_ADDR(1, SDO_KEYWORDARRAY(), NULL, 'CLAY ST', N ULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94115', NULL, '94115', NULL, '279 8', 'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', 0, 23600709, '????#ENUT?B281CP?', 1 , 'DEFAULT', -122.43909, 37.79007, '????4101010??004?'), SDO_GEO_ADDR(1, SDO_KEY WORDARRAY(), NULL, 'CLAY ST', NULL, NULL, 'SAN FRANCISCO', NULL, 'CA', 'US', '94 118', NULL, '94118', NULL, '3698', 'CLAY', 'ST', 'F', 'F', NULL, NULL, 'L', 0, 2 3600718, '????#ENUT?B281CP?', 1, 'DEFAULT', -122.45372, 37.78822, '????4101010?? 004?'))
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.16 SDO_GCDR.GEOCODE_AS_GEOMETRY
構文
SDO_GCDR.GEOCODE_AS_GEOMETRY( username IN VARCHAR2, addr_lines IN SDO_KEYWORDARRAY, country IN VARCHAR2 ) RETURN SDO_GEOMETRY;
説明
形式化されていない住所をジオコードして、結果をSDO_GEOMETRYオブジェクトとして戻します。
パラメータ
- username
-
ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。
- addr_lines
-
ジオコード対象の形式化されていない住所を表す文字列の配列を、引用符で囲んで指定します。SDO_KEYWORDARRAY型の詳細は、「SDO_KEYWORDARRAY型」を参照してください。
- country
-
国名またはISOの国コード。
使用上のノート
このファンクションは、SDO_GEOMETRY型のオブジェクトを戻します。実行する操作はSDO_GCDR.GEOCODEファンクションと同じですが、そのファンクションはSDO_GEOR_ADDRオブジェクトを戻します。
このファンクションでは、ジオコーディング操作の一致モードに'DEFAULT'
を使用します。一致モードの詳細は、「一致モード」を参照してください。
例
次の例では、California州San Francisco市の市庁舎の住所をジオコードします。この場合に戻されるSDO_GEOMETRYオブジェクトでは、この住所の緯度と経度の座標がそれぞれ-122.41815および37.7784183となっています。
SELECT SDO_GCDR.GEOCODE_AS_GEOMETRY('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US') FROM DUAL; SDO_GCDR.GEOCODE_AS_GEOMETRY('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL',' -------------------------------------------------------------------------------- SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-122.41815, 37.7784183, NULL), NULL, NUL L)
親トピック: SDO_GCDRパッケージ(ジオコーディング)
25.17 SDO_GCDR.REVERSE_GEOCODE
構文
SDO_GCDR.REVERSE_GEOCODE( username IN VARCHAR2, location IN SDO_GEOMETRY, country IN VARCHAR2 ) RETURN SDO_GEO_ADDR;
説明
空間ジオメトリ・オブジェクトと国で指定した位置を逆にジオコードし、結果をSDO_GEO_ADDRオブジェクトとして戻します。
パラメータ
使用上のノート
このファンクションは、SDO_GEOR_ADDR型のオブジェクトを戻します(「SDO_GEO_ADDR型」を参照)。
表GC_ROAD_SEGMENT_<table-suffix>には、空間索引を作成する必要があります。
例
次の例では、経度と緯度の値が(-122.41815, 37.7784183)の点を逆にジオコードします。この例の場合、空間索引は、GC_ROAD_SEGMENT_US表のGEOMETRY列に作成されています。
SELECT SDO_GCDR.REVERSE_GEOCODE('SCOTT', SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-122.41815, 37.7784183, NULL), NULL, NULL), 'US') FROM DUAL; SDO_GCDR.REVERSE_GEOCODE('SCOTT',SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(-122.4 -------------------------------------------------------------------------------- SDO_GEO_ADDR(0, SDO_KEYWORDARRAY(), NULL, 'POLK ST', NULL, NULL, 'SAN FRANCISCO' , NULL, 'CA', 'US', '94102', NULL, '94102', NULL, '200', 'POLK', 'ST', 'F', 'F', NULL, NULL, 'R', .00966633, 23614360, '', 1, 'DEFAULT', -122.41815, 37.7784177, '????4141414??404?')
親トピック: SDO_GCDRパッケージ(ジオコーディング)