npm包@bentley/extension-client使用教程

阅读时长 7 分钟读完

前言

在前端开发中,我们通常使用一些现成的库和工具来完成我们的任务,其中npm作为前端开发中最大的包管理器,也是我们最常用的一个工具之一。而@bentley/extension-client就是一款可以帮助我们快速开发3D可视化应用程序的npm包。本文将介绍@bentley/extension-client的安装,使用方法以及实际应用案例。

安装

使用npm安装@bentley/extension-client非常简单,只需在命令行中输入以下命令即可:

使用方法

引入

在项目中引入@bentley/extension-client非常简单,只需要在需要使用的文件中引入即可:

初始化

首先,我们需要通过ExtensionClient初始化一个iModel连接:

其中,this.props.appConfig.backendthis.props.accessToken分别表示后端服务和用户token,this.props.iModelId表示iModel的id。

加载视图

接下来,我们需要使用ViewState3d加载一个3D视图:

其中,'default'表示视图的名称,ViewState3d.name表示3D视图类型。

渲染视图

最后,我们需要将视图渲染到页面上:

其中,viewState.getDisplayStyle3d().backgroundMapSettings = new MapLayerSettings({ visible: false })用于隐藏背景地图,防止覆盖模型;document.getElementById('canvas') as HTMLCanvasElement则表示3D模型的渲染目标。

实际应用

下面,我们以一个简单的城市规划应用为例,展示如何使用@bentley/extension-client完成3D可视化。

安装依赖

首先,我们需要安装依赖:

其中,@bentley/extension-client是本文介绍的npm包,threethree-orbit-controls是用于渲染3D模型的JavaScript库,axios则用于从后端服务器请求数据。

创建项目

接下来,我们创建一个新的React项目,并使用@bentley/extension-client完成可视化:

-- -------------------- ---- -------
------ ----- ---- --------
------ ----- ---- --------
------ - ---------------- ----------- - ---- ----------------------------
------ - -- ----- ---- --------
------ - ------------- - ---- --------------------------------------------

----- --- - -- -- -
  ----- -------- ---------- - ---------------------
  ----- ----------- ------------- - ---------------------
  ----- --------- - ---------------

  ----- --------- - ----- -- -- -
    ----- ---- - ----- -----------------------
    ----- ------ - --- ------------------
    ----- ------------------------------- ------------------
    ----- ---------------------------------------
    ----- ---------------------------------

    ----- --------- - ----- ---------------------------- ------------------

    --------------------------------------------------- - --- ------------------
      -------- ------
    ---
    
    ------------------------
    ------------------
  -

  ------------------ -- -
    ------------
  -- ----

  ------------------ -- -
    -- ------- -- --------- -- ------------------ -
      ----- -------- - --- ---------------------
        ---------- -----
        ------- ------------------
      ---
  
      ----- ------ - ------------------------------
      ----- -------- - --- --------------------- -------------------
  
      ----- ------- - -- -- -
        -------------------------------
        ------------------
        ------------------------------------- --------
      --
  
      ----------
    -
  -- -------- ------------

  ------ ------- --------------- ---
-

其中,fetchData函数通过从后端服务器获取数据初始化iModel连接并加载3D视图,canvasRef则表示3D模型的渲染目标,在页面中展示为一个canvas元素,THREE.WebGLRendererOrbitControls则分别用于绘制和控制3D模型。

开始运行

最后,我们使用以下命令启动应用程序:

在浏览器中打开http://localhost:3000/即可看到3D模型的可视化效果。

总结

通过@bentley/extension-client,我们可以轻松地在前端应用程序中添加3D可视化,实现更加生动直观的用户交互。通过本文的介绍,相信大家已经对@bentley/extension-client的使用有了更为深刻的认识,希望能在实际应用中发挥其最大的作用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb05eb5cbfe1ea06110d1

纠错
反馈