前一阵子开始接触PostGis,在做空间数据导入的时候感觉不是很方便,一种方法是postgis自带的一个数据导入的工具shp2pgsql,
但是只能导入shp文件,其他格式的数据基本上都是转成shp格式,然后再导入;另一种是使用ogr的导入命令ogr2ogr,支持多种数据的导入。
我们拿到的数据主要是mapinfo的tab 数据,可以用ogr2ogr导入,为了其他人的使用以及过程中的控制,自己做了一个tab导入postgis的工具。
tab文件的读取使用的是开源的读写工具mitab(mitab使用的ogr library), 基本流程就是把读到的空间数据转换成wkt的字符串,生成sql语句,然
后执行sql导入数据库。
各文件说明:
PostGisTool.Tab2PostC.dll中包含了具体的内容(未混淆),
Tab2PostC_Test.exe 是使用该类库做的一个测试工具
Connections.xml 数据库连接参数配置
其他说明:
tab文件的空间数据类型要求一致
处理过程中,tab中的字段会转成小写导入postgis
tab文件中的无效记录需完全清理掉,否则会导致统计记录数与实际操作记录数不一致的情况
sql文件编码使用的GBK,写入和读取都是使用GBK
测试工具下载:http://files.cnblogs.com/aqi-silence/Tab2PostGis.rar