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 相关文章推荐
为jQuery增加join方法的实现代码
Nov 28 Javascript
有趣的JavaScript数组长度问题代码说明
Jan 20 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
JQuery $.each遍历JavaScript数组对象实例
Sep 01 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
jQuery制作网页版选项卡
Jul 28 Javascript
JavaScript Ajax实现异步通信
Dec 14 Javascript
十个免费的web前端开发工具详细整理
Sep 18 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
Sep 04 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
Oct 30 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
菜单效果
2006/10/14 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python实现挑选出来100以内的质数
2015/03/24 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
python实现操作文件(文件夹)
2019/10/31 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
优秀干部获奖感言
2014/01/31 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
测量员岗位职责
2015/02/14 职场文书
计划生育工作总结2015
2015/04/03 职场文书
困难补助申请报告
2015/05/19 职场文书
小学运动会入场口号
2015/12/24 职场文书
人力资源部工作计划
2019/05/14 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang