zoukankan      html  css  js  c++  java
  • arcgis jsapi接口入门系列(2):图层基础操作

            //图层相关demo
            layerFun: function () {
                //获取地图的所有图层(不包括的图层类型:底图图层(basemaps))
                let layers = this.map.layers;
                //获取地图的所有图层(包括所有图层类型)
                let alllayers = this.map.allLayers;
                //PS:以上的类型都是Collection<Layer>(看起来像java的泛型list),不是js原生的东西,详细用法请看arcgis jsapi官方文档
    
                //传统遍历方法
                for (let i = 0; i < layers.length; i++) {
                    let layer3 = layers.getItemAt(i);
                }
    
                //Collection支持的通用查询方法,用法类似lambda表达式
                //根据条件查询指定图层(只返回一个)
                var layer2 = layers.find(function (layer) {
                    return layer.title === "US Counties";
                });
                //根据条件查询指定图层(返回多个,类型也是Collection)
                var layers4 = layers.filter(function (layer) {
                    return layer.title === "US Counties";
                });
    
                //Collection转js array
                let layers5 = layers.toArray();
    
                //根据图层id获取图层
                let layer1 = this.map.findLayerById("www");
                //根据索引获取图层
                let layer = layers.getItemAt(0);
    
                //获取图层id
                //PS:图层id是图层的唯一标识,string类型。在新建图层时可以指定,如果不指定会生成随机数,以保证唯一
                let layerId = layer.id;
                //图层范围
                let fullExtent = layer.fullExtent;
                //图层显示比例尺范围
                let maxScale = layer.maxScale;
                let minScale = layer.minScale;
                //图层显示的透明度,值为0-1,1为不透明
                let opacity = layer.opacity;
                //图层标题
                let title = layer.title;
                //图层类型
                let type = layer.type;
                //图层是否显示,类型bool,同时可设置图层是否显示
                let visible = layer.visible;
    
                //新建图层并把图层添加到地图
                //此处以图形图层(GraphicsLayer)为例
                layer = new this.apiInstance.GraphicsLayer({
                    //空间参考,一般要跟地图的一样
                    spatialReference: this.mapView.spatialReference,
                });
                //图层添加到地图
                this.map.add(layer);
                //添加图层时也可以指定图层索引,默认会把图层添加到最后一位,也就是索引的最大值,图层索引越大越在上面,上面的图层会挡住下面的
                //另外在添加图层后也可以改变图层索引,是Map的reorder方法,具体请看官方文档
                this.map.add(layer, 0);
    
                //从地图删除图层
                this.map.remove(layer1);
                //从地图删除所有图层
                this.map.removeAll();
    
                //地图的图层事件监听
                //PS:原则上每个map只监听一次
                alllayers.on("change", function (event) {
                    //添加图层事件
                    console.log("Layer added: ", event.added);
                    //删除图层事件
                    console.log("Layer removed: ", event.removed);
                    //移动图层(顺序)事件
                    console.log("Layer moved: ", event.moved);
                });
            },
  • 相关阅读:
    用webview打开网页时,里面有个div带滚动条的,但是在平板上滚动条失效
    PHP获取日期
    iScroll滚动区域中select、input、textarea元素无法点击的Bug修复
    用PHP获取系统时间时,时间比当前时间少8个小时
    kindeditor-4.1.7应用
    PHP连接SQLServer
    PHP常见方法
    APPLICATION ERROR #1502 .
    JSP 简介
    转发和重定向的区别与联系
  • 原文地址:https://www.cnblogs.com/cannel/p/11077926.html
Copyright © 2011-2022 走看看