基于 MVT 矢量切片的网格渲染图层,该图层只提供瓦片加载、缓存和解析功能,不提供网格数据

const grid = new GridVTLayer({
viewer,
url: 'https://els-yunjing.amap.com/data/weather/mvt?z={z}&x={x}&y={y}&size=256&key=高德开放平台Key',
cacheSize: 200,
dataZooms: [8, 20],
customPrimitive: {
createPrimitives: (tileNum, renderData) => {
const colors = ['#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4'].reverse();

const features = renderData.default;
const s = 2 ** (10 - (tileNum.level - 10)) * 2;
const color = colors[(tileNum.level) % colors.length];
const instances = [];
for (let i = 0; i < features.length; i++) {
const feature = features[i];
const lnglat = [feature.geometry.coordinates[0], feature.geometry.coordinates[1], 0];
const modelMatrix = Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(lnglat[0], lnglat[1], lnglat[2])
),
new Cesium.Cartesian3(0.0, 0.0, 0),
new Cesium.Matrix4()
);
const instance = new Cesium.GeometryInstance({
geometry: Cesium.BoxGeometry.fromDimensions({
vertexFormat: Cesium.VertexFormat.POSITION_AND_NORMAL,
dimensions: new Cesium.Cartesian3(s, s, s),
}),
modelMatrix: modelMatrix,
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(
Cesium.Color.fromCssColorString(color)
),
},
});
instances.push(instance);
}

const primitive = new Cesium.Primitive({
geometryInstances: instances,
appearance: new Cesium.PerInstanceColorAppearance({
translucent: true,
closed: true,
}),
});

viewer.scene.primitives.add(primitive);

return [primitive]
},
destroyPrimitives: (tileNum, primitives) => {
primitives.forEach(primitive => {
primitive.show = false;
viewer.scene.primitives.remove(primitive);
primitive.destroy();
});
primitives.length = 0;
},
showPrimitives: (tileNum, primitives) => {
primitives.forEach(primitive => {
primitive.show = true;
});
},
hidePrimitives: (tileNum, primitives) => {
primitives.forEach(primitive => {
primitive.show = false;
});
},
updatePrimitives: (tileNums, primitives) => {
}
}
});

Hierarchy

  • UrlTemplateImageryProvider
    • GridVTLayer

Constructors

Methods

Constructors

Methods

  • 彻底销毁图层,释放内存显存

    Returns void

  • 隐藏图层

    Returns void

  • 显示图层

    Returns void