首页 / 浏览问题 / WebGIS / 问题详情
leaflet临时图层。
580EXP 2022年05月27日
请问leaflet临时图层里L.supermap.SetLayerInfoParameters 与 L.supermap.SetLayersInfoParameters 的区别是什么?

2 个回答

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title data-i18n="resources.title_drawFeatures"></title>
		<script type="text/javascript" src="js/include-web.js"></script>
		<script type="text/javascript" include="leaflet.draw" src="dist/leaflet/include-leaflet.js"></script>
		<script type="text/javascript">
			var map,layer, url = "https://iserver.supermap.io/iserver/services/map-jingjin/rest/maps/京津地区土地利用现状图";		
			setsetLayer();
			function setLayer() {
				//子图层属性过滤条件
				var layerStatus = new SuperMap.LayerStatus({
					layerName: "Landuse_R@Jingjin#1",//图层名称
					isVisible: true,//是否可见
					displayFilter: "LANDTYPE='灌丛' "//属性过滤条件
				});
				var setLayerStatusParameters = new SuperMap.SetLayerStatusParameters({
					layerStatusList: [layerStatus]//数组来自上面的layerStatus
					//holdTime:15,//获取或设置资源在服务端保存的时间。
					//resourceID:"2"//获取或设置资源服务 ID。
				});
				var setLayerStatusService = new SuperMap.SetLayerStatusService(url, {
					eventListeners: {
						"processCompleted": setLayerCompleted,
						"processFailed": setLayerFailed
					}
				});
				setLayerStatusService.processAsync(setLayerStatusParameters);
			}		
			function setLayerCompleted(e) {
				tempLayerID = e.result.newResourceID;
				console.log(tempLayerID);
				//创建地图控件
				map = L.map('map', {
					crs: L.CRS.EPSG4326,
					center: [40, 117],
					zoom: 4
				});
				//创建 TiledDynamicRESTLayer
				layer=new L.supermap.tiledMapLayer(url, {
					transparent: true,
					cacheEnabled: false,
					redirect: true,
					layersID: tempLayerID
				}, {
					maxResolution: "auto",
					bufferImgCount: 0
				})
			 layer.bufferImgCount = 0;
				console.log(layer);
				layer.addTo(map);
			}		
			function setLayerFailed(e) {
				console.log(e);
			}
		</script>
	</head>
	<body onload="setLayer()" style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
		<div id="map" style="width: 100%;height:100%"></div>		
	</body>
</html>

以上就是临时图层的用法。

通常直接在前端显示矢量专题图,前端web压力大,为了缓解前端压力,此方法可以把压力转移到了服务端。

580EXP 2022年05月27日
您好,这两者都可以设置临时图层信息,但是SetLayerInfoParameters能用来设置临时图层下子图层的信息,这一点您可以在其参数中的tempLayerName看到,而SetLayersInfoParameters可以标记一个图层是否为临时图层,这一点用isTempLayerrs(默认为false)实现,但是该类就不能设置子图层的信息了,以及layersInfo参数也有所不同,前者为string类型,而后者为object能包含更多信息。

希望可以帮助到您。
3,355EXP 2022年05月27日
二者的layersInfo参数在API帮助文档里没有详细说明,能详细说是二者的layersInfo参数吗?或者有没有相关示例?
您好,这layerinfo与layersinfo两个参数其实是一样的,只不过后者加了个tostring方法
...