地理情報索引は、エンベロープ を使用して生成されます。エンベロープは、図形そのもので、特定の図形の X と Y の長さのうち最小のものと最大のものを表します。ほとんどの図形では、エンベロープは箱型です。ただし水平折れ線と垂直折れ線の場合、エンベロープは 2 つのポイント間の折れ線になります。ポイントの場合、エンベロープはポイントそのものになります。エンベロープについての詳細は、エンベロープを参照してください。
格子を利用して各図形のエンベロープの交差部分について 1 つまたは複数の項目を作成することにより、地理情報索引が地理情報列に対して作成されます。交差部分は、図形の内部 ID として、また交差部分となる格子セルの X および Y 座標の最小値として記録されます。たとえば、図 7 のポリゴンは、座標 (20,30)、(30,30)、(40,30)、(20,40)、(30,40)、(40,40)、(20,50)、 (30,50)、(40,50) の格子と交差します。 図 7 の全図形の X および Y 座標の最小値については、 表 39 を参照してください。
複数の格子レベルが存在する場合、地理情報エクステンダーは可能な限り低い格子レベルを使おうとします。所定のレベルにおいて、1 つの図形が 4 つ以上の格子セルと交差する場合は、レベルが次に大きいレベルに昇格します。したがって、10.0e0、100.0e0、そして 1000.0e0 の 3 つの格子レベルのある地理情報索引の場合、地理情報エクステンダーはまず、レベル 10.0e0 の格子と各図形を交差させます。指定した図形が 4 つ以上の 10.0e0 格子セルと交差している場合、昇格してレベル 100.0e0 の格子で交差するようになります。 4 つ以上の交差が 100.0e0 レベルで生じていると、この図形は 1000.0e0 レベルへ昇格します。これが一番高いレベルになるので、交差部分は 1000.0e0 レベルで地理情報索引に入力されなければなりません。
図 7 では、 4 つの異なるタイプの図形が 10.0e の格子と交差しています。地理情報索引には、4 つの図形の 23 の交差部分すべてが記録されます。
表 39 には、図形とそれに対応する格子の交差部分がリストされています。
4 つの異なるタイプの図形のエンベロープが、10.0e の格子と交差しています。地理情報索引には、交差されている各格子セルの最小 X 座標および Y 座標が入力されます。
図形 | 格子 X | 格子 Y |
---|---|---|
ポリゴン
|
20.0
|
30.0
|
ポリゴン
|
30.0
|
30.0
|
ポリゴン
|
40.0
|
30.0
|
ポリゴン
|
20.0
|
40.0
|
ポリゴン
|
30.0
|
40.0
|
ポリゴン
|
40.0
|
40.0
|
ポリゴン
|
20.0
|
50.0
|
ポリゴン
|
30.0
|
50.0
|
ポリゴン
|
40.0
|
50.0
|
垂直折れ線
|
50.0
|
30.0
|
垂直折れ線
|
50.0
|
40.0
|
垂直折れ線
|
50.0
|
50.0
|
ポイント
|
20.0
|
20.0
|
水平折れ線
|
20.0
|
20.0
|
水平折れ線
|
30.0
|
20.0
|
水平折れ線
|
40.0
|
20.0
|
水平折れ線
|
50.0
|
20.0
|
水平折れ線
|
60.0
|
20.0
|
水平折れ線
|
20.0
|
30.0
|
水平折れ線
|
30.0
|
30.0
|
水平折れ線
|
40.0
|
30.0
|
水平折れ線
|
50.0
|
30.0
|
水平折れ線
|
60.0
|
30.0
|
図 8 には、格子レベル 30.0e0 および 60.0e0 を追加することにより交差部分の数が 8 まで激減した様子が示されています。この場合、図形 1 のポリゴンは格子レベル 30.0e0 に昇格し、図形 4 の折れ線は格子レベル 60.0e0 へ昇格します。 10.0e0 レベルでは、その図形には 9 と 10 の交差部分がありましたが、昇格後は交差部分は 2 つだけになります。
図 8. 格子レベル 30.0e0 と 60.0e0 を追加したときの結果. 図形 1 の多角形のエンベロープは、9 つの格子セルと交差しています。 図形 2 の垂直折れ線のエンベロープは、3 つの格子セルと交差しています。 図形 3 のポイントのエンベロープが交差しているのは、1 つの格子セルだけです。 図形 4 の折れ線のエンベロープは、10 の格子セルと交差しています。
地理情報エクステンダーは CREATE INDEX ステートメントで指定された格子レベル・パラメーターを取り、個々の地理情報オブジェクトを調べて、オブジェクトが存在する格子ブロックの座標と番号を判別します。
図 8 の場合、格子レベル 10.0e0、30.0e0、および 60.0e0 では、線が太くなっていたり、グレーの濃さが異なっていたりしています。垂直折れ線とポイント・エンベロープ・セルとの交差部分は 4 つ未満なので、
10.0e0 格子レベルの索引に入力されます。ポリゴンは 9 つの 10.0e0 格子セルと交差するので、30.0e0 格子レベルへ昇格します。このレベルでは、ポリゴンは 2 つの格子セルと交差しており、その交差部分が索引に入力されます。図形 4 の折れ線は 10 の 10.0e0 格子セルと交差するので、30.0e0 格子レベルへ昇格します。このレベルでも 6 つの格子セルと交差するため、60.0e0 格子レベルへ昇格します。ここでは交差部分が 2 つとなります。したがって、折れ線 60.0e0 の格子との交差部分が索引に入力されます。このレベルで折れ線との交差部分が 4 つ以上となっても、図形を昇格できる最高のレベルであるため、その交差部分が索引に入力されます。
図形
|
格子 X
|
格子 Y
|
---|---|---|
レベル 1 (10.0e0 格子サイズ) での垂直折れ線とポイントとの交差部分 | ||
2
|
50.0
|
30.0
|
2
|
50.0
|
40.0
|
2
|
50.0
|
50.0
|
3
|
20.0
|
20.0
|
レベル 2 (30.0e0 格子サイズ) でのポリゴンの交差部分 | ||
1 | 0.0 | 30.0 |
1 | 30.0 | 30.0 |
レベル 3 (60.0e0 格子サイズ) での折れ線の交差部分 | ||
4 | 0.0 | 0.0 |
4 | 60.0 | 0.0 |
地理情報エクステンダーは、実際にはどのような種類のポリゴン格子構造も作成しません。さらに地理情報エクステンダーは、列の地理情報参照システムの X、Y オフセットで原点を定義することにより、それぞれの格子レベルをパラメーターで示します。その後、格子を正の座標空間に展開します。パラメトリック格子を使用することにより、地理情報エクステンダーは交差部分を数学的に生成します。