ArcGis javascript api 3.5如何设置要素图层的可见性

时间:2013-06-11 13:53:52

标签: arcgis

我使用的是ArcGis javascript api 3.5,我的代码是

 map = new esri.Map("mapDiv", {
            basemap: "streets",
            center: [-112.07102547942392, 46.75909704205151],
            zoom: 12,
            slider: false,
            infoWindow: infoWindow
        });




        var featureLayer = new esri.layers.FeatureLayer("http:/abc/arcgis/rest/services/MTARNG/MapServer/1", {
            mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
            infoTemplate: templateFuze,
            outFields: ["*"]
        });
        var featureLayer1 = new esri.layers.FeatureLayer("http://abc/arcgis/rest/services/MTARNG/MapServer/0", {
            mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
            infoTemplate: templateParcel,
            outFields: ["*"]
        });
        var featureLayer2 = new esri.layers.FeatureLayer("http://abc/arcgis/rest/services/MTARNG/MapServer/2", {
            mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
            infoTemplate: templateGrid,
            outFields: ["*"]
        });

            Ext.create('Ext.form.Panel', {
                width: 400,
                height: 600,
                bodyPadding: 10,
                renderTo: Ext.get('LayerDiv'),
                items: [{
                    xtype: 'checkboxgroup',
                    columns: 1,
                    vertical: true,
                    items: layerInfo,
                    listeners: {

                        change: {
                            fn: function (checkbox, checked) {
                                for (var i = 0; i < checkbox.items.items.length; i++) {
                                    if (checkbox.items.items[i].checked) {
                                        //visible true checkbox.items.items[0].boxLabel                                        

                                    }
                                    else {
                                        //visible false 
                                    }
                                }
                            }
                        }
                    }
                }]
            });

        });

所以我试图设置图层的可见性,但我无法做到。之后如何刷新地图?

我有一些功能,但它正在工作,例如 - visibleAtMapScale = false, defaultVisibility = false,刷新时我只得到map.resize = true;

我还可以尝试实现此功能。

3 个答案:

答案 0 :(得分:5)

您可以使用hide()和show()函数更改图层的可见性 - FeatureLayer从GraphicsLayuer继承它们(它从Layer继承它们)。所以在你的例子中,给定的featureLayer是一个全局变量,当事件触发时它应该在范围内,所以你可以这么做:

featureLayer.hide();

featureLayer.show();

您无需刷新地图,它会自动生成。

西蒙

答案 1 :(得分:1)

创建新FeatureLayer时,您可以使用optional parameters指定默认可见性。默认值为true。

var featureLayer = new esri.layers.FeatureLayer("http:/.../MapServer/1",     
      {visible:false}
});

要设置现有图层的可见性,可以使用setVisibility()方法。

featureLayer.setVisibility(false);

答案 2 :(得分:0)

如果要在Visual Studio中启用intellisense支持,可以从Esri网站下载并引用代码辅助插件。有一个关于它的帮助页面here,其中包含指向支持的各种版本的链接以及如何在VS中使用它。

如果你只是想获得JS API v3.5的VS2012版本,那就是here并引用它:

如果在HTML文件中工作,请添加脚本标记以添加对代码帮助的引用

<script type='text/javascript' src='path_to_vsdoc.js'></script>

如果在JavaScript文件中工作,请将引用指令添加到VSDoc文件中:

  /// <reference path="~/Scripts/esri-jsapi-vsdoc.js" />
相关问题