背景
在天地图官网服务可以看到,天地图提供了多种底图服务,分别有两种投影类型,CGCS2000和Web Mercator。
WMTSLayer加载失败
使用WMTSLayer进行加载
1 | const wmtsLayer = new WMTSLayer({ |
结果:无报错,不上图。
查看源码得知:
WMTSLayer先请求元数据,然后构造tileInfo,最后用WebTileLayer加载。
问题排查
查看天地图和Esri的切片方案。
Esri的切片方案是从第0级开始,天地图的切片方案从第1级开始。
切片方案,附在文末附件中。
WebTileLayer加载
4490和4326差别很小,可以叠加,所以CGCS2000的服务,采用4326来加载。
tileInfo中dpi,参考一篇博文,设置为layers/support/wmtsUtils.js
中的90.71428571428571。
lods采用4326的切片方案,levelValue设置为天地图的level。
size和origin按天地图的切片方案设置。
spatialReference设置为4326。(如果设置为4490,也可以上图,但是view的center不生效。)
通过构造TileInfo,使用WebTileLayer来加载。
1 | import WebTileLayer from "esri/layers/WebTileLayer"; |
1 | new TianDiTuLayer({ |
附件
天地图-经纬度投影-切片方案
1 |
|
天地图-球面墨卡托投影-切片方案
1 |
|
Esri-WGS84_Geographic_Coordinate_System_V2
1 |
|
Esri-ArcGIS_Online_Bing_Maps_Google_Maps
1 |
|