关于ArcGIS和PostGIS

       这篇文章打算通过讲讲ArcGIS和PostGIS的关系,来深化一下空间类型的概念。

       在机器上安装PostgreSQL数据库,创建用户sde,数据库test,架构名sde。然后在ArcMap中连接,发现是可以连上的。

        关于ArcGIS和PostGIS

        然后新建一个要素类会提示如下错误。

        关于ArcGIS和PostGIS

        错误原因也很清晰,就是这个数据库中没有空间类型,而创建要素类是指定了空间字段的,所以无法创建。

        这时可以安装PostGIS插件,然后执行create extension postgis;

        这样该库就有了一个空间类型postgis,就可以成功创建要素类了,不过我们发现这个要素类没法编辑,

        关于ArcGIS和PostGIS

      这是因为ArcMap识别到该库没有创建Geodatabase模型,所以无法开启编辑。

      这个时候就需要执行 create enterprise geodatabase工具来创建Geodatabase模型,

      关于ArcGIS和PostGIS

      完成创建后,该库就有了两种空间类型,一种是ArcGIS的st_geometry,一种是PostGIS的geometry。

      而ArcGIS是可以兼容PostGIS类型的,

      所以创建要素类执行到以下步骤的时候,可以选择使用哪种类型,default就是st_geometry,pg_geometry是postgis。

      关于ArcGIS和PostGIS

      这个选择决定了该要素类的空间字段是什么类型,可以对比如下的区别。

      关于ArcGIS和PostGIS

      关于ArcGIS和PostGIS

      当我们复制粘贴数据到SDE的时候,也可以重新选择空间类型,

      关于ArcGIS和PostGIS

      所以到了这里,就可以理解,空间类型,就是决定空间字段的类型。

      那么类似几何网络这样的高级模型,涉及到空间字段的时候,也可以自己选择类型,但整个模型的成功运行,还是需要依赖Geodatabase模型中的对象。