多个layer添加监听事件,可以在一个addLayer方法里添加另一个layer的监听事件。
var tiandituLayer;
var layers = [];
var chinaUrl = "http://10.10.10.14:8090/iserver/services/map-china400/rest/maps/China";
var worldUrl = "http://10.10.10.14:8090/iserver/services/map-world/rest/maps/World";
function initMap(){
//初始化地图
map = new SuperMap.Map("superMap",
{
controls:[
new SuperMap.Control.Navigation(),//随鼠标事件的地图浏览
new SuperMap.Control.Zoom(),//缩放类图标,默认地图左上角
new SuperMap.Control.LayerSwitcher(),//图层选择控件,默认地图右上角
new SuperMap.Control.ScaleLine(), //比例尺控件,默认地图左下角
],
theme:null, //加载的主题风格的CSS文件的相对路径
allOverlays : true, //地图所有图层都被当做叠加图层来使用
}
)
//初始化worldLayer图层
worldlayer = new SuperMap.Layer.TiledDynamicRESTLayer("world",worldUrl,{
transparent: true, //设置图层为透明
cacheEnabled: true, //设置使用服务端的缓存
},
{
maxResolution: "auto" //设置图层最大的分辨率
}
);
初始化chinaLayer图层
chinaLayer = new SuperMap.Layer.TiledDynamicRESTLayer("china",chinaUrl,{
transparent: true, cacheEnabled: true,},{maxResolution: "auto"});
//初始化tiandituLayer图层
tiandituLayer = new SuperMap.Layer.Tianditu();
tiandituLayer.setName("天地图"); //图层命名
tiandituLayer.layerType = "img"; //图层类型.(vec:矢量图层,img:影像图层,ter:地形图层)
//图层添加事件
worldLayer.events.on({"layerInitialized": addLayer});
}
function addLayer(){
map.addLayers([tiandituLayer, worldLayer]);
map.setCenter(new SuperMap.LonLat(112.255142, 25.324221), 5);
//chinaLayer图层添加事件
chinaLayer.events.on({"layerInitialized": addChinaLayer});
}
function addChinaLayer(){
map.addLayer(chinaLayer);
}