基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/views/2d/layers/BaseLayerViewGL2D"], (BaseLayerViewGL2D) => { /* code goes here */ });
ESM:
import BaseLayerViewGL2D from "@arcgis/core/views/2d/layers/BaseLayerViewGL2D";
类:
esri/views/2d/layers/BaseLayerViewGL2D
继承: BaseLayerViewGL2D > LayerView > Accessor
自从:用于 JavaScript 4.11 的 ArcGIS API
用法说明
表示 Layer 的 LayerView 在被添加到带有 MapView 的 Map 之后。与相关类 BaseLayerView2D 相比,这一类公开了 WebGL 渲染函数。
可以扩展此类以为层创建自定义LayerView。当将图层添加到其Map的图层列表时,MapView 会根据需要创建 LayerView。
子类可以实现LayerView生命周期的多种函数。
- 首先,当LayerView即将开始绘制图层内容时,调用attach()方法;它通常负责资源分配。
- 然后,在 LayerView 的生命周期内,每帧调用一次 render() 方法;它必须在返回之前完成绘图。
- 最后,在图层从Map中删除后,调用detach()方法;它释放所有分配的资源并停止on-going请求。
这些函数中的每一个都可以通过实例属性 this.context 访问 MapView 的 WebGL 上下文。开发人员必须提供自己的着色器、网格和纹理,并负责在上下文中设置所需的 GL 状态。
为方便开发人员,从 API 4.14 版本开始,BaseLayerViewGL2D
包含曲面细分辅助方法;开发人员可以提供 Point 、 Multipoint 、 Polyline 、 Extent 或 Polygon 几何图形,并将它们转换为三角形网格的抽象说明,这些三角形网格可以很容易地作为顶点和索引缓冲区提供给 GPU。 SDK sample 详细解释了如何使用曲面细分助手以及如何编写兼容的着色器。
例子:
let CustomLayerView2D = BaseLayerViewGL2D.createSubclass({
render(renderParameters) {
const gl = this.context;
...
}
attach() {
const gl = this.context;
...
}
detach() {
const gl = this.context;
...
}
});
let CustomTileLayer = Layer.createSubclass({
tileInfo: TileInfo.create({ spatialReference: { wkid: 3857 }}),
createLayerView(view) {
if (view.type === "2d") {
return new CustomLayerView2D({
view: view,
layer: this
});
}
}
});
相关用法
- JavaScript ArcGIS BaseLayerViewGL2D.render用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.requestRender用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.attach用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.bindRenderTarget用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.tessellatePoint用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.tessellateExtent用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.tessellateMultipoint用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.tessellatePolyline用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.tessellatePolygon用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.detach用法及代码示例
- JavaScript ArcGIS BaseLayerViewGL2D.when用法及代码示例
- JavaScript ArcGIS BaseLayerView2D用法及代码示例
- JavaScript ArcGIS BaseLayerView2D.render用法及代码示例
- JavaScript ArcGIS BaseLayerView2D.attach用法及代码示例
- JavaScript ArcGIS BaseLayerView2D.detach用法及代码示例
- JavaScript ArcGIS BaseLayerView2D.requestRender用法及代码示例
- JavaScript ArcGIS BaseLayerView2D.when用法及代码示例
- JavaScript ArcGIS BaseElevationLayer.when用法及代码示例
- JavaScript ArcGIS BasemapGallery.visible用法及代码示例
- JavaScript ArcGIS BaseElevationLayer.addResolvingPromise用法及代码示例
- JavaScript ArcGIS BaseTileLayer.maxScale用法及代码示例
- JavaScript ArcGIS Basemap.fromId用法及代码示例
- JavaScript ArcGIS BaseDynamicLayer layerview-create事件用法及代码示例
- JavaScript ArcGIS BasemapToggle.visibleElements用法及代码示例
- JavaScript ArcGIS BaseElevationLayer layerview-create事件用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 BaseLayerViewGL2D。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。