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。




作者:小醉、Ivorymjl
