其实呢,这个问题或许与栅格图层(Raster Layer)关系并不十分大,也可能所有类型的图层都有这个问题,我对arcgis尚不十分了解,目前只在栅格图层遇到问题,所以先记下来,存疑。

栅格图层啥问题呢?叠不出来,报错。

比如,有这么个地图服务:

然后想直接叠加其中一个子图层(可见其类型为栅格图层)。

代码如下:

var layer = new ArcGISDynamicMapServiceLayer("http://192.168.0.225:6080/arcgis/HN_test/MapServer/1");
map.addLayer(layer);

但这样必报错。报”400”错误,错误提示为:不支持的输出格式。

Error: Output format not supported.
Code: 400

啥格式?就是 image 格式。arcgis图层服务输出的格式有许多种,详见这里

但是,如果只访问图层服务的根地址,则图层可以出来:

var layer = new ArcGISDynamicMapServiceLayer("http://192.168.0.225:6080/arcgis/HN_test/MapServer");//<----------------- 后面没有“/1”
map.addLayer(layer);

真奇怪啊,我叠FeatureLayer的时候,都是直接访问子图层,从来不见有什么问题。为什么这里却不行,无论是用

ArcGISDynamicMapServiceLayer,
ArcGISImageServiceLayer,
RasterLayer

还是

ArcGISTiledMapServiceLayer,
FeatureLayer

都不行。前三个直接报400错,后两个没报错,但图层根本出不来。

难道栅格图层这么特别?

从周六开始,到今天周二,每天都花了时间去搞这个问题,问了两个高手,但高手没空,有一个其实是提到问题答案了,但我没理解,还是搞不出来。这种问题,到百度上搜,根本无从下手,没有啥代码提到栅格图层的(这也证明其实栅格图层并不需要用什么特别的对象来处理)。

后来偶尔看到网上有篇文章提到访问地图服务,控制子图层,我想起年初刚开始搞arcgis时,自己好像也抄过类似的代码,用于显示或隐藏不同的图层。翻出来一看,果然啊,图层对象有个layerInfos的属性,这里面就是其所有子图层的列表。所有,不仅仅是儿子,还包括孙子及后代。但这个layerInfos加载需要一定的过程,一般在图层加载完毕的事件中才开始访问。

修改代码,图像终于出来了。

处理过程如下:

1、构建动态切片图层对象

var layer = new ArcGISDynamicMapServiceLayer("http://192.168.0.225:6080/arcgis/rest/services/HN_test/MapServer");

2、该图层对象加载完毕后设置子图层可见属性

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);//万事俱备,至此方才将图层添加到地图
}

小可有个疑问,是不是可以这样认为,凡切片图层,影像图层,都是这样处理:

只能访问地图服务,然后再遍历其中的子图层,控制其显隐来达到好像能加载特定图层的效果?

arcgis for js叠加栅格图层(Raster Layer)相关推荐

  1. control层alert弹出框乱码_【ArcGIS for JS】动态图层的属性查询(11)

    在真实需求中,我们不仅仅是将shp在地图中显示那么简单,我们往往要查询该图层的属性信息,我们在前面代码的基础上添加上属性查询. 1.1方法1(通过click直接获取) 1.1.1代码实现 给要素图层添 ...

  2. Arcgis Engine 实现单波段栅格图层色带渲染(包括色带反转)

    最近有同事问我ArcMap中的色带反转怎么实现,刚好我在整理以前的项目,找到了一些源码备忘. 先说下思路,简单来说就是得到栅格图层的IRasterRenderer,转换为IRasterStretchC ...

  3. ArcGIS 图像合并至新栅格图层(Mosaic To New Raster和Mosaic)

    1.介绍 Mosaic To New Raster 1)Input Raster.输入图层,没什么好说的,把要合并的图层加进来就好了:2)Output Location.这个是结果文件保存的文件夹,注 ...

  4. ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决

      本文介绍在ArcMap软件中,进行分割栅格(Split Raster)工具处理后,得不到结果文件的解决方法.   最近,需要基于一个面要素类,对一个栅格遥感影像加以分割.如下图所示,这个面要素类中 ...

  5. Arcgis api for JavaScript 4.X 学习——图层加载(要素图层、栅格图层、切片图层)

    1. 一定要掌握对应需求在官网中查询信息的能力,比如说要加载图层那么就需要对应到api reference下的layers下对应查找API Referencehttps://developers.ar ...

  6. ArcGIS基础实验操作100例--实验49按分区划分栅格图层

    本实验专栏参考自汤国安教授<地理信息系统基础实验操作100例>一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验49 按分区划分栅格图层 目录 一 ...

  7. arcgis栅格计算器:将栅格图层指定值设置为Nodata及栅格图层求交

    1. 首先需要找到栅格计算器的位置 2. 将栅格图层的某个数据设置为Nodata setnull函数可将特定的栅格值赋值为空值 SetNull("这里是栅格图像名称"==0 &am ...

  8. ArcGIS多时序栅格图层空间范围不一致

    背景 使用IDRISI进行分析模拟时,要保证输入栅格数据的坐标系统.像元大小.空间范围完全一致 方法 首先确定坐标系以及像元大小一致(网上有教程,不做赘述): 利用栅格计算器得到单一像元值的各栅格图层 ...

  9. Arcgis for Js之加载wms服务

    概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...

最新文章

  1. 可微偏导数一定存在_数学分析复习——偏导数(1)
  2. javascript 水平文字垂直滚动
  3. Py之featuretools:featuretools库的简介、安装、使用方法之详细攻略
  4. 特异性matlab,基于灰色理论计算位置特异性矩阵
  5. Vmware15的安装(ps解决:重装Vmware出现无法安装服务Vmware Authorization Service)
  6. xp sp3 安装不了ie8
  7. 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域
  8. java duplicate parameter e_传递参数[duplicate]时出现问题
  9. android开发——手机通话功能实现
  10. 每日两道前端面试题20190226
  11. 黄聪:VS2008的动、静态编译[转]
  12. RS232通讯数据解析C#
  13. Win10+Pytorch0.4.1版本+cuda一键安装
  14. 什么是java cdm_Java-ORM数据库框架CDM介绍
  15. 服务器上怎么安虚拟主机呀,上线虚拟主机产品步骤
  16. 3Dmax玻璃材质参数应该怎样设置
  17. 空间直线同球体交点求解
  18. 生化危机4重生 java_生化危机-绝密报告4
  19. 许鹏:从零开始学习,Apache Spark源码走读
  20. 【数字信号调制】基于matlab实现AM调制系统附GUI界面

热门文章

  1. vue环境变量配置——process.env(详细)
  2. STM32 自动识别单击和连续按键
  3. Java项目开始前必要的七大准备工作,少一步你都得重头开始写
  4. excel使用小笔记
  5. java 最好的ide_最好的Java IDE
  6. CXO是什么?医药板块龙头都有哪些?
  7. selenium 和 IP代理池
  8. LoRa学习总结(二)
  9. 签名不好看怎么办?Python帮你设计最靓的签名
  10. 【超详细】手把手教你搭建MongoDB集群搭建