プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

11.4 場所名からのジオコーディング

場所の名前(対象点)はわかっていても、その位置の詳細情報がわからない場合は、例11-2に示すように、入力パラメータのplacenamecountryからSDO_GEO_ADDRオブジェクトを作成するPL/SQLファンクションを作成できます。この例では、create_addr_from_placenameというファンクションが作成されます。この例のSELECT文は、create_addr_from_placenameファンクションで作成した住所を、SDO_GCDR.GEOCODE_ADDRファンクションを使用してジオコードしています。

例11-2 場所名と国からのジオコーディング

create or replace function create_addr_from_placename(
placename varchar2,
country varchar2)
return sdo_geo_addr
deterministic
as
  addr sdo_geo_addr ;
  begin
  addr := sdo_geo_addr() ;
  addr.country := country ;
  addr.placename := placename ;
  addr.matchmode := 'default' ;
  return addr ;
  end;
  /
 
SELECT sdo_gcdr.geocode_addr('SCOTT', 
  create_addr_from_placename('CALIFORNIA PACIFIC MEDICAL CTR', 'US')) 
FROM DUAL;

例11-3 場所名、国および他のフィールドからのジオコーディング

いくつかの位置情報(行政区域、郵便番号など)がわかっている場合、それらの情報を指定すると、より優れたパフォーマンスが得られます。例11-3には、追加のパラメータに対応するcreate_addr_from_placenameファンクションの別バージョンを示しています。このバージョンのファンクションをコールするには、placenameおよびcountryパラメータに実際の値を指定し、他の入力パラメータについては実際の値またはNULLを指定します。

create or replace function create_addr_from_placename(
placename varchar2,
city varchar2,
state varchar2,
postalcode varchar2,
country varchar2)
return sdo_geo_addr
deterministic
as
  addr sdo_geo_addr ;
  begin
  addr := sdo_geo_addr() ;
  addr.settlement := city ;
  addr.region := state ;
  addr.postalcode := postalcode ;
  addr.country := country ;
  addr.placename := placename ;
  addr.matchmode := 'default' ;
  return addr ;
  end;
  /
 
SELECT sdo_gcdr.geocode_addr('SCOTT', 
  create_addr_from_placename('CALIFORNIA PACIFIC MEDICAL CTR', 
    'san francisco', 'ca', null, 'US')) FROM DUAL;