经纬志
首页 / deck.gl / 使用示例

地图与图层叠加

底图由 TileLayer 加载栅格瓦片,其上叠十条航线、十个节点与城市标签。 取消勾选底图,就能看清 deck.gl 图层单独存在时的样子。

deck.gl 9.0 · 更新 2026-10-27
源码与运行效果
运行效果

说明

瓦片来自 Esri 的暗色底图服务,地址模板为 .../World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}, 注意它的行列顺序是 z、y、x,与常见的 z、x、y 相反。 TileLayer 负责计算当前视角需要哪些瓦片, 再用 renderSubLayers 为每块瓦片生成一个 BitmapLayer。

配置作用
tileSize: 256与瓦片实际分辨率一致,避免缩放模糊
minZoom / maxZoom限制瓦片请求层级,超出范围不再请求
props.tile.boundingBox瓦片四至,格式为 [[西, 南], [东, 北]]
bounds交给 BitmapLayer 的地理范围
图层顺序底图在前,数据图层在后

底图与数据的坐标关系

Esri 与 OpenStreetMap 使用 WGS-84 的 Web Mercator 瓦片, 与 [经度, 纬度] 直接对应,不需要换算。 换成国内部分服务商的瓦片时,底图是 GCJ-02 加密坐标, GPS 点会整体偏移几百米,必须在数据进入图层前做转换。

示例关闭底图后,弧线与节点仍落在正确位置,说明 deck.gl 不依赖底图存在。这也是排查问题的好方法:底图异常时先关掉它, 确认数据层是否正常。

生产环境换掉示例瓦片。公共瓦片服务有使用条款与配额, 长期运行应换成自建服务或商业授权的地址。替换时只需改 data 模板,图层结构不用动。