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) (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