欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

地图叠加之天地图和supermap

程序员文章站 2022-03-04 23:41:35
...

在开发过程中,鉴于已存地图的基础上,有部分地图的区块是不存在的。比如百度地图的某个地方是没有任何规划的空地。那么,如何在这个区块上加入我们自己处理过的图片底图呢。就涉及到两个地图的叠加,这里以天地图和超图为例。

代码如下:

//创建新的区块地图
var url="";//获取已经发布地图的URL
var mapLayer = new SuperMap.Layer.TiledDynamicRESTLayer(“maplayer”, url,{transparent: true,cacheEnabled:true,});
mapLayer.events.on({"layerInitialized": addLayer}); 
function addLayer() {
	map.setBaseLayer(mapLayer);
	//添加天地图
	var matrixIds = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19','20'];
	var resolutions = [0.703125, 0.3515625,0.17578125,0.087890625, 0.0439453125, 0.02197265625,0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625,  0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 8.58306884765625e-005, 4.291534423828125e-005, 2.1457672119140625e-005, 1.0728836059570313e-005,  5.36441802978515625e-006, 2.682209014892578e-006, 1.341104507446289e-006];
	var WMTSLayer = new SuperMap.Layer.WMTS({
		name: "vec", //自定义图层名称
		url: "http://t0.tianditu.com/img_c/wmts", //天地图的卫星图
		//url: "http://t0.tianditu.com/vec_c/wmts", //天地图的地图
		layer: "img",  //服务中的图层名称
		style: "default",  //风格描述
		matrixSet: "c",  //标识符矩阵集
		format: "tiles",  //瓦片格式 
		requestEncoding: "KVP",
		matrixIds: matrixIds,
		zoomOffset: 1,
		buffer: 0,
		maxExtent: new SuperMap.Bounds(-180,-90,180,90),
				tileSize: new SuperMap.Size(256,256),
		resolutions:resolutions//分辨率,必须设置
		});
	
	map.addLayers([WMTSLayer,mapLayer]); 
	map.setCenter(
	new SuperMap.LonLat(经度,纬度),缩放级别);//设置中心点和缩放级别
}