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的原理和实现技巧介绍
Nov 08 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
Jul 09 Javascript
jQuery中queue()方法用法实例
Dec 29 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
Jquery动态替换div内容及动态展示的方法
Jan 23 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
JavaScript提升性能的常用技巧总结【经典】
Jun 20 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
原生JavaScript实现购物车
Jan 10 Javascript
vue修饰符.capture和.self的区别
Apr 22 Vue.js
在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
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
国外软件测试工程师面试题
2016/12/09 面试题
毕业大学生自荐信
2014/06/17 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
大学生学年个人总结
2015/02/15 职场文书
实习推荐信格式模板
2015/03/27 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技