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を除き、ジオコーディング・ファンクションではサポート参照データの取得およびロードが必要です。詳細は、「ジオコーディングのデータ構造」を参照してください。
この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。
- SDO_GCDR.CREATE_PROFILE_TABLES
- SDO_GCDR.ELOC_GEOCODE
- SDO_GCDR.ELOC_GEOCODE_AS_GEOM
- SDO_GCDR.ELOC_GRANT_ACCESS
- SDO_GCDR.ELOC_REVOKE_ACCESS
- 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_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.3 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.4 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.5 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.6 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.7 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.8 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.9 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.10 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.11 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パッケージ(ジオコーディング)