天天看點

如何基于谷歌地圖的Server緩存釋出Image Service服務

如何基于谷歌地圖的Server緩存釋出Image Service服務

第一步:下載下傳地圖資料

下載下傳安裝水經注萬能地圖下載下傳器,啟動時隻選擇電子.谷歌(這裡可以根據自己的需要選擇),如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

找到成都後框選下載下傳成都區域,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

輕按兩下建立任務,選擇1到19級,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

第二步:導出 ArcGIS Server 服務

下載下傳完成後,詢問是否導出,點選選擇“是”;然後在清單的任務例表中選擇“成都”,再點選“确定”顯示“導出圖檔資料”對話框,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

在該對話框中選擇導出類型為“瓦片:ArcGIS Server”;儲存路徑為“c:\arcgisserver\directories\arcgiscache”;儲存類型為“PNG(*.png)”,最後點選“輸出”按鈕開始導出資料,結果如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

需要說明的是,如果瓦片數量特别多(如100萬張以上),在導出時就要選擇導出到ArcGIS的緩存目錄(如“c:\arcgisserver\directories\arcgiscache”)以友善使用。

第三步:導出臨時資料

導出臨時資料的目的在于快速建構一個Image Server服務,它的用途在後面會詳細講述。

在下載下傳器中選擇之前下載下傳的任務,然後在“檢視下載下傳結果”區域點選“導出拼接圖檔”工具,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

這裡隻需要選擇幾個較小的級别即可,資料越少越好;另外,需要特别注意的是儲存路徑一定要修改一下,要確定與之前的路徑不同,以避免配置檔案被覆寫,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

導出結果如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

為了便于差別于之前的導出結果,這裡我們把“成都_ArcgisServerTiles”檔案夾改為“成都_Temp”,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

第四步:建立Image Services服務 啟動ArcCatalog 10.2,在“Folder Connections”目錄上單擊右鍵并選擇“Connect To Folder...”菜單,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

在目錄樹中選擇“D:\SGDownload”目錄(即臨時資料存放的目錄)并點選“确定”按鈕完成選擇,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

以上設定完成後,“成都_Temp”将在樹中顯示,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

在“成都_Temp”上單擊滑鼠右鍵,并在菜單中選擇“Share As Image Service...”,将顯示如下圖所示對話框。

如何基于谷歌地圖的Server緩存釋出Image Service服務

點選“下一步”,将影像服務的名稱改為“成都”,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

再點選“Continue”,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

在顯示的“Service Editor”對話框中分别選擇“Caching”選項中的“Using tiles from a cache”和“ArcGIS Online/Bing Maps/Google Maps”參數,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

然後,點選右上角的“Publish”釋出,将顯“Copying Data to Server”對話框,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

點選“OK”按鈕,将開始将資料複制到伺服器并進行打包處理,如果資料量大,這個過程會非常花時間,這就是我們之前隻選擇少量資料的重要原因。

如何基于谷歌地圖的Server緩存釋出Image Service服務

處理完成後,提示釋出成功,點選“OK”按鈕可以關閉提示,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

這裡我們将看到一個名叫“成都”的Image Service影像服務,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

同時,在ArcGIS緩存目錄“C:\arcgisserver\directories\arcgiscache”也會生成“成都_ImageServer”緩存目錄,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

但我們打開目錄後,會發現檔案是緊湊型的緩存檔案,理論上這樣的檔案對通路速度是有好處的,但對于有上100萬張的瓦片打包的話,需要花時間太久,據使用者反映有時還會報錯,且最後在用戶端呈現的效果也不太理想。

如何基于谷歌地圖的Server緩存釋出Image Service服務

第五步:偷梁換柱

為了解決第四步中出現的問題,我們把生成的緩存替換為我們第一次導出的1-19級的全部資料。

在影像服務“成都”上單擊右鍵,選擇“stop”停止服務。

如何基于谷歌地圖的Server緩存釋出Image Service服務

将緩存目錄中的“成都_ImageServer”檔案夾改為“成都_ImageServer_2”(也可以改為其它任意名字,也可以删除該目錄);然後将“成都_ArcgisServerTiles”改為“成都_ImageServer”,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

檔案夾改名完成後,重新啟動該服務,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

為了完整顯示所有級别的資料,我們需要重新設定一下需要顯示的級别範圍。在影像服務上單擊右鍵選擇“Service Properties...”,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

在顯示的“Service Editor”對話框中,拉動級别滑塊,将顯示級别設定為0到18,即對應下載下傳器中的1到19級。

如何基于谷歌地圖的Server緩存釋出Image Service服務

點選“OK”按鈕完成設定并生效。

第六步:檢視結果

在浏覽器中打開管理器,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

輸入使用者名稱密碼登入後,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

點選“成都”影像服務,可以任意檢視地圖資料了,如下圖所示。

如何基于谷歌地圖的Server緩存釋出Image Service服務

小結:

記得在9.3版本的ArcCalalog中可以直接建立Image Service,并指定下載下傳器導出的ArcGIS Server緩存即可實作Image Service的釋出,但在10.0以上的版本中沒有找到該功能,經過一天的摸索測試,最終采用了偷梁換柱的方式才得以實作,即用一個比較小的資料快速建立一個Image Service,然後再将該服務所對應的緩存資料替換為需要釋出的海量資料。如果大家有更好的方法,歡迎交流指正!

繼續閱讀