當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS BaseLayerViewGL2D用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

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

用法說明

表示 LayerLayerView 在被添加到帶有 MapViewMap 之後。與相關類 BaseLayerView2D 相比,這一類公開了 WebGL 渲染函數。

重要筆記

這個接口是實驗性的。在將其用於產品之前,請仔細閱讀以下信息。

由於WebGL 的性質,不可能完全沙箱用戶提供的代碼,其故障會影響整個MapView 的性能、視覺質量甚至穩定性。出於這個原因,Esri 不為與自定義渲染代碼中的WebGL 渲染相關的問題或使用自定義渲染代碼時在MapView 渲染中出現的問題提供任何支持。

可以擴展此類以為層創建自定義LayerView。當將圖層添加到其Map的圖層列表時,MapView 會根據需要創建 LayerView

子類可以實現LayerView生命周期的多種函數。

  • 首先,當LayerView即將開始繪製圖層內容時,調用attach()方法;它通常負責資源分配。
  • 然後,在 LayerView 的生命周期內,每幀調用一次 render() 方法;它必須在返回之前完成繪圖。
  • 最後,在圖層從Map中刪除後,調用detach()方法;它釋放所有分配的資源並停止on-going請求。

這些函數中的每一個都可以通過實例屬性 this.context 訪問 MapView 的 WebGL 上下文。開發人員必須提供自己的著色器、網格和紋理,並負責在上下文中設置所需的 GL 狀態。

為方便開發人員,從 API 4.14 版本開始,BaseLayerViewGL2D 包含曲麵細分輔助方法;開發人員可以提供 PointMultipointPolylineExtentPolygon 幾何圖形,並將它們轉換為三角形網格的抽象說明,這些三角形網格可以很容易地作為頂點和索引緩衝區提供給 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
       });
     }
   }
 });

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 BaseLayerViewGL2D。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。