arcgis for js叠加栅格图层(Raster Layer)
其实呢,这个问题或许与栅格图层(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)相关推荐
- control层alert弹出框乱码_【ArcGIS for JS】动态图层的属性查询(11)
在真实需求中,我们不仅仅是将shp在地图中显示那么简单,我们往往要查询该图层的属性信息,我们在前面代码的基础上添加上属性查询. 1.1方法1(通过click直接获取) 1.1.1代码实现 给要素图层添 ...
- Arcgis Engine 实现单波段栅格图层色带渲染(包括色带反转)
最近有同事问我ArcMap中的色带反转怎么实现,刚好我在整理以前的项目,找到了一些源码备忘. 先说下思路,简单来说就是得到栅格图层的IRasterRenderer,转换为IRasterStretchC ...
- ArcGIS 图像合并至新栅格图层(Mosaic To New Raster和Mosaic)
1.介绍 Mosaic To New Raster 1)Input Raster.输入图层,没什么好说的,把要合并的图层加进来就好了:2)Output Location.这个是结果文件保存的文件夹,注 ...
- ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决
本文介绍在ArcMap软件中,进行分割栅格(Split Raster)工具处理后,得不到结果文件的解决方法. 最近,需要基于一个面要素类,对一个栅格遥感影像加以分割.如下图所示,这个面要素类中 ...
- Arcgis api for JavaScript 4.X 学习——图层加载(要素图层、栅格图层、切片图层)
1. 一定要掌握对应需求在官网中查询信息的能力,比如说要加载图层那么就需要对应到api reference下的layers下对应查找API Referencehttps://developers.ar ...
- ArcGIS基础实验操作100例--实验49按分区划分栅格图层
本实验专栏参考自汤国安教授<地理信息系统基础实验操作100例>一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验49 按分区划分栅格图层 目录 一 ...
- arcgis栅格计算器:将栅格图层指定值设置为Nodata及栅格图层求交
1. 首先需要找到栅格计算器的位置 2. 将栅格图层的某个数据设置为Nodata setnull函数可将特定的栅格值赋值为空值 SetNull("这里是栅格图像名称"==0 &am ...
- ArcGIS多时序栅格图层空间范围不一致
背景 使用IDRISI进行分析模拟时,要保证输入栅格数据的坐标系统.像元大小.空间范围完全一致 方法 首先确定坐标系以及像元大小一致(网上有教程,不做赘述): 利用栅格计算器得到单一像元值的各栅格图层 ...
- Arcgis for Js之加载wms服务
概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...
最新文章
- 可微偏导数一定存在_数学分析复习——偏导数(1)
- javascript 水平文字垂直滚动
- Py之featuretools:featuretools库的简介、安装、使用方法之详细攻略
- 特异性matlab,基于灰色理论计算位置特异性矩阵
- Vmware15的安装(ps解决:重装Vmware出现无法安装服务Vmware Authorization Service)
- xp sp3 安装不了ie8
- 【09】Nginx:静态压缩 / 日志切割 / 防盗链 /恶意解析/ 跨域
- java duplicate parameter e_传递参数[duplicate]时出现问题
- android开发——手机通话功能实现
- 每日两道前端面试题20190226
- 黄聪:VS2008的动、静态编译[转]
- RS232通讯数据解析C#
- Win10+Pytorch0.4.1版本+cuda一键安装
- 什么是java cdm_Java-ORM数据库框架CDM介绍
- 服务器上怎么安虚拟主机呀,上线虚拟主机产品步骤
- 3Dmax玻璃材质参数应该怎样设置
- 空间直线同球体交点求解
- 生化危机4重生 java_生化危机-绝密报告4
- 许鹏:从零开始学习,Apache Spark源码走读
- 【数字信号调制】基于matlab实现AM调制系统附GUI界面