背景
在天地图官网服务可以看到,天地图提供了多种底图服务,分别有两种投影类型,CGCS2000和Web Mercator。
WMTSLayer加载失败
使用WMTSLayer进行加载
1 2 3 4 5 6 7 8
|
const wmtsLayer = new WMTSLayer({ id: "wmts", url: "http://t0.tianditu.gov.cn/vec_c/wmts", customParameters: { tk: "b854fdb3a3b2625bd6c8353e83f7cca3" }, serviceMode: "KVP", });
|
结果:无报错,不上图。
查看源码得知:
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |