日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS Server开发教程系列(3)切片

發(fā)布時(shí)間:2025/3/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS Server开发教程系列(3)切片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

切片工作,我們可以一級(jí)一級(jí)的切,也可以,所有的一塊切,Recreate All Tiles這項(xiàng)是說(shuō),在沒(méi)有進(jìn)行任何的切片工作時(shí),可以選用這項(xiàng);Recreate Empty Tiles這項(xiàng)是說(shuō),如果之前已經(jīng)對(duì)某一級(jí)進(jìn)行了切片,再重新切片時(shí),可以選這項(xiàng),具體可以查看幫助;Delete Tiles這項(xiàng)可以刪除之前切的切片;比方說(shuō)我們計(jì)算機(jī)正在切圖,突然間斷電了,切了幾天,幾十G的地圖切片,怎么辦?我們不能重新開始切啊,我們就可以選擇Recreate Empty Tiles,把剩余的地圖切片補(bǔ)上即可。

?

切片參數(shù)設(shè)置可以在發(fā)布服務(wù)時(shí)進(jìn)行,或者catalog里點(diǎn)擊已發(fā)布的服務(wù)修改服務(wù)屬性

?

?

這里設(shè)置文本的反鋸齒,最好設(shè)置為normal或以上,否則容易出現(xiàn)文本不清晰

設(shè)置緩存目錄:這個(gè)很重要,因?yàn)槲覀冇袝r(shí)切圖可數(shù)據(jù)量可能幾十G,上百G,甚至上T,這樣的話我們不能把切片默認(rèn)到目錄:C:\arcgisserver\directories\arcgiscache目錄,我們需要添加一個(gè)磁盤空間比較大的盤

?

?

設(shè)置切片的CPU核數(shù),本機(jī)4個(gè)CPU,4個(gè)線程;所以我們?cè)O(shè)置最大用幾個(gè)CPU切片的時(shí)候,那就是3了,如果你設(shè)置成5,那么最后發(fā)布是不成功的。

Cpu線程數(shù)決定了你將要最多要實(shí)例化多少個(gè)進(jìn)程去切圖,一般最大設(shè)置為CPU線程數(shù)-1,這樣保證CPU使用率在50%左右,如果設(shè)置太大,會(huì)造成CPU使用率在100%,硬件使用率一直在100%?可能會(huì)導(dǎo)致負(fù)荷過(guò)重,從而導(dǎo)致系統(tǒng)出現(xiàn)問(wèn)題。

?

根據(jù)需求分別設(shè)置下面的參數(shù),切片切幾個(gè)級(jí)別

?

選擇suggest,彈出輸入框輸入設(shè)置幾個(gè)級(jí)別,這里設(shè)置為5

?

下面按圖設(shè)置即可

?

可以添加或刪除自定義下的比例尺(這個(gè)地方已經(jīng)進(jìn)行過(guò)切片所以是灰色的),可以設(shè)置切片的格式為PNG32,存儲(chǔ)格式

?

?

高級(jí)設(shè)置這里根據(jù)需要選擇

?

?

以下一段資料參考http://blog.csdn.net/warrenwyf/article/details/6069711

ArcGIS 10中出現(xiàn)了一種新的切片緩存文件格式:緊湊型存儲(chǔ)(Compact)。與之前的松散型存儲(chǔ)(Exploded)相比,它有遷移方便、創(chuàng)建更快、減少存儲(chǔ)空間等諸多優(yōu)點(diǎn),已經(jīng)成為了創(chuàng)建切片緩存的默認(rèn)格式。對(duì)于本身ArcGIS的產(chǎn)品而言,訪問(wèn)緊湊型存儲(chǔ)與訪問(wèn)松散型存儲(chǔ)沒(méi)有任何區(qū)別,但是,如果第三方應(yīng)用想訪問(wèn)新的切片格式,目前官方給出了“不可以”的答復(fù):

The internal architecture of the bundle is not publicly documented by ESRI. If you've coded your own logic to pull tiles out of a virtual directory, you should continue to use the "exploded" format which stores each tile as a single file and was the only option at ArcGIS Server versions 9.3.1 and previous.

Google了一下,也沒(méi)有任何相關(guān)的資料,因此索性自力更生,自己分析一下緊湊型存儲(chǔ)的格式,相信這是目前可以找到的關(guān)于緊湊型存儲(chǔ)內(nèi)部格式的唯一資料。

l??緊湊型存儲(chǔ)的原理

緊湊型存儲(chǔ)最主要的兩種文件是bundle和bundlx文件,其中bundle文件用以存儲(chǔ)切片數(shù)據(jù),bundlx是bundle文件中切片數(shù)據(jù)的索引文件。

一個(gè)bundle文件中最多可以存儲(chǔ)128×128(16384)個(gè)切片,但是創(chuàng)建切片緩存并不是一張張切片單獨(dú)生成,而是以4096像素(無(wú)抗鋸齒)或2048像素(有抗鋸齒)為邊長(zhǎng)渲染的,如果我們選擇的切片邊長(zhǎng)為256像素并開啟了抗鋸齒,那么每次ArcSOC進(jìn)程創(chuàng)建的是一張以8×8(64)個(gè)切片拼接成的大圖,然后切割后存入bundle文件中。

