arcgis for js柵格圖層疊加(Raster Layer)問(wèn)題
其實(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è)子圖層(可見(jiàn)其類型為柵格圖層)。
代碼如下:
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ù)輸出的格式有許多種,詳見(jiàn)這里
但是,如果只訪問(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)不見(jiàn)有什么問(wèn)題。為什么這里卻不行,無(wú)論是用
ArcGISDynamicMapServiceLayer,
ArcGISImageServiceLayer,
RasterLayer
還是
ArcGISTiledMapServiceLayer,
FeatureLayer
都不行。前三個(gè)直接報(bào)400錯(cuò),后兩個(gè)沒(méi)報(bào)錯(cuò),但圖層根本出不來(lái)。
難道柵格圖層這么特別?
從周六開(kā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ù),控制子圖層,我想起年初剛開(kāi)始搞arcgis時(shí),自己好像也抄過(guò)類似的代碼,用于顯示或隱藏不同的圖層。翻出來(lái)一看,果然啊,圖層對(duì)象有個(gè)layerInfos的屬性,這里面就是其所有子圖層的列表。所有,不僅僅是兒子,還包括孫子及后代。但這個(gè)layerInfos加載需要一定的過(guò)程,一般在圖層加載完畢的事件中才開(kāi)始訪問(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è)置子圖層可見(jiàn)屬性
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)站的支持!
相關(guān)文章
基于Ionic3實(shí)現(xiàn)選項(xiàng)卡切換并重新加載echarts
這篇文章主要介紹了基于Ionic3實(shí)現(xiàn)選項(xiàng)卡切換并重新加載echarts,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09layui 監(jiān)聽(tīng)select選擇 獲取當(dāng)前select的ID名稱方法
今天小編就為大家分享一篇layui 監(jiān)聽(tīng)select選擇 獲取當(dāng)前select的ID名稱方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09javascript簡(jiǎn)單實(shí)現(xiàn)圖片預(yù)加載
本文是給大家分享一段簡(jiǎn)單的實(shí)現(xiàn)圖片預(yù)加載技術(shù)的javascript代碼,超級(jí)精簡(jiǎn),卻很實(shí)用,這里推薦給大家2014-12-12WordPress中利用AJAX技術(shù)進(jìn)行評(píng)論提交的實(shí)現(xiàn)示例
這篇文章主要介紹了WordPress中利用AJAX技術(shù)進(jìn)行評(píng)論提交的實(shí)現(xiàn)示例,整個(gè)處理的關(guān)鍵點(diǎn)在于文中的ajax_comment函數(shù),需要的朋友可以參考下2016-01-01關(guān)于flash遮蓋div浮動(dòng)層的解決方法
關(guān)于flash遮蓋div浮動(dòng)層2010-07-07js+for循環(huán)實(shí)現(xiàn)字符串自動(dòng)轉(zhuǎn)義的代碼(把后面的字符替換前面的字符)
這段代碼是從網(wǎng)上看到的一段不錯(cuò)的代碼,用for命令實(shí)現(xiàn)字符串的轉(zhuǎn)移,而且使用的是for循環(huán)直接將后面的字符替換成前面的字符,這個(gè)邏輯以前沒(méi)試過(guò)2020-12-12基于JavaScript實(shí)現(xiàn)一個(gè)月餅音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)一個(gè)簡(jiǎn)單的月餅音樂(lè)播放器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-09-09js字符串類型String常用操作實(shí)例總結(jié)
這篇文章主要介紹了js字符串類型String常用操作,結(jié)合實(shí)例形式總結(jié)分析了javascript字符串類型String常用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07