天天看点

关于SuperMap的多个layer图层添加监听事件

多个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);
}
           

继续阅读