以下に、地理情報を取得する際に生成し、格納し、操作するデータの概要について説明します。以下のトピックを取り上げます。
地理情報エクステンダーでは地形を、表または視点の中の 1 行や行の一部分として表します。一例として、地理情報エクステンダーの目的 に挙げられている 2 つの地形 (オフィスビルと居住地) について考慮します。 図 1 で、BRANCHES 表の個々の行は銀行の支店を表します。派生物として、図 1 の CUSTOMERS 表の個々の行は、銀行の顧客を表します。しかし、個々の行の部分 (特に顧客の住所があるセル) が、顧客の居住地を表していると見なすことができます。
図 1. 表の行は地形を表す。表の行の住所データも地形を表す. BRANCHES 表のデータの行は銀行の支店を表している。 CUSTOMERS 表の住所データのセルは、顧客の居住地を表している。 2 つの表の名前と住所は架空のもの。
図 1 の表には、銀行の支店と顧客を識別し、記述したデータがあります。この種のデータのことを、属性データ といいます。
属性データのサブセット (支店の住所と顧客の住所を示す値) を、地理情報を生成する値に変換できます。たとえば、図 1 では、支店の住所が 92467 Airzone Blvd., San Jose CA 95141 になっています。顧客の住所は 9 Concourt Circle, San Jose CA 95141 です。地理情報エクステンダーによってこれらの住所を、支店と顧客の家のある環境を示す値に変換できます。 図 2 は、 BRANCHES 表と CUSTOMERS 表の列にこのような値が入るよう指定して新しくした状態を示しています。
図 2. 地理情報列が追加された表. 個々の表の LOCATION 列には、住所に対応した座標が入れられます。
地理情報の開始点として住所および前述と同様の ID を使用する場合、それらのデータのことをソース・データ といいます。
ソース・データから導き出された値によって地理情報が生成されるので、導出値のことを地理情報データ といいます。次に、地理情報データについて説明し、関連するデータ・タイプを紹介します。
多くの地理情報データは座標によって構成されます。 座標 とは、参照点からの相対的な位置を示す数値です。たとえば、緯度は赤道と比較した位置を示す座標です。また経度はグリニッジ子午線と比較した位置を示す座標です。したがって、イエローストーン国立公園の位置は、緯度 (赤道から北緯 44.45 度) と経度 (グリニッジ子午線から西経 110.40 度) で表されます。
緯度、経度、その参照点、および他の関連したパラメーターは、まとめて座標系 と見なされます。
緯度と経度以外の値に基づく座標系もあります。これらの座標系には独自の位置の測定値、参照点、および追加の識別パラメーターがあります。
最も単純な地理情報データ項目は、単一の地形の位置を定義した 2 つの座標から成り立ちます。 (データ項目 とは、リレーショナル表のセルに入っている 1 つまたは複数の値のことです。) これより複雑な地理情報データ項目は、道路や河川などの線状の通り道を定義した複数の座標から成り立ちます。さらに複雑な項目は、領域の境界線 (たとえば、一区画の土地やはんらん原などの外縁) を定義した座標から成り立ちます。これらの地理情報データ項目や、地理情報エクステンダーでサポートされている他の種類の地理情報データ項目に関する詳細は、 図形および関連する地理情報関数を参照してください。
個々の地理情報データ項目は、地理情報データ・タイプのインスタンスです。場所を示す 2 つの座標のデータ・タイプは ST_Point です。線状の道を定義する座標のデータ・タイプは ST_LineString です。境界線を定義する座標のデータ・タイプは ST_Polygon です。これらのタイプと、他のタイプの地理情報データは、単一の階層に属する構造型です。階層の概要については、地理情報データ・タイプについてを参照してください。
地理情報データを取得するには、以下のようにします。
地理情報エクステンダーでは、地理情報データを住所などの属性データから導出できます (データによって地形を表す方法を参照)。このプロセスのことを、ジオコーディング といいます。関係する一連の事柄について考慮するために、 図 2 を「ジオコーディング実行前の」ピクチャー、 図 3 を「ジオコーディング実行後の」ピクチャーとしましょう。 図 2 の BRANCHES 表と CUSTOMERS 表は、地理情報データ用に指定された列が両方とも NULL 値しか含まれていません。地理情報エクステンダーにより、これらの表の中の住所がジオコーディングされて住所に対応した座標が求められ、その座標がこの列に入れられるとします。この結果が 図 3 に示されています。
図 3. ソース・データから導出された地理情報データを含む表. CUSTOMERS 表の LOCATION 列には、ジオコーダーにより ADDRESS、CITY、STATE、 および ZIP 列の住所から導出された座標が入っている。 同様に、BRANCHES 表の LOCATION 列には、 ジオコーダーによりこの表の ADDRESS、CITY、STATE、 および ZIP 列の住所から導出された座標が入っている。 この例は架空のもので、ここに示されている座標はシミュレーションであり実在しない。
地理情報エクステンダーでは、ジオコーダー という機能を使用して、属性データを地理情報データに変換し、その地理情報データを表列に入れます。ジオコーダーについて詳しくは、ジオコーディングについてを参照してください。
地理情報データは、属性データからだけでなく、他の地理情報データから生成することもできます。たとえば、支店が BRANCHES 表に定義されている銀行が、個々の支店から半径 5 マイル内に住んでいる顧客の数を知りたいとします。この銀行がデータベースから情報を取得するには、その前に個々の支店から半径 5 マイルの地帯をデータベースに定義しなければなりません。この種の定義は、地理情報エクステンダーの関数 ST_Buffer を使用して作成できます。 ST_Buffer により、個々の支店の座標を入力として使用して、希望する地帯の境界線を確定する座標を生成できます。 図 4 は、 ST_Buffer によって BRANCHES 表に情報が入れられた様子を示しています。
図 4. 既存の地理情報データから導出された新しい地理情報データを含む表. SALES_AREA 列内の座標は、ST_Buffer によって LOCATION 列内の座標から導出された。 SALES_AREA 列内の座標は、LOCATION 列内の座標と同じくシミュレーションであり、実在しない。
地理情報エクステンダーには、ST_Buffer 以外にも、既存の地理情報データから新しく地理情報データを導出する関数があります。 ST_Buffer と他の関数の説明については、既存の図形から新しい図形を生成する関数を参照してください。
地理情報データを取得するための 3 つ目の方法は、地理情報エクステンダーでサポートされているいずれかの形式で形式設定されているファイルからインポートすることです。この種の形式の説明については、地理情報データのファイル形式を参照してください。この種のファイルには、通常地図に適用されるデータが入ります。たとえば、人口調査標準地域、はんらん原、震源断層などです。この種のデータと、作成した地理情報データを組み合わせて使用すると、利用可能な地理情報を増やすことができます。たとえば、公共事業を行う省庁が、ある住宅地がどんな災害に遭いやすいか判別する場合に、 ST_Buffer を使用してその住宅地を含む地帯を定義できます。その後に、はんらん原や断層に関するデータをインポートして、これらの危険域が定義した地帯と重なり合っているかどうか調べることができます。