この項では、ジオコーディングのファンクションおよびプロシージャ固有のデータ型について説明します。
SDO_GEO_ADDRオブジェクト型は、住所を記述するために使用されます。ジオコードされた住所がSDO_GCDRファンクションまたはSDO_GCDRプロシージャで出力された場合、SDO_GEO_ADDR型のオブジェクトとして格納されます。
表11-6に、SDO_GEO_ADDR型の属性を示します。属性が関連しない場合があることに注意してください。ジオコードされた住所の出力に使用される属性は、入力された住所の地理的な内容(特に国)によって異なります。
表11-6 SDO_GEO_ADDR型の属性
属性 | データ型 | 説明 |
---|---|---|
Id |
NUMBER |
(未使用) |
AddressLines |
SDO_KEYWORDARRAY |
住所の行。(SDO_KEYWORDARRAY型の詳細は、「SDO_KEYWORDARRAY型」を参照。) |
PlaceName |
VARCHAR2(200) |
対象点(POI)の名前。(たとえば、CALIFORNIA PACIFIC MEDICAL CTR) |
StreetName |
VARCHAR2(200) |
通りの種類を含む通りの名前。(たとえば、MAIN ST) |
IntersectStreet |
VARCHAR2(200) |
交差する通り。 |
SecUnit |
VARCHAR2(200) |
アパートやビルの番号などの補足情報。 |
Settlement |
VARCHAR2(200) |
住所が属する最低レベルの行政区域。(表11-1を参照。) |
Municipality |
VARCHAR2(200) |
Settlementより1つ上の行政区域。(表11-1を参照。) |
Region |
VARCHAR2(200) |
Municipality(存在する場合)より1つ上の行政区域。Municipalityが存在しない場合はSettlementより1つ上の行政区域 (表11-1を参照。) |
Country |
VARCHAR2(100) |
国名またはISOの国コード。 |
PostalCode |
VARCHAR2(20) |
郵便番号(行政区域情報が提供されている場合はオプション)。米国では、郵便番号は5桁です。 |
PostalAddOnCode |
VARCHAR2(20) |
郵便番号に付随する文字列。米国では通常、Postal add-on codeは「5-4」形式で指定される9桁の郵便番号の末尾4桁の番号を示します。 |
FullPostalCode |
VARCHAR2(20) |
郵便番号と郵便付加番号を含む完全な郵便番号。 |
POBox |
VARCHAR2(100) |
私書箱番号。 |
HouseNumber |
VARCHAR2(100) |
家またはビルの番号。(たとえば、123 MAIN STの123) |
BaseName |
VARCHAR2(200) |
通りのベース名。(たとえば、123 MAIN STのMAIN) |
StreetType |
VARCHAR2(20) |
通りの種類。(たとえば、123 MAIN STのST) |
StreetTypeBefore |
VARCHAR2(1) |
(未使用) |
StreetTypeAttached |
VARCHAR2(1) |
(未使用) |
StreetPrefix |
VARCHAR2(20) |
通りの接頭辞。(たとえば、123 S MAIN STのS) |
StreetSuffix |
VARCHAR2(20) |
通りの接尾辞。(たとえば、123 MAIN ST NEのNE) |
Side |
VARCHAR2(1) |
道路セグメントをその方向に従って(つまり、道路セグメントの開始ノードから終了ノードに向かって)移動すると想定した場合に、家が建っている通りの側(左側は |
Percent |
NUMBER |
0から1の数値(パーセント値を求めるには100を掛けます)で、道路セグメントの方向に従って通りを移動した距離を示します。 |
EdgeID |
NUMBER |
道路区画の端のID。 |
ErrorMessage |
VARCHAR2(20) |
エラー・メッセージ(「出力されたジオコード済住所のエラー・メッセージ」を参照)。注意: |
MatchCode |
NUMBER |
一致コード(「一致コード」を参照)。 |
MatchMode |
VARCHAR2(30) |
一致モード(「一致モード」を参照)。 |
Longitude |
NUMBER |
経度値。 |
Latitude |
NUMBER |
緯度値。 |
MatchVector |
VARCHAR2(20) |
各住所の属性がジオコーディングに使用されるデータとどのように一致したかを示す文字列(「出力されたジオコード済住所の一致ベクトル」を参照)。 |
SDO_GEO_ADDRオブジェクト全体を戻すか、またはドット表記法を使用して属性を指定できます。例11-1に、San Francisco市庁舎の住所をジオコードする文を示します。最初の文はSDO_GEO_ADDRオブジェクト全体を戻し、残りの文はいくつかの特定の属性を戻します。
例11-1 ジオコーディング、および住所オブジェクトと特定の属性の取得
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?') SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').StreetType FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- PL SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').Side RROM DUAL; S - L SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').Percent FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- .01 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').EdgeID FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- 23614360 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').MatchCode FROM DUAL; SDO_GCDR.GEOCODE('SCOTT',SDO_KEYWORDARRAY('1CARLTONBGOODLETTPL','SANFRANCISCO -------------------------------------------------------------------------------- 1 SELECT SDO_GCDR.GEOCODE('SCOTT', SDO_KEYWORDARRAY('1 Carlton B Goodlett Pl', 'San Francisco, CA 94102'), 'US', 'RELAX_BASE_NAME').MatchVector FROM DUAL; SDO_GCDR.GEOCODE('SC -------------------- ????0101010??000?
SDO_ADDR_ARRAY型は、住所のジオコード結果を格納するために使用されるSDO_GEO_ADDRオブジェクト(「SDO_GEO_ADDR型」を参照)のVARRAYです。ジオコーディング操作の結果、複数の住所アドレスが一致すると、複数の住所オブジェクトが戻される可能性があります。
SDO_ADDR_ARRAY型は、次のとおり定義されます。
CREATE TYPE sdo_addr_array AS VARRAY(1000) OF sdo_geo_addr;
SDO_KEYWORDARRAY型は、形式化されていない住所の住所行を格納するために使用されるVARCHAR2文字列のVARRAYです。(形式化された住所と形式化されていない住所については、「住所の表現」を参照してください。)
SDO_KEYWORDARRAY型は、次のとおり定義されます。
CREATE TYPE sdo_keywordarray AS VARRAY(10000) OF VARCHAR2(9000);