【ArcGIS 10.2新特性】ArcGIS 10.2将PostgreSQL原生数据发布为要素服务

1、ArcGIS 10.2支持原生数据发布为要素服

有没有将自己已有的空间数据发布为要素服务的需求?有没有将非Esri空间数据类型的数据作为服务在Web端展示的需求?
    ArcGIS 10.2 for Server增加了这方面的能力,ArcGIS 10.2 for Server 可以将原生数据库中的空间数据发布为要素服务。
    想必都知道现在的关系型数据库,也都对空间数据有一定的支持,如postgreSQL的pg_geometry,Oracle的sdo_geometry,SQL Server的geometry等,如果用户的数据已经是这些格式了,如何发布为要素服务?
    在ArcGIS 10.0的时候Esri支持了要素服务,因为要素服务提供了在线编辑的功能,因此得到很多用户的青睐,但是发布要素服务有一个条件,就是数据必须存储在SDE数据库中,如果用户的空间数据已经是原生数据库的空间数据类型,要发布要素服务的话,我们需要将这些数据到SDE数据库中。
    当然Esri也会考虑用户的需求,和针对用户的需求做出相应的反应,ArcGIS 10.2 for Server 就可以直接将这种原生的空间数据作为要素服务暴露出去,这样的话,省了数据转换等一系列的操作,更让人兴奋的是,这样的能力不需要SDE的支持。
下面我们就以PostgreSQL数据库为例进行说明。
    PostgreSQL数据要支持空间数据,需要安装一个扩展- PostGIS,这个扩展和Oracle的 Oracle Spatial类似。PostGIS 是 Refractions Research 开发的产品,用于为 PostgreSQL 数据库添加对 PostGIS 空间数据类型的支持。PostGIS 遵从开放地理空间联盟 (OGC) 关于结构化查询语言 (SQL) 的简单要素规范。它使用 OGC 熟知二进制 (WKB) 和可识别文本 (WKT) 表示几何。实际上,PostGIS 是向 PostgreSQL 添加空间类型。

2、安装POSTGIS

安装POSTGIS有两种方法:1,可以从http://download.osgeo.org/postgis/下载,根据自己已经安装的postgreSQL版本进行选择,请注意,ArcGIS for Server支持(9.0系列,9.1系列和9.2系列的postgreSQL);2,也可以在postgreSQL安装后自带的Stack Builder中进行安装,在这里我的是后者。

2.1 打开Stack Builder

2.2 选择空间扩展,可以根据需要选择其他的辅助功能

2.3 选择下载目录

2.4 选择创建空间数据库前面的复选框


    等一会儿,当安装完成后,会在postgreSQL中创建template_postgis_20等模板和postgis20数据库如下:
      

3、数据准备

POSTGIS提供了将shape数据转成PG_GEOMETRY的工具,但是这里我要介绍的不是这个工具,而是通过ArcMap完成这个数据转换的操作,ArcMap可以在PostgreSQL数据库中创建要素类,导入数据,导出数据等,这些功能大大简化了数据转换的操作,也很方便。
    在操作数据之前,首先要新建postgres模式。
        
    接下来使用直连的方式连接PostgreSQL数据库,在ArcMap右侧的Catalog目录中进行连接。
      
    这时,我从geodatabase中找到一个多边形数据复制到postgis20数据库当中,作为数据库中的原生空间数据。然后,将它加载到ArcMap当中并保存地图文档。
      
    在添加完数据库之后,我们可以在PostgresSQL当中看到该数据,如下图所示。
      

4、发布要素服务

在发布时,会要求数据库必须进行注册,可以提前在Server属性当中进行设置。
      
    选择Register Database,弹出对话框如下图左侧,为数据库命名,然后通过Import方式,找到连接的数据库并选择,如下图右侧。点击OK。
      

现在,可以发布要素服务了。在Fiel菜单下找到Share As选择Service。

相关文章