首页 / 浏览问题 / 云GIS / 问题详情
iclient可以控制发布的地图里的图层显示吗
18EXP 2017年04月13日

 就像idesktop里的图层管理器一样类似的功能,还是只能把每一个图层分别发布,然后控制显示和隐藏?

2 个回答

5EXP 2017年04月14日

您好,是可以的,可以通过调用图层管理器控件来实现,以下为示例代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图层管理器</title>
<style type="text/css">
body{
margin: 0;
overflow: hidden;
background: #fff;
}
#map{
position: relative;
height: 553px;
border:1px solid #3473b7;
}
</style>
<link href='./css/bootstrap.min.css' rel='stylesheet' />
<link href='./css/bootstrap-responsive.min.css' rel='stylesheet' />
<script src='../libs/SuperMap.Include.js'></script>
<script type="text/javascript">
var host = document.location.toString().match(/file:\/\//)?"http://localhost:8090":'http://' + document.location.host;
var map, worldLayer,layer;
var url=host+"/iserver/services/map-world/rest/maps/World";
var url2=host+"/iserver/services/map-jingjin/rest/maps/京津地区人口分布图_专题图";

function init(){
map = new SuperMap.Map("map",{controls: [
new SuperMap.Control.Navigation({ //添加Navigation控件到map
dragPanOptions: {
enableKinetic: true
}
}) ,
new SuperMap.Control.LayerSwitcher()
], allOverlays: true
});
var options = {numZoomLevels: 12,useCanvas:false};
var bounds= new SuperMap.Bounds(-180, -90, 180, 90);
layer=new SuperMap.Layer.Image( //image图层
'World_Day',
'images/Day.jpg',
bounds ,
options
);
worldLayer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url,{transparent: true, cacheEnabled:true}); //获取World地图服务地址
worldLayer.events.on({"layerInitialized": addLayer});
}
function addLayer()
{
map.addLayers([worldLayer,layer]) ;
map.setCenter(new SuperMap.LonLat(0, 0), 2);
}

</script>
</head>
<body onload="init()">
<div id="map"></div>
</body>
</html>

1,695EXP 2017年04月13日
我的意思是我用desktop制作地图的时候,一个地图是由很多点,线,面的图层组合的嘛,然后保存成一个map。iserver发布出来,之后我用iclient显示,我还想用iclient控制map里面的某个点线面图层的显示和隐藏。
...