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最常用与实用的创建类的代码
Aug 12 Javascript
extjs 如何给column 加上提示
Jul 29 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
Feb 09 Javascript
原生js实现简单的模态框示例
Sep 08 Javascript
vue观察模式浅析
Sep 25 Javascript
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
May 09 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
Vue 自适应高度表格的实现方法
May 13 Javascript
在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可变函数的经典用法
2013/06/20 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
告诉大家什么是JSON
2008/06/10 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
Python的Tornado框架异步编程入门实例
2015/04/24 Python
基于pip install django失败时的解决方法
2018/06/12 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
男人帮观后感
2015/06/18 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python