GroupTileLayer
GroupTileLayer 用于把多个 TileLayer 组合在一起显示,继承自 TileLayer。它让多个瓦片图层共享同一个 WebGL 上下文,避免触发浏览器"太多 active WebGL context"的上限,性能优于逐个单独添加 TileLayer。
js
import { Map, GroupTileLayer, TileLayer } from "maptalks";
const map = new Map("map", { center: [0, 0], zoom: 2 });
const group = new GroupTileLayer("group-tiles", [
new TileLayer("base", { urlTemplate: "https://{s}.example.com/base/{z}/{x}/{y}.png" }),
new TileLayer("labels", { urlTemplate: "https://{s}.example.com/labels/{z}/{x}/{y}.png" }),
]).addTo(map);构造函数
js
new GroupTileLayer(id, layers, options?)参数:
- id
String|Number图层 id。 - layers
TileLayer[]要添加的 TileLayer 数组。 - options
Object图层配置项(可选,见 TileLayer)。
options 配置项
| 配置名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
maxCacheSize | Number | 缓存的最大瓦片数 | 1024 |
其余瓦片配置项(urlTemplate、tileSize、spatialReference 等)见 TileLayer。
静态方法
GroupTileLayer.fromJSON(layerJSON): GroupTileLayer | null— 从 JSON 还原图层
成员方法
getLayers(): TileLayer[]— 获取子图层列表addLayer(tileLayers: TileLayer[] | TileLayer): this— 添加子图层removeLayer(tileLayers: TileLayer[] | TileLayer): this— 移除子图层clearLayers(): this— 清空子图层getLayer(id): TileLayer— 获取子图层(等价于 getChildLayer)getChildLayer(id): TileLayer— 递归查找子图层toJSON(): Object— 导出图层 JSONgetTiles(z, parentLayer): TilesType— 按 zoom 聚合子图层的瓦片