实际上,这个问题可能与栅格图层没有太大关系,也可能存在于所有类型的图层中。我对arcgis还不是很了解。目前只遇到栅格图层的问题,要先记下来,有疑惑。
栅格图层有什么问题?我不能折叠它,并报告一个错误。
例如,有这样一个地图服务:
然后你想直接覆盖其中一个子图层(可以看到它的类型是栅格图层)。
代码如下:
var layer=new ArcGIS dynamicmapservicelayer(' http://192 . 168 . 0 . 225:6080/ArcGIS/HN _ test/MapServer/1 ');map.addLayer(图层);但这将报告一个错误。报告“400”错误,错误提示为:不支持的输出格式。
错误:不支持输出格式。代码: 400
什么格式?是图像格式。arcgis图层服务输出有多种格式,如下所示
但是,如果您只访问层服务的根地址,则该层可以出来:
var layer=new ArcGIS dynamicmapservicelayer(' http://192 . 168 . 0 . 225:6080/ArcGIS/HN _ test/MapServer ');//-没有“/1”地图。在它后面添加层(layer );
很奇怪,我在折叠FeatureLayer的时候,总是直接访问子层,从来没有看到任何问题。为什么在这里不管用都不行
ArcGISDynamicMapServiceLayer、ArcGISImageServiceLayer、RasterLayer
仍然
ArcGISTiledMapServiceLayer,FeatureLayer
他们都不行。前三个直接报了400个错误,后两个没有报错误,但是层根本出不来。
光栅图层有这么特别吗?
从周六到周二,我每天都花时间做这道题,问了两个高手,但高手都不在。其中一个居然提到了问题的答案,但是我没看懂,还是想不通。这种问题搜索百度是解决不了的,也没有代码提到栅格图层(这也证明了栅格图层不需要任何特殊对象处理)。
后来偶尔在网上看到一篇关于访问地图服务和控制子图层的文章。我记得年初开始做arcgis的时候,我好像复制了类似的代码来显示或者隐藏不同的图层。抬头一看,果然图层对象有layerInfos属性,这是它所有子图层的列表。所有人,不仅是儿子,还有孙子和他们的后代。但是,这个layerInfos需要一定的进程来加载,通常只有在层加载之后才开始访问。
修改代码,图像终于出来了。
处理过程如下:
1.构建动态切片层对象
var layer=new ArcGIS dynamicmapservicelayer(http://192 . 168 . 0 . 225:6080/ArcGIS/rest/services/HN _ test/MapServer);2.加载图层对象后,设置子图层的可见属性
if(layer . loaded){ buildSubLayerList(layer);}else { dojo.connect(layer,' onLoad ',BuildSubYerlist);}函数buildSubLayerList(layer){ var visible=[];道场。地图(图层。layer infos,function (info,index){ if(qualified)visible . push(info . id);});map.addLayer(图层);//一切都准备好了,所以我们可以给地图添加图层}摘要
以上是边肖介绍的js栅格图层的arcgis。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!