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模板技术
Apr 27 Javascript
javascript for循环设法提高性能
Feb 24 Javascript
jQuery asp.net 用json格式返回自定义对象
Apr 07 Javascript
详解jquery中$.ajax方法提交表单
Nov 03 Javascript
原生javascript实现图片滚动、延时加载功能
Jan 12 Javascript
JS+CSS实现的拖动分页效果实例
May 11 Javascript
javascript运动详解
Jul 06 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
JavaScript实现Base64编码转换
Apr 23 Javascript
使用bootstrap插件实现模态框效果
May 10 Javascript
限时抢购-倒计时的完整实例(分享)
Sep 17 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
在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+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python实现简单的购物程序代码实例
2020/03/03 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
旷课检讨书3000字
2014/02/04 职场文书
送达通知书
2015/04/25 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL