首页 / 浏览问题 / WebGIS / 问题详情
JavaScript实现图层切换时,没有想要的地区图层,只可以切换图层
2EXP 2023年03月28日
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="dist/leaflet/include-leaflet.js"></script>

</head>

<body>

   <div id="map" style="width:1500px;height:800px"></div>

<script>

   var host = window.isLocal ? window.server : "http://localhost:8090";

   var CD = L.marker([30.18,102.95]).bindPopup('This is ChengDu,CO.');

   var cities = L.layerGroup([CD])

   var Vec = L.supermap.tiandituTileLayer({key:"415f6565281227f9918b6ae1f9a63965",layerType:"vec",noWrap:true});

   var Img = L.supermap.tiandituTileLayer({key:"415f6565281227f9918b6ae1f9a63965",layerType:"img",noWrap:true});

   var ter = L.supermap.tiandituTileLayer({key:"415f6565281227f9918b6ae1f9a63965",layerType:"ter",noWrap:true});

   var url=host + "/iserver/services/map-SiChuan/rest/maps/SiChuanMap";

   var map=L.map("map",{

   crs:L.CRS.EPSG4326,

   center:{lon:102.95,lat:30.18},

   zoom:5,

   maxZoom:18,

   layers: [Vec, cities]

   });

   L.supermap.tiandituTileLayer({key:"415f6565281227f9918b6ae1f9a63965",

   layerType:"vec"}).addTo(map);

   //叠加地图图层,关键参数:transparent、opacity、noWrap

   L.supermap.tiledMapLayer(url,{

   transparent:true,

   opacity:0.8,}).addTo(map);

   var baseMaps = {

   "Vec":Vec,

   "Img":Img,

   "ter":ter

   };

   var overlayMaps = {

   "Cities" : cities

   };

   L.control.layers(baseMaps, overlayMaps).addTo(map);

</script>

</body>

</html>

1个回答

您好,如果您想要对一张地图内的图层进行图层控制,建议以临时图层的方式来添加子图层数据以便于进行图层控制。

LayerStatus、setLayerStatusParameters

https://iclient.supermap.io/docs/leaflet/LayerStatus.html

如果是不同的地图服务,您也可以直接使用图层切换控件来控制。

https://iclient.supermap.io/examples/leaflet/editor.html#controler_layerswitcher

希望可以帮助到您。

9,343EXP 2023年03月28日
...