zyy-engine

图形引擎API


测量工具

<h1>测量功能</h1> <p>测量功能对应的类:<code>BCore.Extension.Measure</code>,相关功能主要有以下两类子属性来实现:</p> <ul> <li><strong>MeasureManager</strong>: 负责管理测量对象</li> <li><strong>MeasureConfig</strong>: 用于配置测量的参数</li> </ul> <h2>一、MeasureConfig</h2> <h3>构造函数</h3> <pre><code class="language-javascript">new BCore.Extension.Measure.MeasureConfiger)</code></pre> <h4>成员变量</h4> <table> <thead> <tr> <th>成员变量</th> <th>类型</th> <th>说明</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>viewer3D</td> <td>BCore.Viewer.Viewer3D</td> <td>视图对象</td> <td></td> </tr> <tr> <td>isShowMeasureTag</td> <td>boolean</td> <td>是否显示测量标签</td> <td>true</td> </tr> <tr> <td>isShowMeasureBoard</td> <td>boolean</td> <td>是否显示测量面板</td> <td>true</td> </tr> <tr> <td>pickedColor</td> <td>string</td> <td>拾取/部分线段颜色</td> <td><code>#FA8C16</code></td> </tr> <tr> <td>pickedOpacity</td> <td>number</td> <td>拾取/部分线段透明度</td> <td>0.3</td> </tr> <tr> <td>drawFaceColor</td> <td>string</td> <td>面填充颜色</td> <td><code>#FA8C16</code></td> </tr> <tr> <td>disPickedColor</td> <td>string</td> <td>非拾取状态颜色</td> <td><code>#D46B08</code></td> </tr> <tr> <td>disPicked</td> <td>number</td> <td>非拾取状态透明度</td> <td>0.15</td> </tr> <tr> <td>depthTest</td> <td>boolean</td> <td>深度测试</td> <td>true</td> </tr> <tr> <td>transparent</td> <td>boolean</td> <td>部分对象透明</td> <td>true</td> </tr> <tr> <td>opacity</td> <td>number</td> <td>部分对象透明度</td> <td>03</td> </tr> </tbody> </table> <h2>二、 MeasureManager</h2> <h3>构造函数</h3> <pre><code class="language-javascript">new BCore.Extension.Measure.MeasureManager(config)</code></pre> <h3>参数</h3> <ul> <li><code>config</code>: <code>BCore.Extension.Measure.MeasureConfig</code> 测量配置参数</li> </ul> <h3>方法</h3> <ul> <li><code>openMeasure()</code>: 开启测量</li> <li><code>closeMeasure()</code>: 关闭测量</li> <li><code>getMeasureType()</code>: 获取当前测量类型</li> <li><code>setMeasureType(type)</code>: 设置测量类型</li> <li><code>deleteMeasureResult(name, type)</code>:测量结果</li> <li><code>clearAllMeasurdeResult()</code>: 清空所有测量结果</li> <li><code>setMeasureBoardVisible(bol)</code>: 设置测量面板可见性</li> <li><code>getMeasureBoardVisible()</code>: 获取测量面板可见性</li> <li><code>setMeasureTagsVisible(bol)</code>: 设置测量结果标签可见性</li> <li><code>getMeasureTagsVisible()</code>: 获取测量结果标签可见性</li> <li><code>setMeasurdeResultActive(name)</code>: 设置测量结果标签激活</li> <li><code>setMeasurdeResultDisActive(name)</code>: 取消测量结果激活</li> <li><code>getActiveMeasurdeResultName()</code>: 获取当前激活的测量结果名称</li> <li><code>getMeasureState()</code>: 获取测量状态</li> </ul> <h3>事件监听</h3> <ul> <li><strong>Measured</strong>: 测量完成事件,用户可以通过监听此事件获取量测结果。</li> <li><strong>MeasureTypeChanged</strong>: 测量类型变化事件。</li> <li><strong>MeasureDrawClick</strong>: 测量绘更新事件。</li> <li><strong>MeasureError</strong>: 测量出错事件。 <strong>MeasureRemoved</strong>: 测量结果移除事件。</li> </ul> <h3>示例代码</h3> <p>以下是一个简单的示例,展示了如何使用测量管理器进行测量:</p> <pre><code class="language-javascript">let measureConfig = new BCore.Extension.MeasureConfig(mViewer3D); let measureManager = new BCore.Extension.MeasureManager(measureConfig); measureManager.openMeasure(); // 设置测量类型为面积拾取 measureManager.setMeasureType(BCore.Static.MeasureType.Area); let measuredCallback = (e) =&amp;gt; { if (e.type === BCore.Static.MeasureType.Area) { // 处理面积测量结果 console.log(e); } }; mViewer3D.addEventListenerMeasured&amp;#039;, measuredCallback);</code></pre> <h3>总结</h3> <p>测量功能支持面积、线段及体积等多种测量类型。用户可以通过配置和事件监听来自由使用并处理测量结果。</p>

页面列表

ITEM_HTML