UNPKG

@realsee/five

Version:

Realsee Renderer SDK

177 lines (172 loc) • 23.5 kB
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>features/coordinate-system | 如视 Five SDK</title><meta name="description" content="Documentation for 如视 Five SDK"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">如视 Five SDK</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">features/coordinate-system</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="坐标系-coordinate-system" class="tsd-anchor-link">坐标系 (Coordinate System)<a href="#坐标系-coordinate-system" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1> <ul> <li><strong>Summary</strong>: 详解 Five 中的坐标系定义(Local, ENU, ECEF)及其相互转换关系。</li> <li><strong>Concepts</strong>: Local (Y-up), ENU (Z-up), ECEF, ENU84, RootMeta, Observers.</li> <li><strong>Configuration</strong>: <code>rootMeta</code> <code>coordinate</code> 配置。</li> <li><strong>Examples</strong>: 坐标转换方法示例。</li> </ul> <h2 id="schema" class="tsd-anchor-link">Schema<a href="#schema" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <blockquote> <p><strong>Definition</strong>: <a href="../../five/model/tile3d/header.d.ts">TilesetHeader</a></p> </blockquote> <h3 id="rootmeta" class="tsd-anchor-link">RootMeta<a href="#rootmeta" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>3D Tiles <code>rootMeta</code> 字段中定义的坐标系元数据。</p> <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">RootMeta</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 模型垂直轴向 (如 &quot;Z&quot;, &quot;-Y&quot;) */</span><br/><span class="hl-1"> </span><span class="hl-6">upAxis</span><span class="hl-1">?: </span><span class="hl-7">string</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** 坐标系转换矩阵信息 */</span><br/><span class="hl-1"> </span><span class="hl-6">coordinate</span><span class="hl-1">?: </span><span class="hl-7">Coordinate</span><span class="hl-1">;</span><br/><span class="hl-1">}</span> </code><button type="button">Copy</button></pre> <h3 id="coordinate" class="tsd-anchor-link">Coordinate<a href="#coordinate" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>描述 ECEF 与 ENU 之间的转换关系。</p> <pre><code class="typescript"><span class="hl-3">interface</span><span class="hl-1"> </span><span class="hl-7">Coordinate</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-8">/** 地面高度 */</span><br/><span class="hl-1"> </span><span class="hl-6">ground_height</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">;</span><br/><span class="hl-1"> </span><span class="hl-8">/** ECEF 到 ENU 的转换矩阵 (4x4 数组) */</span><br/><span class="hl-1"> </span><span class="hl-6">pose_ecef_to_enu</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><span class="hl-1"> </span><span class="hl-8">/** ENU 到 ECEF 的转换矩阵 (4x4 数组) */</span><br/><span class="hl-1"> </span><span class="hl-6">pose_enu_to_ecef</span><span class="hl-1">?: </span><span class="hl-7">number</span><span class="hl-1">[];</span><br/><span class="hl-1">}</span> </code><button type="button">Copy</button></pre> <h2 id="concepts" class="tsd-anchor-link">Concepts<a href="#concepts" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <h3 id="overview-坐标系总览" class="tsd-anchor-link">Overview (坐标系总览)<a href="#overview-坐标系总览" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>Five 中涉及多个坐标系,它们在不同场景下各有用途。理解它们的关系是正确使用 Five 的关键。</p> <table> <thead> <tr> <th style="text-align:left">坐标系</th> <th style="text-align:left">上轴</th> <th style="text-align:left">适用场景</th> <th style="text-align:left">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align:left"><strong>Local (Y-up)</strong></td> <td style="text-align:left">Y</td> <td style="text-align:left">渲染场景、前端开发</td> <td style="text-align:left">Five 的 <code>five.scene</code>、Observer 位置、<code>project2d</code> 等均使用此坐标系。与 Three.js 默认一致。</td> </tr> <tr> <td style="text-align:left"><strong>ENU (Z-up)</strong></td> <td style="text-align:left">Z</td> <td style="text-align:left">算法交互、后端接口、模型原始数据</td> <td style="text-align:left">测绘行业习惯。3D Tiles 数据源、<code>loadGltf</code> 等加载器默认输出 Z-up。</td> </tr> <tr> <td style="text-align:left"><strong>ECEF</strong></td> <td style="text-align:left">-</td> <td style="text-align:left">RTK 定位、地球坐标</td> <td style="text-align:left">地心地固坐标系,用于包含 RTK 信息的模型。</td> </tr> <tr> <td style="text-align:left"><strong>World</strong></td> <td style="text-align:left">Y</td> <td style="text-align:left">Three.js 世界坐标</td> <td style="text-align:left">通常等同于 Local,除非有 Object3D 层级嵌套偏移。</td> </tr> </tbody> </table> <blockquote> <p><strong>关键区分</strong>:</p> <ul> <li><strong>开发者在 <code>five.scene</code> 中操作的所有对象</strong>(添加标签、射线检测结果、<code>project2d</code> 输入等)都处于 <strong>Local (Y-up)</strong> 坐标系。</li> <li><strong>模型数据源</strong>(3D Tiles、PLY、GLTF 等文件)通常以 <strong>ENU (Z-up)</strong> 存储。Five 在加载时会自动将其旋转对齐到 Local (Y-up)。</li> <li><strong>与后端/算法交互</strong>时,推荐使用 <strong>ENU (Z-up)</strong> 坐标系传输数据,通过 <code>viewLayer.localToEnu()</code> / <code>viewLayer.enuToLocal()</code> 进行转换。</li> </ul> </blockquote> <h3 id="local-coordinate-system-y-up" class="tsd-anchor-link">Local Coordinate System (Y-up)<a href="#local-coordinate-system-y-up" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>Five 的渲染场景 (<code>five.scene</code>) 和 Observers (观察点) 使用 <strong>Y-up</strong> (Y 轴向上) 的右手坐标系。 这与 Three.js 的默认坐标系一致,便于前端开发和场景渲染。</p> <ul> <li><strong>Y 轴</strong>: 垂直向上。</li> <li><strong>X/Z 轴</strong>: 水平平面。</li> </ul> <h3 id="enu-coordinate-system-z-up" class="tsd-anchor-link">ENU Coordinate System (Z-up)<a href="#enu-coordinate-system-z-up" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>在本项目及相关算法交互中,<strong>ENU</strong> 指代 <strong>Z-up</strong> (Z 轴向上) 的坐标系。这是为了和测绘行业习惯保持一致。</p> <ul> <li><strong>Z 轴</strong>: 垂直向上。</li> <li><strong>X/Y 轴</strong>: 水平平面。</li> <li><strong>ENU84</strong>: 特指 Y 轴正向指向正北 (North) 的 ENU 坐标系。(注:普通的 ENU 坐标系中,北向不一定对应 Y 轴,这与部分行业标准有所区别)。</li> <li><strong>用途</strong>: 推荐在给算法或后端接口传递模型数据时,使用 ENU 坐标系。</li> </ul> <h3 id="ecef-coordinate-system" class="tsd-anchor-link">ECEF Coordinate System<a href="#ecef-coordinate-system" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>地心地固坐标系 (Earth-Centered, Earth-Fixed)。</p> <ul> <li>当模型包含 RTK (Real-time kinematic) 信息时,通常基于 ECEF 坐标系进行描述。</li> <li>可以通过 <code>ecefToEnu</code> 方法将 ECEF 坐标转换为 ENU 坐标。</li> </ul> <h3 id="model-orientation-at3d-3dtiles" class="tsd-anchor-link">Model Orientation (at3d / 3dtiles)<a href="#model-orientation-at3d-3dtiles" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>模型 (如 <code>.at3d</code>, 3D Tiles) 的加载逻辑遵循以下原则:</p> <ol> <li><strong>无 RTK 信息</strong>: 默认为 <strong>Z-up</strong> (ENU)。</li> <li><strong>有 RTK 信息</strong>: 遵循 <strong>ECEF</strong> 坐标系。</li> <li><strong>自动对齐</strong>: Five 加载模型时(load 方法),会自动处理旋转和坐标系转换,将其对齐到 Five 的 Local (Y-up) 坐标系中。 <ul> <li>开发者在 <code>five.scene</code> 中看到的所有模型都已处于统一的 Y-up 坐标系下。</li> </ul> </li> </ol> <blockquote> <p><strong>注意</strong>: 外部模型加载函数(如 <code>loadGltf</code>, <code>loadPly</code> 等)的 <code>upAxis</code> 参数默认为 <code>'Z'</code>,表示输出的模型以 Z-up 存储。这是因为这些函数返回的是<strong>原始模型对象</strong>,尚未经过 Five 的自动对齐。当你通过 <code>five.load(work)</code> 加载 Work 数据时,Five 会自动完成 Z-up → Y-up 的转换。如果你手动使用 <code>loadGltf</code> 并添加到 <code>five.scene</code>,需要自行处理坐标系旋转。详见 <a href="features_load-external-model.html">Load External Model</a>。</p> </blockquote> <h3 id="coordinate-in-files" class="tsd-anchor-link">Coordinate in Files<a href="#coordinate-in-files" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>在 3D Tiles 的 <code>tileset.json</code> 中,<code>rootMeta</code> 字段用于描述坐标系转换信息(没有该字段则默认 Z-up):</p> <ul> <li>包含 <code>pose_ecef_to_enu</code> 和 <code>pose_enu_to_ecef</code> 变换矩阵。</li> <li>Five 读取这些信息来计算并构建完整的坐标转换链, 进行模型-观察点的坐标对齐。</li> </ul> <p>在 model 的 <code>coordinate</code> 字段用于描述坐标系转换信息(没有该字段则默认 Z-up):</p> <ul> <li>包含 <code>pose_ecef_to_enu</code> 和 <code>pose_enu_to_ecef</code> 变换矩阵。</li> <li>Five 读取这些信息来计算并构建完整的坐标转换链,确保模型-观察点的坐标对齐。</li> </ul> <h2 id="instance-methods" class="tsd-anchor-link">Instance Methods<a href="#instance-methods" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <p><code>ViewLayer</code> (继承自 <code>Tile3D</code>) 提供了成套的坐标转换方法,用于在 Local, ENU, ECEF 和 World 之间进行转换。</p> <table> <thead> <tr> <th>方法名</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td><code>localToEnu(vector)</code></td> <td>Local (Y-up) -&gt; ENU (Z-up)</td> </tr> <tr> <td><code>enuToLocal(vector)</code></td> <td>ENU (Z-up) -&gt; Local (Y-up)</td> </tr> <tr> <td><code>enuToEcef(vector)</code></td> <td>ENU (Z-up) -&gt; ECEF</td> </tr> <tr> <td><code>ecefToEnu(vector)</code></td> <td>ECEF -&gt; ENU (Z-up)</td> </tr> <tr> <td><code>localToEcef(vector)</code></td> <td>Local (Y-up) -&gt; ECEF</td> </tr> <tr> <td><code>ecefToLocal(vector)</code></td> <td>ECEF -&gt; Local (Y-up)</td> </tr> <tr> <td><code>worldToEnu(vector)</code></td> <td>World -&gt; ENU (Z-up)</td> </tr> <tr> <td><code>enuToWorld(vector)</code></td> <td>ENU (Z-up) -&gt; World</td> </tr> </tbody> </table> <blockquote> <p>注: <code>World</code> 坐标系通常指 Three.js 的世界坐标 (即 <code>five.scene</code> 的坐标)。在未通过 <code>Object3D</code> 层级嵌套偏移的情况下,<code>World</code> 等同于 <code>Local</code>。</p> </blockquote> <h2 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <h3 id="坐标转换-coordinate-transformation" class="tsd-anchor-link">坐标转换 (Coordinate Transformation)<a href="#坐标转换-coordinate-transformation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3> <p>推荐在与后端或算法交互时,将 Local 坐标转换为 ENU 坐标。</p> <pre><code class="typescript"><span class="hl-10">import</span><span class="hl-1"> </span><span class="hl-3">*</span><span class="hl-1"> </span><span class="hl-10">as</span><span class="hl-1"> </span><span class="hl-6">THREE</span><span class="hl-1"> </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;three&#39;</span><span class="hl-1">;</span><br/><span class="hl-10">import</span><span class="hl-1"> { </span><span class="hl-6">ViewLayer</span><span class="hl-1"> } </span><span class="hl-10">from</span><span class="hl-1"> </span><span class="hl-9">&#39;@realsee/five&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-8">// 假设已加载 ViewLayer</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">viewLayer</span><span class="hl-1">: </span><span class="hl-7">ViewLayer</span><span class="hl-1"> = ...;</span><br/><br/><span class="hl-8">// 1. 获取场景中某点的坐标 (Local Y-up)</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">localPosition</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">(</span><span class="hl-11">10</span><span class="hl-1">, </span><span class="hl-11">20</span><span class="hl-1">, </span><span class="hl-11">30</span><span class="hl-1">);</span><br/><br/><span class="hl-8">// 2. 转换为 ENU 坐标 (Z-up) 用于传输给后端/算法</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">enuPosition</span><span class="hl-1"> = </span><span class="hl-6">viewLayer</span><span class="hl-1">.</span><span class="hl-5">localToEnu</span><span class="hl-1">(</span><span class="hl-6">localPosition</span><span class="hl-1">.</span><span class="hl-5">clone</span><span class="hl-1">());</span><br/><br/><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">`Local: </span><span class="hl-3">${</span><span class="hl-6">localPosition</span><span class="hl-12">.</span><span class="hl-5">toArray</span><span class="hl-12">()</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">); </span><span class="hl-8">// [x, y, z] (y-up)</span><br/><span class="hl-6">console</span><span class="hl-1">.</span><span class="hl-5">log</span><span class="hl-1">(</span><span class="hl-9">`ENU: </span><span class="hl-3">${</span><span class="hl-6">enuPosition</span><span class="hl-12">.</span><span class="hl-5">toArray</span><span class="hl-12">()</span><span class="hl-3">}</span><span class="hl-9">`</span><span class="hl-1">); </span><span class="hl-8">// [x, y, z] (z-up)</span><br/><br/><span class="hl-8">// 3. 将 ECEF 坐标转换为 Local 坐标用于显示</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">ecefPosition</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-4">THREE</span><span class="hl-1">.</span><span class="hl-5">Vector3</span><span class="hl-1">( ... );</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">displayPosition</span><span class="hl-1"> = </span><span class="hl-6">viewLayer</span><span class="hl-1">.</span><span class="hl-5">ecefToLocal</span><span class="hl-1">(</span><span class="hl-6">ecefPosition</span><span class="hl-1">.</span><span class="hl-5">clone</span><span class="hl-1">());</span> </code><button type="button">Copy</button></pre> <h2 id="related" class="tsd-anchor-link">Related<a href="#related" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2> <ul> <li><a href="features_load-external-model.html">Load External Model</a>: 加载外部模型时的坐标轴配置 (<code>upAxis</code>, <code>modelUpAxis</code>)。</li> </ul> <hr> <pre><code class="yaml"><span class="hl-0">tags</span><span class="hl-1">: [</span><span class="hl-2">坐标系</span><span class="hl-1">, </span><span class="hl-2">坐标转换</span><span class="hl-1">, </span><span class="hl-2">右手坐标系</span><span class="hl-1">, </span><span class="hl-2">模型方向</span><span class="hl-1">, </span><span class="hl-2">旋转</span><span class="hl-1">, </span><span class="hl-2">地理坐标</span><span class="hl-1">, </span><span class="hl-2">coordinate-system</span><span class="hl-1">, </span><span class="hl-2">enu</span><span class="hl-1">, </span><span class="hl-2">ecef</span><span class="hl-1">, </span><span class="hl-2">z-up</span><span class="hl-1">, </span><span class="hl-2">y-up</span><span class="hl-1">, </span><span class="hl-2">transform</span><span class="hl-1">, </span><span class="hl-2">local</span><span class="hl-1">, </span><span class="hl-2">world</span><span class="hl-1">, </span><span class="hl-2">rtk</span><span class="hl-1">]</span> </code><button type="button">Copy</button></pre> </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#坐标系-coordinate-system"><span>坐标系 (<wbr/>Coordinate <wbr/>System)</span></a><ul><li><a href="#schema"><span>Schema</span></a></li><li><ul><li><a href="#rootmeta"><span>Root<wbr/>Meta</span></a></li><li><a href="#coordinate"><span>Coordinate</span></a></li></ul></li><li><a href="#concepts"><span>Concepts</span></a></li><li><ul><li><a href="#overview-坐标系总览"><span>Overview (坐标系总览)</span></a></li><li><a href="#local-coordinate-system-y-up"><span>Local <wbr/>Coordinate <wbr/>System (<wbr/>Y-<wbr/>up)</span></a></li><li><a href="#enu-coordinate-system-z-up"><span>ENU <wbr/>Coordinate <wbr/>System (<wbr/>Z-<wbr/>up)</span></a></li><li><a href="#ecef-coordinate-system"><span>ECEF <wbr/>Coordinate <wbr/>System</span></a></li><li><a href="#model-orientation-at3d-3dtiles"><span>Model <wbr/>Orientation (at3d / 3dtiles)</span></a></li><li><a href="#coordinate-in-files"><span>Coordinate in <wbr/>Files</span></a></li></ul></li><li><a href="#instance-methods"><span>Instance <wbr/>Methods</span></a></li><li><a href="#examples"><span>Examples</span></a></li><li><ul><li><a href="#坐标转换-coordinate-transformation"><span>坐标转换 (<wbr/>Coordinate <wbr/>Transformation)</span></a></li></ul></li><li><a href="#related"><span>Related</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">如视 Five SDK</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>