回答:
トポロジーベクトルモデルは、必要なものを提供します。非トポロジストレージ(シェープファイルなど)では、ジオメトリ間の単一のエッジが2回格納されます。位相ベクトルでは、領域は線とは別に保存されるため、トポロジに影響を与えることなく調整を行うことができます。良い図が見つからなかったので、この単純な例を作成しました。エリアA、B、Cは、それらを分離する線の交差点(1〜4を接続)から計算されます。
このモデルは、ArcInfoによってカバレッジとして、GRASSのデフォルトのベクトルモデルとして使用され、PostGISで実験的なPostGISトポロジツールとともに使用できます。おそらく、より単純なソリューションは、データをラインワークに変換し、冗長なセグメントを削除し、単純化した後にポリゴンを再作成することです。
ポリゴンをラインに変換し、それらのラインを単純なカバレッジエッジにし、それらのエッジを単純化し、再びポリゴンに構築し、最後にポイントインポリゴンを使用して古いポリゴンの属性を再結合します新しいもの。
CREATE TABLE rings AS SELECT (ST_DumpRings(polys)).geom AS rings FROM polytable;
CREATE TABLE simplerings AS SELECT ST_Union(rings) AS simplerings FROM rings;
CREATE TABLE newpolycollection AS SELECT ST_Polygonize(ST_Simplify(simplerings, 10.0)) AS geom FROM simplerings;
CREATE TABLE newpolysnoattributes AS SELECT (ST_Dump(geom)).geom FROM newpolycollection;
CREATE TABLE newpolytable AS SELECT new.geom, old.attr FROM newpolysnoattributes new, polytable old WHERE ST_Contains(new.geom, ST_PointOnSurface(old.polys));
上記にはエラーがありますが、核となる概念はそこにあります。必要に応じて、1つのクエリですべてを実行できます。
この問題を回避するには、トポロジ制約を使用してデータをモデル化する必要があります。 http://mapshaper.org/が行います。