ポリゴンの整合性をチェックしたり修正したりを簡単にしたいので、その方法の途中結果です。
整合性には2種類あって、A.自分自身でインターセクションしてたりするものと、B.他のオブジェクトとオーバーラップしてたりギャップがあったりするものです。
A.の場合はpostgisでST_IsValidで整合性をチェックでき、ST_MakeValidで修復することができますが、B.の場合は一筋縄ではいかなさそうです。
postgisではトポロジーをサポートしているので、それを使ってなんとかするのだと思いますが、詳細はググり中です。
で、ひとまずトポロジのチェックだけでもしたい場合は、QGISのトポロジチェッカープラグインを利用するとよさそうです。
参考
postgisで整合性チェック
http://suite.opengeo.org/docs/dataadmin/pgBasics/validity.html
http://workshops.opengeo.org/postgis-intro-jp/validity.html(上より情報が古いけど翻訳版)
ST_Bufferで修復したテーブルを作る方法
CREATE TABLE new_buffered_table as
SELECT ST_Buffer(the_geom,0.0) as the_geom, gid FROM original_table;
Spatilaiteでもだいたい同じ
spatialite> select OGC_FID,IsValid(geometry) from vg_04a where not isvalid(geometry); spatialite> create table newveg as select buffer(geometry,0.0) as geometry,OGC_FID from vg_04a; spatialite> select RecoverGeometryColumn("newveg","geometry",4612,"POLYGON","XY");
geometry columnを再設定するのをお忘れなく。<-自分
macでpostgisサポートのgdalのインストール
brew install gdal --with-postgres --with-postgresql
データのインポート
ogr2ogr -f PostgreSQL PG:dbname=testdb vg_04a.shp -nlt polygon -s_srs epsg:4612 -t_srs epsg:4612