いつST_Bufferを使用すればよいですか?


8

st_buffer操作を使用する意味を教えてください。PostGISリファレンスガイドには、この操作の構文と簡単な説明しかありません。

この操作の利点を理解するためにいくつかの例を挙げていただけますか?

回答:


12

@Underdarkコメントとして、ST_Dwithinは、離れた場所にあるジオメトリを見つけるための推奨される方法です。他の多くのGISシステムでは、バッファ方式が唯一の方法ですが、バッファの構築にはかなりのコストがかかります。

ただし、バッファリングが必要な場合は他にもあります。1つの理由は、バッファーを視覚化することです。たとえば、高速道路から100メートル未満のエリアを表示したい場合は、バッファを作成できます。

もう1つのケースは、高速道路から100メートルのエリアを別のマップから切り出したい場合です。面積の使用状況を示すマップがあり、高速道路から100メートルより近いエリアのどれだけが森林で、どれだけが農業エリアであるかを分析したいとします。次に、バッファーを作成し、エリア使用状況マップとの交差を作成します。

このチュートリアルの8-10ページに例があります:http : //postgisonline.org/map.php? tutorial=
mixed_examples.html


1
最後のリンクは死んでいるようです。
アーロン

6

OpenGeoは、ST_Bufferのかなり良い要約を提供します。負のバッファー半径を渡す機能に注意してください。

バッファ機能も時々便利な作業です。ゼロのバッファ半径を渡すことにより、ジオメトリのコレクションのフットプリントを構築したり、無効なポリゴンジオメトリを「修復」したりできます。


2

ええと、バッファを行うには?それだけです。

私はこれを短い説明とは本当に呼ばないでしょうhttp://www.postgis.org/documentation/manual-svn/ST_Buffer.html

ユースケースは、別のテーブルの各オブジェクトから20m以内にある1つのテーブルのすべてのオブジェクトを選択する場合です。


4
そのユースケースではST_Distanceを使用することをお勧めします。
アンダーダーク

1
Nicklasが述べたように、ST_DWithinを使用することは推奨されていません。インデックスを使用しないため、ST_Distanceは低速です。ST_DWithinはインデックスを使用し、ショートサーキットロジックを備えているため、2つのものが指定した距離内にあるかどうかを判断するために距離を完全に計算する必要はありません。ST_Bufferは実際には視覚化にのみ使用する必要があります
LR1234567

書かれたものではなく、私が読んだと思っていたものを読んだ:-)
NicklasAvén'21
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.