supermap for js leaflet 前端加载切片放大出现混乱的问题原因及解决方案

在这里插入图片描述
如果是前端多个切片搭配使用,到层级为12时,移除掉该切片图层就可以。
调试代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
	<link href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.css" rel="stylesheet">
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/leaflet.js"></script>
    <script type="text/javascript" src="http://iclient.supermap.io/dist/leaflet/iclient9-leaflet.js"></script>
</head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript">
   
    var map;
	var quanguoUrl="http://10.154.37.40:8090/iserver/services/map-smtiles-china3/rest/maps/china3";
	var quanguoLayer=L.supermap.tiledMapLayer(quanguoUrl);//全国切片
	
	//自定义比例尺
	var scaleDenominators = [64000000,32000000,16000000,8000000,4000000,2000000,1000000,500000,250000,125000,64000,32000,16000,8000,4000,2000];
	var origin = [29.38,120.28];
	//leaflet CRS投影设置
	var crs = L.Proj.CRS("EPSG:3857", {
	   origin: origin,
	   scaleDenominators: scaleDenominators
	});
	//限制移动范围。
	var cornerLeftUp =  L.latLng(70, 30); //设置左上角经纬度
	var cornerRightDown = L.latLng(-10, 175);//设置右下点经纬度
	var bounds = L.latLngBounds(cornerLeftUp, cornerRightDown); //构建视图限制范围

	
	map = L.map('map', {
		crs:crs,
		//crs:L.CRS.EPSG3857,
		center: [29.38,120.28],
        maxZoom: 16,
        zoom: 3,
		maxBounds: bounds
     });
	quanguoLayer.addTo(map);//加载全国切片
	//地图比例尺监听
	map.on('zoomend', function(e) {
		console.log("当前比例尺级别:"+e.target.getZoom()+"====当前比例尺 1:"+scaleDenominators[e.target.getZoom()]);
       
    });
</script>
</body>
</html>





发布了54 篇原创文章 · 获赞 17 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43311389/article/details/88362680