arcgis緊湊型切片讀取與應用1-解析(附原始碼)arcgis緊湊型切片讀取與應用2-webgis動態載入緊湊型切片(附原始碼)
arcgis緊湊型切片讀取與應用3-緊湊型批量轉分散型(附原始碼)
1.前言
arcgis 發布的切片服務分為緊湊型切片和傳統的分散型切片以及最新arcgis por新增的向量切片。傳統的分散型切片面臨的問題是檔案個數太多,部署拷貝過程十分的耗時,緊湊型切片是對分散型切片進行壓縮處理的。乙個.bundle檔案可以存上萬張切片,有利於部署拷貝,.bundlx檔案提供切片索引。本教材分為三個模組依次是
(1)檔案解析。
(2)webgis動態載入緊湊型切片。
(3)緊湊型批量轉分散型。
下面是對緊湊型切片解析的過程,實現使用的c#**。
2.解析
大家可以發現所有.bundlx切片索引檔案大小都是81kb,查閱資料發現每個切片索引都存放著128*128個切片的索引位址。但是並不是每個.bundle檔案都有128*128個切片,例如1級切片只有4個,其餘位置會為空位元組表示。解析方式就是通過切片的x,y,z作為引數解析出對應的索引檔名稱,然後從索引檔案讀取切片的索引位置,最後切片檔案中讀取對應位元組流,儲存成即可,流程如下。
核心實現**如下:
1.通過xyz獲取檔名稱與路徑
///2.通過xy獲取索引值///查詢切片對應的檔案路徑
//////
路徑///
切片等級
//////
///private
string getbundlepath(string root,int level, int rgroup , int
cgroup )
}l = "
l" +l;
var r = rgroup.tostring("x"
);
var rlength =r.length;
if (rlength < 4
)
}r = "
r" +r;
var c = cgroup.tostring("x"
);
var clength =c.length;
if (clength < 4
)
}c = "
c" +c;
var bundlepath=string.format (@"
\_alllayers\\
", bundlesdir,
l, r, c);
return
bundlepath;
}
int packsize = 1283.通過讀取索引檔案,根據索引值獲取切片索引位置;var rgroup = convert.toint32(packsize * convert.toint32(y /packsize));
var cgroup = convert.toint32(packsize * convert.toint32(x /packsize));
context.index = packsize * (x - cgroup) + (y - rgroup);
///4.讀取具體切片資料///讀取切片
//////
///private
byte
readtilefrombundlev1(bundlx context)
}
///3.成果將位元組流儲存成.png輸出,對應專案///讀取切片對應位元組
/// ///
//////
private
byte readtile(string bundlefilename,int
offset)
}
專案,**已經上傳github,下篇寫一下webgis動態載入緊湊型切片。
出處:
記憶體緊湊對齊
以前對於記憶體緊湊對齊總是和模糊今天終於弄明白了,拿出來分享下 當使用者指定乙個align值n 或編譯器的預設 時,每種資料型別的實際align值定義如下 actual align min n,natual align 其中natual 值為資料型別的大小或者結構的實際align大小 結構體 str...
軟體的緊湊性
今天閱讀了作者對系統設計有這樣一點建議 在設計系統的時候,合理對待緊湊性 是指乙個設計是否能夠放進人腦中的特性 設計時盡量考慮,決不隨意拋棄.具有緊湊性的軟體工具可以使人樂於使用,令使用者的工作和想法完美結合.就拿前段時間製作的乙個宿舍管理系統為例,如果僅將系統功能侷限在表層次的crud功能下,使用...
Google Reader 恢復緊湊布局CSS修正
google reader 今天更新了新的介面,與 相整合。只是閱讀器條目變得過於鬆散,一頁之內顯示不了幾個,令人很不爽。修正方法 windows 環境,moziila firefox 瀏覽器 資料夾,開啟 usercontent example.css,另存為 usercontent.css,在其...