25 SDO_GCDRパッケージ(ジオコーディング)

MDSYS.SDO_GCDRパッケージにはジオコーディングを実行するためのサブプログラムが含まれています。

この章で説明するサブプログラムを使用する場合は、ジオコーディングの概念および使用方法を理解しておく必要があります(「住所データのジオコーディング」を参照)。

ノート:

この章では、これらのサブプログラムのリファレンス情報をアルファベット順に説明します。

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;

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を参照してください。

このファンクションは、入力パラメータに応じて次の操作を実行します。各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。

  • 形式化された住所のジオコーディング: ファンクションのパラメータ(streetcityregionpostal_codecc2など)に対応する住所フィールドを指定します。

    このファンクションでは、ジオコーディング操作のデフォルトの一致モードとして'DEFAULT'が使用されることに注意してください。詳細は、「一致モード」を参照してください。

    「例-1」を参照してください。

  • 形式化されていない住所のジオコーディング: 完全な住所が単一のフィールドに格納されている(つまり、形式化されていない)場合、完全な住所に対応するaddressフィールドを指定します。

    「例-2」を参照してください。

  • 位置の逆ジオコーディング: 経度および緯度の座標を指定する必要があり、ファンクションはJSON形式で住所を戻します。

    「例-3」を参照してください。

例-1

次の例では、デフォルトの一致モードを使用して、形式化された住所をジオコードします。この場合、この住所の経度と緯度の座標が、それぞれ-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?"}]}]
例-2

次の例では、形式化されていない住所をジオコードします。この場合、この住所の経度と緯度の座標が、それぞれ-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?"}]}]
例-3

次の例では、地理的位置を逆にジオコードします。経度(-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?"}]}]

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を参照してください。

このファンクションは、入力パラメータに応じて次の操作を実行します。各パラメータ入力には、表またはビューの列、または明示的な文字列または数値を指定できます。

  • 形式化された住所のジオコーディング: ファンクションのパラメータ(streetcityregionpostal_codecc2など)に対応する住所フィールドを指定します。

    このファンクションでは、ジオコーディング操作のデフォルトの一致モードとして'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] }

25.4 SDO_GCDR.ELOC_GRANT_ACCESS

構文

SDO_GCDR.ELOC_GRANT_ACCESS(
     user_name IN VARCHAR2);

説明

Autonomous DatabaseインスタンスでOracle Mapsジオコーダをコールする権限をユーザーに付与します。

パラメータ

user_name

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.

25.5 SDO_GCDR.ELOC_REVOKE_ACCESS

構文

SDO_GCDR.ELOC_REVOKE_ACCESS(
     user_name IN VARCHAR2);

説明

ユーザーがAutonomous DatabaseインスタンスでOracle Mapsジオコーダをコールする権限を取り消します。

パラメータ

user_name

Oracle Mapsクラウド・サービスへのアクセスが取り消されるユーザーの名前。

使用上のノート

ノート:

SDO_GCDR.ELOC_REVOKE_ACCESSファンクションは、Oracle Autonomous Databaseサーバーレス・デプロイメントでのみサポートされています。

Autonomous Databaseインスタンスで、ADMINユーザーとしてSDO_GCDR.ELOC_REVOKE_ACCESSファンクションを起動する必要があります。

次の例では、ユーザーSCOTTAutonomous Databaseインスタンスでジオコーダ機能を使用するための権限を取り消します。

EXEC SDO_GCDR.ELOC_REVOKE_ACCESS('SCOTT');

PL/SQL procedure successfully completed.

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?')

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?')

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?'))

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?'))

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)

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オブジェクトとして戻します。

パラメータ

username

ジオコーディングを行うデータを含む表を所有するユーザー名を指定します。

location

逆にジオコードする点の位置を指定するSDO_GEOMETRYオブジェクト。

country

国名またはISOの国コード。

使用上のノート

このファンクションは、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?')