基本信息
以下是所在類或對象的基本信息。
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。