総描とは?

標準

2014年11月21日


今回は総描についてご紹介します。

総描とは?

GISでは、様々な縮尺で地図データを表示したり印刷したりします。大縮尺ではできるだけ詳細なデータが求められますが、小縮尺ではそれほど詳細なデータは必要ありません。むしろ、効率的な運用のためには、大雑把なデータの方がよいでしょう。

一般的に、詳細なデータを大雑把なデータにすることを「総描」といいます。地図データを総描する方法はいろいろあります。複雑なジオメトリ(図形)を簡略化すること、密集しているジオメトリどうしを合成すること、単純に省略しすることなども総描といえます。

複雑なジオメトリを簡略化

ここでは、複雑なジオメトリ(図形)を簡略化する総描について説明します。

総描の処理は、ジオメトリを構成する頂点を適切に間引くことにより行われます。どの頂点を間引くか、またどのくらいの数の頂点を間引くかは採用するアルゴリズムやそのアルゴリズムに与えるパラメータによって異なります。(SISとGeoConicでは、ともにDouglas-Peuckerという総描アルゴリズムが採用されています。)

Douglas-Peuckerアルゴリズム

Douglas-Peuckerアルゴリズムでは、利用者またはプログラマーが「許容誤差」をパラメータとして与える必要があります。あるラインジオメトリで、2つの頂点(最初は始点と終点)を結んだ線分が複数の頂点を挟んでいて、その線分とその線分から最も離れている頂点との距離が許容誤差以上の場合、その頂点は間引かれないものとして確定されます。そして、間引かれないと確定された頂点を通る線分に対して再帰的に計算が行われていき、許容誤差以内に収まる頂点は間引かれていきます。したがって、許容誤差に与える値が小さければ頂点はほとんど間引かれず、値を大きくすればするほどジオメトリは簡略化されていきます。

どこまで簡略化する?

では、どの程度まで簡略化すべきか?これはデータの作成者や利用者の主観(好み)、またデータの用途やサイズ制限、パフォーマンスなどによって総合的に決定されるべきでしょう。ここでは、簡単な例として、見た目を変えずにジオメトリを簡略化するための許容誤差の値を理論的に算出してみます。

例えば、50万分の1より小さな縮尺で画面に表示するデータを作成する場合を考えてみます。最も拡大された状態(最も詳細表示の状態)が縮尺50万分の1であるとします。地図を表示するディスプレイの解像度が96ppi(pixel per inch)だと仮定すると、縮尺50万分の1で、画面1ピクセルで表現される地図上の距離は約132.3mとなります。同様に、ディスプレイ解像度が144ppiであれば、約88.2mとなります。

つまり、理論上、この式の結果より小さな差異は、ディスプレイ表示するときに違いを表現できないことになります。(実際には、丸め誤差等により、1ピクセルの差異が生じる場合があります。)したがって、この値を許容誤差とすれば、見た目上の差異を伴わずにジオメトリを限界まで簡略化できるわけです。

複雑なジオメトリを簡略化する処理だけでもいくつかのアルゴリズムがありますし、与えるパラメータによって無限に近い総描結果を得ることができます。興味がある方は、Douglas-Peucker以外の総描アルゴリズムについても調べてみてはいかがでしょう?