今天客戶問起預緩衝產生需要多少時間、多上張圖片,上次計算緩衝張數已經是去年的事情了,時間較久就翻了翻以前的記錄和研發的同事記錄如下,以供後續參考吧。
計算前需要準備的內容:
1、DPI,一般普通PC的DPI為72-96,此處考慮Deskpro出預緩衝時候設定出圖與裝置無關,所以直接通過CustomMapRatioX及CustomMapRatioY值計算了,DPI = CustomMapRatioX * 25.4(一般CustomMapRatioX = CustomMapRatioY,CustomMapRatioX值可以參考Deskpro安裝目錄/bin/supermap.ini檔案中值) 。
2、地圖範圍,即左右及上下距離,此處參考Deskpro 出預緩衝索引範圍如
得出上下距離:得出 7612.6676397641 米
左右距離:如得出 8910.4536856326 米
3、圖片大小 一般 為256或者512像素。
4、英寸 = 2.54 厘米
5、地球赤道長度 = 40073700 米
6、比例尺。
計算思路如下:
1、推算出每張圖片的實際地理距離 ((512 像素 / DPI) * 2.54 * 比例尺) / 100 。
2、如果資料單位是米,則上下左右距離 / 每張圖片的實際地理距離 ----取整後 相乘即可。
3、如果資料單位是度,則根據 (地球赤道長度 / 360 ) * 上下 (左右)實際地理距離,此處實際上要考慮高緯度及低緯度的區別,由於此處是估算,所以暫且考慮相同。
注意:此處由於是切圖,所以計算出左右 應該切的地圖張數後 +1 或者 +2即可。
例子:
長春地圖:
參數值:圖片大小 512像素,上下 (7612.6676397641 )、左右(8910.4536856326 ) ,比例尺1000,DPI = 3.5 * 25.4 = 88.9
即值為上下切的圖塊 數目為 = 7612.6676397641 / ((( 512 / 88.9 ) * 2.54 * 1000 ) / 100) = 53 + 1
左右的圖塊 數目為 = 8910.4536856326 / ((( 512 / 88.9 ) * 2.54 * 1000 ) / 100) = 61 + 1
圖塊個數為 = 上塊數目 * 左右圖塊數目 = 54 * 62 = 3348 可以參考和Deskpro計算相同。
中國地圖:
參數值:圖片大小 512 像素 ,上下(49.724654913)、左右(61.5884246827),比例尺 1000000,DPI = 88.9
每度代表的 地理長度 = 40073700 / 360
上下切塊數目 = ((40073700 / 360 )*49.724654913) / ((( 512 / 88.9 ) * 2.54 * 1000000 ) / 100) = 38 + 1
左右切塊數目 = ((40073700 / 360 )*61.5884246827) / ((( 512 / 88.9 ) * 2.54 * 1000000 ) / 100) = 47 + 1
圖塊個數為 = 上塊數目 * 左右圖塊數目 = 48 * 39 = 1872,如所示
總結:上面粗略的估計了地圖的緩衝切塊的個數,由於SuperMap Deskpro中地圖是以比例尺,而不是空間解析度來表達地圖的,所以會涉及到DPI的相關計算,相關概念可以參考WIKI百科。