1. 程式人生 > >海量圖層管理的新希望——ArcGIS Server 動態圖層服務

海量圖層管理的新希望——ArcGIS Server 動態圖層服務

1眾裡尋他千百度

“海量資料的釋出與共享一直是GIS應用系統建設中的難題,尤其是當資料還在不斷增加的時候……”,像是被針紮了般,小崔猛然一驚。然 後他全神貫注,緊緊盯著大螢幕,生怕錯過了任何細節。當看到臺上的工程師將65個圖層匯入資料庫中,隨後在 客戶端立即就可以看到最新的資料時,小崔驚訝地幾乎就要喊出來!

小崔是神馬浮雲科技有限公司的一名專案經理,主要負責 GIS專案的設計與實施。最近他被一個專案搞得焦頭爛額,老闆看在眼裡,急在心裡,正好今天Esri使用者大會開幕,於是讓小崔過來參會,瞭解瞭解新技術,會會老朋友,放鬆放鬆心情。

大會結束後,小崔和幾個老朋友一起吃了飯,然後各自回 家。“剛才所見的演示,和最近的專案情景何其相似啊!”最近一段時間,小崔費盡思量,嘗試了各種方案,總難找到兩全其美的 辦法。今天演示這個技術,或許就是解決問題的關鍵。“動態圖層服務,一個神奇的服務!”小崔不自覺地模仿了一句,說完自己 也樂了,“不管神奇不神奇,關鍵要能解決問題!”小崔最後在心裡總結道。

明後兩天是技術講座和使用者體驗區開放,小崔想著今晚回 去先把問題好好梳理梳理,明天再過來和Esri的工程師們好好交流交流。打定主意後,小崔加快腳步,在北京初 秋燈火闌珊的夜色下,很快便消失在車水馬龍中。

2.山窮水復疑無路

說起小崔這專案,還是公司的一個重點專案,客戶單位是 一家全國知名的能源巨頭,有下屬礦業公司18個,分佈在全國範圍內。這個專案要做的就是管理這些礦業公司的 作業資訊,並且將礦圖釋出出來供各地公司的業務人員使用。這18個礦業公司一共有生產礦井82個,煤層325個,每個煤層包括4張專題圖,每個專題圖都有自己的 業務圖層和背景圖層。目前系統是根據礦圖範圍和地理分佈的實際情況,以煤層為最小的組織單位,通過釋出服務來顯示礦圖。這樣算來,一 共需要釋出325

個服務!考慮到全國18個礦業公司併發訪問是很正常的事,為了確 保服務執行的穩定性,小崔沒有采用服務共享程序的模式,而是採用了服務獨佔程序的模式,這樣一來,伺服器上光是跑這些服務,就要開啟 325+3=328個程序!小崔想想就發愁,於是想要採用叢集的方式,可是老闆告訴他,目前新增硬體的方案,不太 現實,還是從系統架構和開發技術上多想想辦法吧。

其實小崔已經對系統設計進行過很大改進了,在他之前的 那位專案經理,設計的是每個專題圖釋出一個服務,一共需要325*4=1300個服務!小崔接手後首先就把同一個煤 層的4個專題圖合併到一個服務中,通過圖層組去控制,雖然增加了程式碼開發的工作量,但是畢竟將服務數量減 少為原來的四分之一了!也正是看到小崔的這種改進,老闆才堅信,小崔一定還有更多辦法……

小崔也確實想了很多辦法,也都進行了嘗試,包括服務需 要的時候再啟動;通過多個虛擬機器來做叢集;對不同煤層、不同礦井的空間資料進行合併……這些方法都能解決某方面的問題, 但是又都或多或少會引起新的問題,小崔那個愁哇!

3. 柳暗花明又一村

第二天一大早,小崔就趕到了北京國際會議中心,按照講 座日程,先去聽了ArcGIS 10.1的系列講座。在聽完講座之後,小崔和工程師做了交流,打聽到昨天演示“ 動態圖層服務”的工程師在使用者體驗區值守,於是飛奔過去,找到了那位工程師(H工)。

小崔簡單的介紹了專案的背景和目前遇到的問題,希望 H工能夠幫忙想想辦法。H工告訴小崔,通過ArcGIS Server 10.1推出的動態圖層服務,可以很好地解決他遇到的問題。

“動態圖層服務正是用於海量圖層釋出與共享,特 別適用於圖層數量巨大,並且數量還在不斷增加的情況。”H工介紹道。

“對對對,我們目前遇到的情況就是圖層數量特別 多,都需要釋出出來,這個動態圖層服務是10.1中一個新的服務型別嗎?”小崔問道。

“不是,動態圖層服務,確切的說,是ArcGIS Server地圖服務的動態圖層技術,他是地圖服務的一個新特性。”H工答道 。

