.tpk格式檔案簡介

暖楓無敵發表於2015-03-12

1、.tpk格式的檔案是什麼?

      tpk是ArcGIS10.1推出的一種新的資料檔案型別,主要是用於將切片檔案打包形成離線地圖包,tpk可以在ArcGIS Runtime或者ArcGIS for Android/iOS中作為切片底圖被載入。


2、.tpk存在的意義?

     為什麼要存在tpk檔案,這個要從需求說起。例如我們要做一個ArcGIS for Android/iOS應用,現在手機的流量還是不便宜的,而且也是為了保證速度,希望把地圖資料打包到本地。其實也就是一些切片資料,tpk檔案就可以做到。

再例如,ArcGIS API for WPF,該開發包只有幾M幾個dll。我們要做一個應用的話,只要顯示底圖資料,然後在這些底圖資料的基礎上做一個資訊管理和定位工作。此時除了顯示底圖資料之外,不需要其他的複雜的GIS功能。ArcGIS API for WP提供的功能是很簡單的,從其dll包的大小也能看出來。去載入mxd嗎?ArcGIS API for WPF幹不了這事,他要是能做的了,為什麼還會有幾百M的ArcEngine呢。所以一把情況下都需要連線ArcServer服務,在ArcServer端,ArcServer會把ArcGIS API wpf請求轉換成圖片,返回給客戶端。客戶端API再負責顯示。這樣解析地圖資料的功能全在ArcServer端完成。既然ArcGIS RunTime API沒有解析地圖檔案的功能,但是很容易載入圖片的,如果我們把切好的瓦片放在客戶端,這樣ArcGIS Runtime的api不用太大、不用太複雜就可以解析快取資料,並展示出來。


3、.tpk的作用是什麼?

     從上節我們就很容易瞭解了tpk檔案的用處。就是把一些地圖快取資料打包到客戶端。什麼樣的專案會用到這些呢?

  • 手機App

綜合流量和速度的問題,手機App完全可以使用這中方式。並且手機app一般沒有複雜的GIS功能,主要就是定位和展示。所以把底圖提前做成瓦片放在客戶端是一個很明智的選擇。

  • ArcGIS API for WPF 做的弱GIS型別的專案
之前我們在座ArcGIS的CS專案都是使用ArcEngine,當專案部署的時候,需要安裝ArcEngine Runtime。ArcEngine Runtime有幾百M,並且需要單獨安裝,還要驗證許可。但如果我們再一個資料管理的專案中,只需要GIS資料的定位、展示和簡單修改。那麼我們是否還需要ArcEngine呢?之前我們是沒有選擇的,現在我們多了一個選擇,就是ArcGIS Runtime和ArcGIS API for WPF。
ArcGIS API for WPF可以展示ArcServer釋出的地圖服務。而且ArcGIS Runtime內建了一個ArcServer,在我們部署的系統啟動時,通過程式碼控制可以啟動內建的ArcServer。這樣我們就可以訪問ArcServer提供的功能了,使用起來和單獨部署的ArcServer一樣。也就是說理論上,ArcGIS API for WPF加上內建的ArcServer是可以完成很多GIS的功能的,包括較為複雜的GIS分析。當我們部署的時候,也會比較簡單,直接把生成的部署包拷貝到指定機器上,就可以直接執行。
但我們要注意到一點,這個內建的ArcServer並不是免費的。ArcGIS API for WPF是免費的。當我們做一個更簡單的CS系統時(GIS功能簡單),只包括底圖展示、定位等功能。那麼我們要解決的問題就是如何載入底圖。因為ArcgIS API是不支援載入mxd的,既然是單機版,又不能訪問外部的ArcServer或其他地圖服務。這就需要tpk檔案了,把底圖資料提前做成快取,放在執行程式下面,就可以。而且這樣一來,系統不僅體積小,而且是ArcGIS這塊用到的都是免費的。


相關文章