最近地图需要适配第三方公司用 ArcGIS 生成的切片,查了一些资料,记录一下:
urlTemplate的含义比较简单,只要url里有瓦片的x, y, z参数,用{x}替代相应的参数即可。
另外urlTemplate也支持函数方式
let url = 'https://xxx.cn/tiledmap/tiled_dark/{z}/{x}/{y}.png';
let tempUrlHead = url.split('{z}');
let tileOption = {
minZoom: Number(minZoom),
maxZoom: Number(maxZoom),
subdomains: subdomains.split(","),
errorUrl,
opacity: Number(opacity),
urlTemplate: function (x, y, z, domain) {
return tempUrlHead[0] + `L${z.toString().padStart(2, "0")}/R${x.toString(16).padStart(8, "0")}/C${y.toString(16).padStart(8, "0")}.png`;
}
};
类似arcgis的json格式的rest瓦片服务,可以参考这个示例: maptalks - ArcGIS瓦片图层
另外maptalks也支持你自定义空间参考,以支持任意类型的底图服务,参考示例: maptalks - LOD和自定义瓦片图层
在这个基础上可以自定义地图投影(例如基于proj4): maptalks - Proj4js自定义投影底图
参考资料:
能否支持加载自定义地图? · Issue #663 · maptalks/maptalks.js · GitHub
?
|