SuperMap/iClient-JavaScript

关于不同坐标系下瓦片加载的问题

lucahan opened this issue · 1 comments

new MapService(url).getMapInfo((serviceResult) => {
        const mapJSONObj = serviceResult.result
        const mapRest = new TileSuperMapRest(TileSuperMapRest.optionsFromMapJSON(url, mapJSONObj))
        const layer = new Tile({
	        source: mapRest,
        })
})

我发现在底图和服务在坐标系不一致的情况下,是无法加载rest方式下tileImage这个方法的瓦片的,但是如果直接使用wmts是可以的,我试着调过tilegrid,但是好像没用,貌似tileImage这个方法加载瓦片是和scale有关吗?求解答,坐标系不一致时,TileSuperMapRest能否成功加载瓦片?感觉好像不行啊。

谢谢您的issue;
投影不一致的两个地图瓦片是无法叠加,因为两个图层的瓦片金字塔并不匹配。您说的wmts可以叠加很有可能是wmts请求的那个tilemartixset刚好和底图投影一致。

处理这个问题的方法一般有两种,
1、服务端动态投影。生成的矢量瓦片是就动态投影。
iServer tileimage就有这个能力,可以通过传入TileSuperMapRest的options的prjCoordSys参数来使请求到的tileimage和底图投影一致
ps:一般来说工作空间发布的地图服务都可以动态投影,切好的缓存发布的地图服务不行,详情可电话超图400热线

2、前端动态投影,openlayers官网有介绍相关内容,可以参考 https://openlayers.org/en/latest/doc/tutorials/raster-reprojection.html