Geometryの圧縮

In order to compress any geometry stored into a given DB, you can use the following SQL sample:

http://www.gaia-gis.it/spatialite-2.4.0/SpatiaLite-Geometries-Addendum.pdf
BEGIN;
UPDATE table_1 SET geom = CompressGeometry(geom);
UPDATE table_2 SET geom = CompressGeometry(geom);
...
UPDATE table_N SET geom = CompressGeometry(geom);
COMMIT;
VACUUM;

SpatiaLite 2.4.0 RC-2(安定版ではない)からの機能らしい。Geometry型を圧縮できる。Within(Geometry)なんかの機能は圧縮済みのGeometryでも変りなく使えるようなので、大分容量の節減になる。

3Dにも対応、とか書いてある模様。高度なんかの情報を扱い易くなったという事だと思う。

効果の程

SpatiaLite 2.4.0 RC-2 binariesからspatialite-gui-win-x86-1.3.0.zipを落として、8地方のシェープファイルを統合 - 泥縄トラップの全国統合版のシェープファイルを取り込んでみた。


取り込みの時点で「Geometryの圧縮」のチェックボックスがあり、これにチェックを入れて取り込んだ結果のDBファイルの大きさが86.3 MB。ひとつの市区町村の中でGeometryが複数になっている分を考慮して、AAC(行政区域コード)と都道府県や市区町村郡といった地名だけのテーブルと、AACとGeometryのテーブルとを分けた場合のDBファイルが83.4 MBとなった。圧縮可愛いよ圧縮。

余談

Zipファイルが全くダウンロードされてない訳ですが、そもそも全国版のシェープファイルのデータはGISのソフトを提供してる会社で無償配布してる所があるので正直そっちの方が信頼出来ますね。