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 document.execCommand() 常用解析
Dec 14 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
Jan 10 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
实例详解jQuery表单验证插件validate
Jan 18 Javascript
javascript添加前置0(补零)的几种方法
Jan 05 Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
Mar 19 Javascript
Angular.JS读取数据库数据调用完整实例
Jul 02 Javascript
详解elementui之el-image-viewer(图片查看器)
Aug 30 Javascript
JavaScript中arguments的使用方法详解
Dec 20 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
vue实现评论列表功能
2019/10/25 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
简单了解python元组tuple相关原理
2019/12/02 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
学生检讨书范文
2015/01/27 职场文书
司机岗位职责
2015/02/04 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript