87,997
社区成员




var mylayer;
//用来记录显示图层的id
var visible = [];
var map;
require(["dojo/parser", "esri/map",
"esri/layers/ArcGISDynamicMapServiceLayer", "dijit/layout/BorderContainer", "dijit/layout/ContentPane",
"dojo/domReady!", "esri/toolbars/navigation", "esri/dijit/OverviewMap", "esri/dijit/OverviewMap"], function (parser, Map, ArcGISDynamicMapServiceLayer, OverviewMap) {
parser.parse();
map = new Map("mapDiv", {
slider: false, //关闭左上角放大缩小
logo: false
});
var URL = "http://localhost:6080/arcgis/rest/services/Test1/MapServer";
mylayer = new ArcGISDynamicMapServiceLayer(URL);
map.addLayer(mylayer);
navToolbar = new esri.toolbars.Navigation(map); //导航栏
//添加图层后载入loadLayerList方法
dojo.connect(mylayer, "onLoad", loadLayerList);
//鹰眼
var overviewMapDijit = new OverviewMap({
map: map,
visible: true,
baseLayer: mylayer
}, "overviewDiv");
overviewMapDijit.startup();
});
//载入地图名称到div中的方法
function loadLayerList(layers) {
var html = "";
//获取图层信息
var infos = layers.layerInfos;
for (var i = 0; i < infos.length; i++) {
var info = infos[i];
//图层默认显示的话就把图层id添加到visible
if (info.defaultVisibility) {
visible.push(info.id);//visible用于记录可见图层id
}
//输出图层列表的html
html = html + "<div class='list'><input id='" + info.id + "' name='layerList' class='listCss1' type='checkbox' value='checkbox' onclick='setLayerVisibility()' " + (info.defaultVisibility ? "checked" : "") + " />" + info.name + "</div>"
}
//设置可视图层
mylayer.setVisibleLayers(visible);
//在左边显示图层名列表
dojo.byId("treeDiv").innerHTML = html;
}
//设置图层是否可见的方法
function setLayerVisibility() {
//用dojo.query获取所有css为listCss的元素数组(class='listCss1')
var inputs = dojo.query(".listCss1");
visible = [];
//对checkbox数组进行遍历把选中的id添加visible
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].checked) {
visible.push(inputs[i].id);
}
}
mylayer.setVisibleLayers(visible);
}