釋出要素地圖服務(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(
下一步使用ArcMap 連線資料庫,
instanse輸入計算機名,或者localhost,如果是遠端的話,需要輸入IP,使用者名稱是SDE,這個是固定的,密碼就是安裝資料庫時你設定的密碼,點選ok完成連線。
接下來就可以對資料庫進行操作了,首先匯入需要編輯的圖層。右鍵剛才連線上的SDE,Import-Feature Class(multiple)彈出對話方塊。選中圖層之後點選OK。
上述載入的圖層沒有註冊版本,接下來我們為該圖層資料來源所在的資料庫註冊版本。右鍵剛新增的
下一步,新建MXD,從sde中新增需要編輯的feature class。編輯結束之後一定要結束編輯然後儲存編輯結果,接下來就釋出服務,File-ShareAs-pubulish a Service,選擇本地的Server 為服務取名字為MyFeatureService。下一步,出現ServiceEditor,在Capalities裡選中FeatureAccess,在FeatureAccess裡面可以選擇,Create,Query,Update,Delete,是否允許使用者對資料增刪改查,預設是全選的。
然後我點選一下Analyze,又彈出了錯誤SEVERITY STATUS CODE DESCRIPTION
NAME TYPE DATAFRAMEHigh Unresolved 00090 Feature service requires a registereddatabase Layers Data Frame Layers,提示讓我們為資料來源所在的資料庫註冊(出於安全性考慮,如果要讓Server能夠訪問SDE中的資料,必須將該SDE在Server中的DataStore中註冊,也就是說,Server只能訪問Data Store目錄中對應的資料),雙擊錯誤提示,然後彈出Data Store 視窗,點選+ ,隨便寫個名字我這裡寫的是zhucesde。
接下來,點選Publisher database connection 中的Add 按鈕,開始註冊我們的資料庫,這樣註冊以後我們的ArcGIS Server 就可以訪問資料庫的資料了,選擇要註冊的資料庫,參考如下:
點選ok ,ok,這樣註冊成功!
接下來再點選Analyze按鈕,這樣沒有錯誤了,(雖然還有警告,但是我們可以釋出服務的)點選Pubulish,稍等片刻釋出成功。