下圖中,藍(lán)色邊框代表的是bundle文件,黑色格子是生成切片時(shí)拼接的大圖,具體的每個(gè)切片在黑色格子中,圖中并沒(méi)有顯示出來(lái)。

?

?

l??存儲(chǔ)格式的分析

在分析緊湊型存儲(chǔ)格式之前,我首先問(wèn)自己,如果你要在一個(gè)bundle文件中存儲(chǔ)內(nèi)容,同時(shí)通過(guò)一個(gè)bundlx文件中存放索引應(yīng)該怎么做?中規(guī)中矩的做法就是參考數(shù)據(jù)庫(kù)的位圖索引方式,在bundlx文件中用固定的幾個(gè)字節(jié)標(biāo)識(shí)一個(gè)切片在bundle文件中的狀態(tài)(存儲(chǔ)的偏移量和長(zhǎng)度)。

觀察ArcGIS生成的bundlx文件,每個(gè)文件都是一樣的大小:81952字節(jié)。上面已經(jīng)提到,每個(gè)bundle文件中最多存儲(chǔ)16384個(gè)切片,雖然bundle文件中可能并沒(méi)有這么多切片,但是,我猜測(cè)bundlx文件中必然是保留了所有者16384個(gè)切片的索引位置。粗略估計(jì)每個(gè)切片會(huì)占據(jù)大約5個(gè)字節(jié),16384×5=81920字節(jié),還多出32字節(jié),猜測(cè)存儲(chǔ)bundlx文件的標(biāo)識(shí)信息。

通過(guò)對(duì)一個(gè)很存儲(chǔ)切片很稀疏的bundlx文件的規(guī)律進(jìn)行觀察和猜測(cè),確定了bundlx中文件起始16字節(jié)和文件結(jié)束16字節(jié)與索引無(wú)關(guān),剩余的81920字節(jié)數(shù)據(jù)以5個(gè)字節(jié)的頻率重復(fù),構(gòu)成了一個(gè)對(duì)bundle文件的索引。

本來(lái)以為這5個(gè)字節(jié)會(huì)保存bundle文件中切片數(shù)據(jù)的偏移和長(zhǎng)度,但是發(fā)現(xiàn)5個(gè)字節(jié)表達(dá)的信息量可能不夠,因此,我同時(shí)對(duì)bundle中的切片數(shù)據(jù)進(jìn)行了一個(gè)分析。

我猜想文件并沒(méi)有進(jìn)行壓縮處理,因此在文件中搜索PNG文件的文件頭0x89504E47(我在創(chuàng)建緩存時(shí)選擇了PNG24格式),發(fā)現(xiàn)果然如此。同時(shí),每2個(gè)切片數(shù)據(jù)之間相隔了4個(gè)字節(jié)(切片數(shù)據(jù)我是用Exploded的圖片直接進(jìn)行比較的),通過(guò)猜想、嘗試,發(fā)現(xiàn)這4個(gè)字節(jié)正好是以低位到高位的方式標(biāo)示了后續(xù)這個(gè)切片數(shù)據(jù)的長(zhǎng)度。

既然切片數(shù)據(jù)長(zhǎng)度是在bundle文件中記錄的,那么在bundlx文件中索引的必然只包括切片數(shù)據(jù)的偏移量,經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),bundlx中的5個(gè)字節(jié)也是以低位到高位的方式標(biāo)示了數(shù)據(jù)的偏移量。

切片數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)偏移猜想應(yīng)該是無(wú)符號(hào)的整數(shù),后面的實(shí)踐證明了這一點(diǎn)。

還有一個(gè)問(wèn)題,bundlx中的每5個(gè)字節(jié)標(biāo)示的到底是哪個(gè)切片的數(shù)據(jù)偏移?我的實(shí)驗(yàn)的結(jié)果是:按列排序:

1

129

2

130

?

?

3

131

?

?

?

?

?

?

128

256

?

16384

從上面的分析,我們?nèi)绻懒艘粋€(gè)切片的級(jí)別、行號(hào)、列號(hào),就可以通過(guò)bundlx首先找到bundle中切片內(nèi)容的偏移,然后從bundle文件中取出4個(gè)字節(jié)的長(zhǎng)度數(shù)據(jù),再隨后根據(jù)這個(gè)長(zhǎng)度讀取真實(shí)的切片數(shù)據(jù)。關(guān)于如何計(jì)算切片的行號(hào)、列號(hào),以及bundle文件的命名方式,相對(duì)比較簡(jiǎn)單,這里就不詳細(xì)敘述了。

?

然后在catalog里就開始自動(dòng)切片了,可以查看切片進(jìn)度

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的ArcGIS Server开发教程系列(3)切片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。