回答:
Eliminateを使用(ArcInfoライセンスが必要)
最大の面積または最も長い共有境界を持つ隣接ポリゴンとマージすることにより、ポリゴンを削除します。Eliminateは、IntersectやUnionなどのオーバーレイ操作の結果である小さなスライバーポリゴンを削除するためによく使用されます。
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000005p000000.htm
ArcGIS 10のユーザーこのツールのオプションには新しい機能があることに注意してください。
オプション> ex_features(オプション)を使用して、元のPOLYGONまたはPOLYLINEを保持できるようになりました。(省略可能)削除しないポリゴン境界またはその一部を定義する入力ポリラインまたはポリゴンフィーチャクラスまたはレイヤー。
QGISで手動でこれを行うには、下部Settings|Project Properties...
のGeneral
タブでSnapping options...
スナップするレイヤーをチェックし、モードをto vertex
設定し、許容値を2つのポイント間の最短距離よりも小さい値に設定します。よくわからない場合は、単位pixels
と許容値を5のような値に設定して、面倒な詳細がある場合はズームインして、間違った頂点にスナップしないようにしてください。
次に、ベクターレイヤーを編集し、ノードツールを選択して、エラーポイントを対応するものに移動します。
自動的に行うのは少し難しいです。AFAIK QGISには自動化するプラグインがありません。PostGISはスナップ機能を備えたGEOS上に構築されていますが、PostGISには公開されていません。スナップ距離内にある近隣のポリゴンの各ポイントをチェックするクエリを作成することは可能かもしれませんが、それは現在、私の頭の切れるところです。
GRASSにはv.clean.snapがあり、QGIS経由でアクセスできますが、GRASSデータセットを作成する追加のステップがあります。
QGISに精通している場合:QGISトランク1.9(OSGEOインストーラーを介してqgis.devとしてインストールできます。qgisホームページを参照してください)は、「スライバーポリゴンの削除」と呼ばれるベクターメニューの新しい機能です。欲しいです。問題のあるポリゴンを選択し、共通の境界または面積比率に基づいて隣接するポリゴンにマージできます。やってみて!
ArcGISには、参照しているデータなどのデータのギャップを特定して修正するのに役立つトポロジルールがあります。トポロジルールを作成するには、ArcEditorまたはArcInfoライセンスが必要で、パーソナルジオデータベースまたはファイルジオデータベースのフィーチャデータセットにフィーチャクラスを格納する必要があります。
「ギャップを持たないでください」ルールを実装することをお勧めします。必要と思われるすべてのルールを含むルールベースを作成したら、データ内のすべてのエラーを識別するトポロジを検証する必要があります。
次に、エラーインスペクターとトポロジエラーの修正ツールを使用して、修正するエラーと修正方法を個別にまたは一括で選択できます(つまり、新しいポリゴンを作成してボイドを埋めたり、近くの大きなポリゴンとマージしたりできます)。 。
さて、この問題を解決するために再帰スナップを実行するPostGIS関数(QGISで直接使用)を使用しています。結果は非常に良好であり、最良の結果を得るには許容値の良い喜びを要求するだけです。試してみたい場合は、それを確認してください(私の場合、ジオメトリはすべてマルチです。したがって、実行のst_multiです)。
CREATE OR REPLACE FUNCTION dsgsnap(tabela text, snap float) RETURNS void AS
$BODY$
DECLARE
id int;
BEGIN
FOR id in execute('select id from '||tabela)
LOOP
EXECUTE
'update '||tabela||' as classe set geom = st_multi(res.geom)
from
(
select st_snap(a.geom, st_collect(b.geom), '||snap||') as geom, a.id as id
from '||tabela||' a, '||tabela||' b
where a.id != b.id and a.id = '||id||'
group by a.id, a.geom
) as res
where res.id = classe.id';
END LOOP;
RETURN;
END
$BODY$
LANGUAGE plpgsql;
完全な解決策ではありませんが、ほとんどの場合、次の2つのいずれかが機能します。
QGISで、GEOJSON形式でレイヤーを保存します。ただし、保存する前に、[名前を付けてレイヤーを保存]ダイアログボックスで、座標精度を3に設定します(15がデフォルトです)。これは、互いに非常に近い頂点を結合する効果があります。
Mapshaperにアクセスして、ファイルをアップロードし、「単純化」をクリックします。左上隅に、検出された線の交点の数が表示され、それらを修正するオプションが表示されます。この修正は約半分の時間で機能することがわかりました。
私は使用していませんが、多くのArcEditorおよびArcInfoのみの処理ツールをArcViewレベルライセンス(ArcGIS Standard)に提供するET Geowizardsには、「隣接するポリゴンにマージして不要なポリゴン(スライバ)を削除する」または「削除ウィザード」がありますそれらを削除します。」ウィザードツールキットは、バック$、250米ドル(あなたが設定されます価格表を)。
私は同じ問題に直面しました。ツールを調査することで、ロジックはわかりませんが、簡単に解決しました。![ツールで[データ管理]ツールボックスに移動し、[フィーチャクラス]に移動して、ダブルクリックで統合スクリプトを実行します] [1]
スクリプトウィンドウで問題のあるフィーチャクラスを選択し、XY許容値で複数のポイントで測定ツールを使用して距離を測定して値を追加し、その値を許容値環境に入れて問題を適用して解決します今ではなく、約90%の精度で解決されています。![ここに画像の説明を入力] [2]
上記の回答に記載されている他のすべての方法を試しましたが、隣接するポリゴン間のギャップの自動修正を取得するのは難しく、面倒でした。