“那他是怎麼知道我的圖層資料存放在什麼地方呢 ?昨天看你演示的是資料夾,SDE也支援嗎?怎麼進行設定呢?是配置檔案,還是在那兒設定?麻煩嗎?” 小崔連續發問。

“是通過工作空間來管理相關的圖層資料,工作空 間可以是Shapefile或柵格資料資料夾,也可以是File Geodatabase或者ArcSDE。”H工邊說邊開啟昨天演示的DEMO,現場給小 崔演示了起來。

“你看,這裡只需要勾選一個複選框,就表示對該 服務啟用動態圖層技術了。”H工指著設定的地方給小崔看。

 \

 圖 1服務的動態圖層功能啟用

“然後你就可以設定要關聯的工作空間,可以設定 多個哦。”H工繼續給小崔演示著。

\

圖 2管理工作空間
\

圖 3新增工作空間,支援4種類型

“服務釋出之後,通過ArcGIS ServerREST目錄,就可以看到該服務的動態圖層相關特性了。”H工打開了瀏覽器,輸入了ArcGIS ServerREST服務目錄,找到了剛才釋出的服務 。“這裡多出了動態圖層的屬性!”小崔一眼就發現了與之前服務屬性的不同之處。

\

圖 4服務屬性增加了動態圖層內容

“看來動態圖層是地圖服務一個子資源啊,那麼他 支援哪些操作呢?”小崔理解得很快,開始思考更深入的問題。“支援查詢和動態渲染,開啟REST SDK看看吧!”H工找到REST SDK所在的目錄,開啟幫助文件,找到動 態圖層,讓小崔自己驗證。

\

 圖 5動態圖層支援查詢和動態渲染,父資源是地圖服務,子資源則是要素

“哦,動態圖層還支援Feature資源呀,太好了,動態圖層能做的 事情很多!”小崔已經開始思考如何在專案中應用這些最新技術了。“你來操作試試吧,就是昨天主題大會上演示那個DEMO。”H工開啟DEMO,請小崔自己體驗。小崔試著發 了一個服務,指定了兩個Shapefile工作空間。服務中不固定釋出圖層,都通過動態載入來實現。

\

圖 6 China400W服務中沒有圖層

 小崔試了一下動態載入的效果,首先獲取到服務對應的工作空間及其中的圖層,然後載入了一個圖層。 

\

圖 7獲取服務託管的工作空間及其中的圖層
\

圖 8動態載入圖層

然後做了動態渲染,生產了一個GDP專題圖。 

\

圖 9動態渲染

隨後小崔模擬了一下空間資料入庫,將4個圖層匯入到Beijing工作空間中。

\

圖 10空間資料入庫前的Beijing工作空間只有一個圖層( 客戶端檢視)

 \

 圖 11空間資料入庫前的Beijing工作空間只有一個圖層(伺服器 端檢視)

\

圖 12空間資料入庫後的Beijing工作空間有66個圖層(伺服器端檢視)

最新入庫的資料,立刻就能在客戶端看到!整個過程沒有釋出新的服務, 也沒有重新啟動服務,更沒有修改程式程式碼,甚至都沒有重新整理網頁!

\

圖 13空間資料入庫後的Beijing工作空間有66個圖層(客戶端檢視)

小崔又接著試了動態載入和動態渲染,發現剛入庫的圖層 和剛才一樣可以進行動態載入和動態渲染。“這個技術真是好!”小崔親自體驗了一把,對動態圖層服務讚不絕口。“我們 這專案用這個技術太合適了,哈哈!”

4.一個神奇的服務

最後,H工又把剛才給小崔 介紹的動態圖層服務相關的知識,做了總結:

  • 動態圖層服務並不是一種全新的服務,而是ArcGIS Server地圖服務的一個新特性;
  • 動態圖層服務主要用於海量圖層釋出與共享,特別適 用於圖層數量巨大,並且數量還在不斷增加的情況;
  • 動態圖層服務通過工作空間來管理相關的圖層資料, 工作空間可以是Shapefile資料夾、柵格資料夾,也可以是File Geodatabase或者 ArcSDE
  • 動態圖層服務支援的圖層包括向量圖層和柵格圖層;
  • 動態圖層服務在釋出的時候,可以僅釋出一個圖層, 其他圖層可以動態地從工作空間中載入;
  • 動態圖層服務還支援對圖層進行動態渲染,使用者可以 根據自己的喜好建立不同的專題地圖。

小崔已經領會了動態圖層服務的要點,忍不住感嘆: “這個真是一個神奇的服務啊!”說完兩人相視一笑……

轉:http://tm.arcgisonline.cn/show.php?contentid=386