arcgis for js栅格图层叠加(Raster Layer)问题


Posted in Javascript onNovember 22, 2017

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

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

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

arcgis for js栅格图层叠加(Raster Layer)问题

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

arcgis for js栅格图层叠加(Raster Layer)问题

代码如下:

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);

arcgis for js栅格图层叠加(Raster Layer)问题

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

ArcGISDynamicMapServiceLayer,
ArcGISImageServiceLayer,
RasterLayer

还是

ArcGISTiledMapServiceLayer,
FeatureLayer

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

难道栅格图层这么特别?

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

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

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

arcgis for js栅格图层叠加(Raster Layer)问题

处理过程如下:

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),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
鼠标滚轴控制文本框值的JS代码
Nov 19 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
Oct 01 Javascript
使用jQuery实现购物车
Oct 29 jQuery
在vue中添加Echarts图表的基本使用教程
Nov 22 #Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 #Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 #Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
Nov 22 #Javascript
浅谈Angular 中何时取消订阅
Nov 22 #Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 #Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 #Javascript
You might like
phpwind中的数据库操作类
2007/01/02 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP线程的内存回收问题
2016/07/08 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
教师的实习鉴定
2013/12/15 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
护理职业生涯规划书
2014/01/24 职场文书
培训讲师岗位职责
2014/04/13 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
硕士学位申请报告
2015/05/15 职场文书
女性健康讲座主持词
2015/07/04 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
PyTorch中的torch.cat简单介绍
2022/03/17 Python