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实现的分页函数
Feb 07 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
Dec 28 Javascript
禁止ajax缓存获取程序最新数据的方法
Nov 19 Javascript
javascript使用smipleChart实现简单图表
Jan 02 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
Oct 25 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
js最简单的双向绑定实例讲解
Jan 02 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 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
怎样在UNIX系统下安装php3
2006/10/09 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
js中的闭包实例展示
2018/11/01 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
Python tkinter事件高级用法实例
2018/01/31 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
公司前台接待岗位职责
2013/12/03 职场文书
挂职思想汇报
2013/12/31 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
青年文明号服务承诺
2014/03/31 职场文书
鼓舞士气的口号
2014/06/16 职场文书
新教师培训心得体会
2014/09/02 职场文书
庆七一宣传标语
2014/10/08 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书