1. 程式人生 > >釋出要素地圖服務(Feature Layer)

釋出要素地圖服務(Feature Layer)

軟體環境:

作業系統:win7 64

GIS平臺:ArcGIS 10.1

GIS資料服務:ArcSDE for SQLSERVER

資料庫:SQLSERVER 2008

如何實現要素的編輯並且儲存到服務中,最簡單的一種方式就是釋出要素服務(Feature Layer,要素服務新增到地圖文件的圖層和表格通過服務提供。以下將介紹要素服務資料的要求:

  • 所有資料必須來自單個 ArcSDE 地理資料庫。
  • 所有資料必須通過地理資料庫註冊
  • 如果要允許編輯資料,將需要 ArcSDE 資料的寫入許可權。使用 OS 身份驗證時,必須向 ArcGIS Server 帳戶授予這些許可權。
  • 支援版本化和未版本化資料;但是,如果需要使用服務編輯非簡單型別(例如,網路邊),則需要進行版本化。

釋出要素服務有個前提就是要把服務中的資料儲存在企業級的GeoDatabase中,即通過SDE來儲存,關於SDE的作用,可以簡單的理解為SDE 就是個中介軟體,他是把空間資料(比如點線面)轉化為關係型資料庫的表表儲存在資料庫裡,最終的資料還是儲存在關係資料庫裡的比如SQlServer,Oracle,SDE起到的就是客戶端與資料庫伺服器之間一個橋樑的作用,這些客戶端可以是ArcGIS 桌面,也可以是Server。因為他們都需要與資料庫打交道的,都是處理資料庫中的資料。關於SDE更多資訊參閱SDE部落格,

首先建立一個SDE資料庫:


選擇資料庫平臺SQLSERVER,輸入資料庫名sudansde(

資料庫名字建議用小寫字母,我在使用過程中只要輸入大寫字母就會報錯,難道是Bug?),輸入資料庫伺服器的密碼,設定資料庫的密碼。


下一步使用ArcMap 連線資料庫,


instanse輸入計算機名,或者localhost,如果是遠端的話,需要輸入IP,使用者名稱是SDE,這個是固定的,密碼就是安裝資料庫時你設定的密碼,點選ok完成連線。

接下來就可以對資料庫進行操作了,首先匯入需要編輯的圖層。右鍵剛才連線上的SDEImport-Feature Classmultiple)彈出對話方塊。選中圖層之後點選OK




上述載入的圖層沒有註冊版本,接下來我們為該圖層資料來源所在的資料庫註冊版本。右鍵剛新增的

feature class,選擇manage-Register as versioned

一步,新建MXD,從sde中新增需要編輯的feature class編輯結束之後一定要結束編輯然後儲存編輯結果,接下來就釋出服務,File-ShareAs-pubulish a Service,選擇本地的Server 為服務取名字為MyFeatureService。下一步,出現ServiceEditor,在Capalities裡選中FeatureAccess,在FeatureAccess裡面可以選擇,CreateQuery,Update,Delete,是否允許使用者對資料增刪改查,預設是全選的。



然後我點選一下Analyze,又彈出了錯誤SEVERITY STATUS CODE DESCRIPTION

 NAME TYPE DATAFRAMEHigh Unresolved 00090 Feature service requires a registereddatabase Layers Data Frame Layers,提示讓我們為資料來源所在的資料庫註冊(出於安全性考慮,如果要讓Server能夠訪問SDE中的資料,必須將該SDEServer中的DataStore中註冊,也就是說,Server只能訪問Data Store目錄中對應的資料),雙擊錯誤提示,然後彈出Data Store 視窗,點選+ ,隨便寫個名字我這裡寫的是zhucesde


接下來,點選Publisher database connection 中的Add 按鈕,開始註冊我們的資料庫,這樣註冊以後我們的ArcGIS Server  就可以訪問資料庫的資料了,選擇要註冊的資料庫,參考如下:


點選ok ok,這樣註冊成功!


接下來再點選Analyze按鈕,這樣沒有錯誤了,(雖然還有警告,但是我們可以釋出服務的)點選Pubulish,稍等片刻釋出成功。