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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
JScript中的&quot;this&quot;关键字使用方式补充材料
Mar 08 Javascript
利用json获取字符出现次数的代码
Mar 22 Javascript
js 如何实现对数据库的增删改查
Nov 23 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
javascript+css3 实现动态按钮菜单特效
Feb 06 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
js面试题之异步问题的深入理解
Sep 20 Javascript
详解vue身份认证管理和租户管理
May 25 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
关于document.cookie的使用javascript
2008/04/11 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
Python读取mp3中ID3信息的方法
2015/03/05 Python
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python支持多线程的爬虫实例
2019/12/21 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
常用的10个Python实用小技巧
2020/08/10 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
公司前台辞职报告
2014/01/19 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
物资采购方案
2014/06/12 职场文书
党员志愿者活动方案
2014/08/28 职场文书
读书笔记怎么写
2015/07/01 职场文书
高一军训口号
2015/12/25 职场文书
九不准学习心得体会
2016/01/23 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript