首页 / 浏览问题 / 云GIS / 问题详情
缩放地图时 到4,5级时地图偏移过大
1EXP 2019年12月16日

使用产品:SuperMap iServer 9D(2019)  操作系统:win10 x64
数据类型: wmts 瓦片
问题详细描述:地图放大到4级,再放大,位置发生偏移 地图从北京偏移到哈萨克斯坦了
问题重现步骤:

1.地图初始zoom 0

2.点击放大控件到第4级

再放大

<!--********************************************************************
* Copyright© 2000 - 2018 SuperMap Software Co.Ltd. All rights reserved.
*********************************************************************-->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title data-i18n="resources.title_wmtsLayer"></title>
		<script type="text/javascript" src="../js/include-web.js"></script>
		<link rel="stylesheet" href="./leaflet/leaflet.css">
		<script src="./leaflet/leaflet.js"></script>
		<link rel="stylesheet" href="supermap_iclient_910/dist/leaflet/iclient9-leaflet.css">
		<script src="supermap_iclient_910/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" src="../../dist/leaflet/include-leaflet.js"></script>
		<script type="text/javascript">
	   
			var res = [];
			for (var i = 0; i < 22; i++) {
				res.push(165664.43905455674 / (Math.pow(2, i)));
			}
			
			var origin = [29.38, 120.28];
			var map = L.map('map', {
				center: [0, 0],
				maxZoom: 20,
				zoom:0,
				crs: new L.Proj.CRS("WGS84", 
				{
					origin: [-2.0037508342789244E7, 2.0037508342789244E7],
					resolutions: res,
				})
			});
			L.supermap.wmtsLayer("http://114.251.10.240:9999/iserver/services/map-tianditu/wmts100", {
				layer: "矢量底图_经纬度",
				style: "default",
				tilematrixSet: "GlobalCRS84Scale_矢量底图_经纬度",
				format: "image/png",
				isBaseLayer:true
			}).addTo(map);
			
			var layerLabel=L.supermap.wmtsLayer("http://114.251.10.240:9999/iserver/services/map-tianditu/wmts100", {
				layer: "矢量中文注记_经纬度",
				style: "default",
				tilematrixSet: "GlobalCRS84Scale_矢量中文注记_经纬度",
				format: "image/png",
				});
				map.addLayer(layerLabel)
		</script>
	</body>
</html>

地图的能力描述:http://114.251.10.240:9999/iserver/services/map-tianditu/wmts100

1个回答

您好,天地图自己的就是一个wmts服务,如果是前端需要对接天地图的话可以直接用WMTS接口对接天地图服务,不需要再用iserver转发,iserver转发后一般都是转发成rest服务。
5,668EXP 2019年12月16日
谢谢于老师的关注,这个问题我还有点疑问

1.这个服务是一个部署在专网中使用的,要集成的超图服务提供的只有这种形式,所以用的不是外网天地图官方的服务。我只能基于现有的东西去实现自己的功能。

2.就题论题的话这个问题会是什么造成的呢?是实现代码写的有问题?超图提供的服务有问题? 使用rest的服务就可以了吗?
这种的话建议可以直接转成rest服务去实现,一般对接外来服务都是直接转发成rest服务这种方式。如果是希望使用wmts的话也可以考虑用代理来获取地址。
...