Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

SFS发布非shp导入的postgresql点空间数据需要注意的问题


先解释下非shp导入的postgresql点空间数据,postgresql可以通过扩展,用插件直接导入shp文件到postgresql数据库中。也可以自己创建一个空表,然后往里面同步或通过脚本写入数据。文中非shp导入指的是后者。

postgresql数据同步,在前一篇kettle spoon同步oracle的点空间数据到postgresql中做了介绍,其它空间数据的同步也大同小异。

问题1:创建的空间数据表没有指定主键

空间数据表中如果没有指定主键,可以发布成功,但不能加载到pro里。如下图:

在pro里无法加载,如下图:

同时出现如下错误提示:

在空间数据表中FID的主要作用就是用来标识数据的唯一性,在表结构中不显示出来,从shp文件中也无法导出。那提示的这个FID字段不存在难道就解决不了吗?其实这个提示要的也是数据唯一性的标识字段,所以在表中设计一个主键就可以了。

问题2:数据表中空间字段类型不明确

空间数据有点、线、面等。所以在创建geometry空间字段时,geometry也还是有很多类型的,可以写成:

1、geom geometry;

2、geom geometry(Point);

3、geom geometry(Point,4326);

4、geom geometry(PointZM);

其中1没有指定geometry的具体数据类型;2指定为简单的点数据类型;3指定为简单的点数据类型并指定了坐标参考,4指定为含有M、Z值的点数据类型。没有指定geometry的具体数据类型,TerraGate SFS Administration发布不成功。提示的大致意思是找不到空间字段,但是UDIG可以打开。

转载自:https://blog.csdn.net/luoyun620/article/details/88350977