1. 程式人生 > >五分鐘學GIS | 快速生成地圖瓦片祕籍

五分鐘學GIS | 快速生成地圖瓦片祕籍

什麼是地圖瓦片?

       地圖瓦片是包含了一系列比例尺、一定地圖範圍內的地圖切片檔案。地圖瓦片按照金字塔結構組織,每張瓦片都可通過級別、行列號唯一標記。在平移、縮放地圖時,瀏覽器根據金字塔規則,計算出所需的瓦片,從瓦片伺服器獲取並拼接。地圖瓦片,是一種改善地圖瀏覽使用者體驗的優化策略。
這裡寫圖片描述
       隨著測繪技術的發展,地圖資料的體量越來越大,一般情況下,電子地圖生成地圖瓦片(以下簡稱切圖)少則需要幾天,多則一個月乃至更長時間。如何才能高效地生成地圖瓦片,是眾多技術人員共同關心的問題。

多工切圖原理

       多工切圖是將地圖切圖任務拆分成多個子任務,同時開啟多個程序,每個程序自動領取並執行切圖子任務。切圖結果支援儲存為本地瓦片,也支援儲存到MongoDB資料庫。  
       多工切圖支援在一臺計算機上開啟多個程序執行切圖任務,也支援在多個計算機分別開啟多個程序,獲取子任務執行切圖任務。
這裡寫圖片描述

多工切圖的優勢

       相對單任務切圖,多工切圖能夠有效縮短生成地圖瓦片的時間。切圖過程中,如果有閒置機器資源,可以增加程序數;反之,如果機器資源緊張,則可以減少程序數,做到最大限度地、合理有效地利用計算機資源。
       經過多次、反覆的測試驗證,對於單臺機器,建議設定的切圖任務個數在2~CPU個數×2的範圍進行取值,可以顯著提升切圖效率。
這裡寫圖片描述
       測試場景說明:China向量地圖,切圖比例尺1:18055,拆分得到100個子任務,共生成1638400張256*256畫素的瓦片。
       多工切圖功能,既支援單個機器上切圖(單機多工),也支援多個機器協同切圖(多機多工)。經過反覆多次測試驗證表明,輸出時瓦片儲存型別不同,瓦片的儲存位置不同,要有效提高切圖效率,適用的切圖方式也是不同的。下表1中給出了一些推薦設定。
這裡寫圖片描述


注:圖3、表1中的測試結論,均基於SuperMap iDesktop 9D SP1。

SuperMap多工切圖要點

       在SuperMap桌面軟體中執行多工切圖時,需要注意以下幾點:
       1.資料來源只讀:多工切圖時每個切圖任務會同時訪問地圖中圖層所在的資料來源,所以資料來源需要設定為只讀開啟,並儲存工作空間。
       2.切圖程序數目:根據計算機的CPU個數來設定多工切圖的程序數,推薦程序數在2~CPU個數×2的範圍內。
       3.多機切圖:執行多機多工切圖,需要確保多臺機器均能連線到Host主機,並進入共享目錄。 
       4.共享目錄:輸出瓦片儲存型別為原始或緊湊時,多機多工切圖需要在主機中設定一個共享目錄,確保其他機器對該共享目錄有讀寫許可權,並且無密碼。

SuperMap多工切圖實戰

       在SuperMap桌面軟體中進行多工切圖的流程,如下圖4所示,只需簡單4步,即可完成多工切圖。注:圖4流程中的程序1、程序2……程序N等多個程序執行切圖任務,在計算機後臺進行,無需人工參與。
這裡寫圖片描述
       我們通過對SuperMap資料產品包中的示例地圖China進行單機多工切圖,來了解具體的切圖步驟。
(1)新建切圖任務
       開啟China地圖,在地圖選項卡製圖分組中,單擊多工,在彈出的對話方塊中選擇新建切圖任務。
(2)設定切片基本引數
       設定切圖比例尺,塊大小,瓦片名稱,瓦片路徑,瓦片儲存型別,以及瓦片範圍等基本引數。
       China地圖設定了標準的14級別的比例尺,在此例中,切圖比例尺採用預設的地圖比例尺,其他引數也使用預設值。
(3)設定多工引數
       根據上一步的引數設定,系統自動拆分完任務之後,會彈出多工切圖對話方塊,在對話方塊中,檢查或設定工作空間路徑、地圖的名稱,以及程序數等引數。
       根據切圖計算機的配置,設定程序引數為6並應用。
這裡寫圖片描述
(4)執行生成
       引數確認無誤後,點選生成,系統後臺自動執行切圖任務。地圖切圖完成後,會彈出此次切圖的用時統計,方便了解切圖耗時。
多工切圖的詳細操作過程,請點選:
http://supermap-idesktop.github.io/SuperMap-iDesktop-Cross/docs/Cache/MultiProcessCache.html?Cache,MultiProcessesCache,Cache
SuperMap桌面產品及資料產品包下載,請點選:http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx