其實(shí)呢,這個(gè)問(wèn)題或許與柵格圖層(Raster Layer)關(guān)系并不十分大,也可能所有類型的圖層都有這個(gè)問(wèn)題,我對(duì)arcgis尚不十分了解,目前只在柵格圖層遇到問(wèn)題,所以先記下來(lái),存疑。
柵格圖層啥問(wèn)題呢?疊不出來(lái),報(bào)錯(cuò)。
比如,有這么個(gè)地圖服務(wù):
然后想直接疊加其中一個(gè)子圖層(可見其類型為柵格圖層)。
代碼如下:
var layer = new ArcGISDynamicMapServiceLayer("http://192.168.0.225:6080/arcgis/HN_test/MapServer/1"); map.addLayer(layer);
但這樣必報(bào)錯(cuò)。報(bào)”400”錯(cuò)誤,錯(cuò)誤提示為:不支持的輸出格式。
Error: Output format not supported.
Code: 400
啥格式?就是 image 格式。arcgis圖層服務(wù)輸出的格式有許多種,詳見這里
但是,如果只訪問(wèn)圖層服務(wù)的根地址,則圖層可以出來(lái):
var layer = new ArcGISDynamicMapServiceLayer("http://192.168.0.225:6080/arcgis/HN_test/MapServer");//<----------------- 后面沒(méi)有“/1” map.addLayer(layer);
真奇怪啊,我疊FeatureLayer的時(shí)候,都是直接訪問(wèn)子圖層,從來(lái)不見有什么問(wèn)題。為什么這里卻不行,無(wú)論是用
ArcGISDynamicMapServiceLayer,
ArcGISImageServiceLayer,
RasterLayer
還是
ArcGISTiledMapServiceLayer,
FeatureLayer
都不行。前三個(gè)直接報(bào)400錯(cuò),后兩個(gè)沒(méi)報(bào)錯(cuò),但圖層根本出不來(lái)。
難道柵格圖層這么特別?
從周六開始,到今天周二,每天都花了時(shí)間去搞這個(gè)問(wèn)題,問(wèn)了兩個(gè)高手,但高手沒(méi)空,有一個(gè)其實(shí)是提到問(wèn)題答案了,但我沒(méi)理解,還是搞不出來(lái)。這種問(wèn)題,到百度上搜,根本無(wú)從下手,沒(méi)有啥代碼提到柵格圖層的(這也證明其實(shí)柵格圖層并不需要用什么特別的對(duì)象來(lái)處理)。
后來(lái)偶爾看到網(wǎng)上有篇文章提到訪問(wèn)地圖服務(wù),控制子圖層,我想起年初剛開始搞arcgis時(shí),自己好像也抄過(guò)類似的代碼,用于顯示或隱藏不同的圖層。翻出來(lái)一看,果然啊,圖層對(duì)象有個(gè)layerInfos的屬性,這里面就是其所有子圖層的列表。所有,不僅僅是兒子,還包括孫子及后代。但這個(gè)layerInfos加載需要一定的過(guò)程,一般在圖層加載完畢的事件中才開始訪問(wèn)。
修改代碼,圖像終于出來(lái)了。
處理過(guò)程如下:
1、構(gòu)建動(dòng)態(tài)切片圖層對(duì)象
var layer = new ArcGISDynamicMapServiceLayer(http://192.168.0.225:6080/arcgis/rest/services/HN_test/MapServer);
2、該圖層對(duì)象加載完畢后設(shè)置子圖層可見屬性
if (layer.loaded) { buildSubLayerList(layer); } else { dojo.connect(layer, "onLoad", buildSubLayerList); } function buildSubLayerList(layer) { var visible = []; dojo.map(layer.layerInfos,function (info, index) { if(符合條件) visible.push(info.id); }); map.addLayer(layer);//萬(wàn)事俱備,至此方才將圖層添加到地圖 }
總結(jié)
以上所述是小編給大家介紹的arcgis for js柵格圖層疊加(Raster Layer),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com