我使用的是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;
我还可以尝试实现此功能。
答案 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" />