首页 / deck.gl / 使用示例
地图与图层叠加
底图由 TileLayer 加载栅格瓦片,其上叠十条航线、十个节点与城市标签。 取消勾选底图,就能看清 deck.gl 图层单独存在时的样子。
源码与运行效果
说明
瓦片来自 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 模板,图层结构不用动。