# 計測操作を追加する — Dnalogel

公開版 MeasurePlugin で計測の開始、完了、取り消し、キャンセル、単位切り替えを行います。

Canonical: https://developer.realsee.ai/ja/docs/dnalogel/measure
Source: https://developer.realsee.ai/ja/docs/dnalogel/measure.md
Language: ja

# 計測操作を追加する

`MeasurePlugin` で読み込み済みシーンを計測します。[クイックスタート](https://developer.realsee.ai/ja/docs/dnalogel/quickstart) ではメートル単位・小数点以下 2 桁で登録します。`PanoMeasurePlugin` とは別のコントローラーで、メソッドは互換ではありません。

<span id="connect-your-controls" class="docs-anchor-alias" aria-hidden="true"></span>

## 操作を接続する

```ts title="examples/sdk-guides/src/dnalogel/measure.ts"
import type { MeasurePlugin } from '@realsee/dnalogel'

type MeasureController = ReturnType<typeof MeasurePlugin>

export function bindMeasurement(
  measure: MeasureController,
  report: (result: { reason: string; pointCount: number }) => void
) {
  const stop = measure.on('measureEnd', (reason, points) => report({ reason, pointCount: points.length }))
  return {
    start() { measure.measure() },
    finish() { measure.endMeasure() },
    undo() { measure.undo() },
    cancel() { measure.cancel() },
    metric() { measure.setUnit('m'); measure.setPrecision(2) },
    imperial() { measure.setUnit('ft'); measure.setPrecision(8) },
    clear() { measure.clear() },
    dispose() { stop(); measure.cancel() }
  }
}
```

シーンの準備完了後に `bindMeasurement(result.measure, report)` を呼び、返されたメソッドを開始・完了・取り消し・キャンセル・単位・消去のボタンに接続します。report は終了理由と点の数を受け取り、保存済みの計測結果を表すものではありません。

イベントは `measure.on('measureEnd', ...)` で購読します。`PanoTagPlugin` と異なり `.hooks` を使いません。

<span id="understand-precision-and-completion" class="docs-anchor-alias" aria-hidden="true"></span>

## 精度と完了を理解する

| 設定 | 意味 |
| --- | --- |
| 単位 `m`、精度 `2` | 長さは小数点以下 2 桁 |
| 単位 `ft`、精度 `8` | 長さは 1/8 インチ精度 |
| 面積表示 | 小数点以下 2 桁固定 |

終了理由には `enter`、`escape`、`polygon`、`mode_change`、`pano_move`、`floor_change`、`points_insufficient`、`external` があります。終了しても有効な多角形や保存済み結果とは限りません。サーバーに点を保存する前に、製品として受け入れる結果を定めてください。

<span id="verify" class="docs-anchor-alias" aria-hidden="true"></span>

## 確認する

計測を開始し、点の追加、取り消し、完了を試します。キャンセル、パノラマ・モード変更も試し、再作成せず単位を切り替えます。表示と report が操作に一致することを確認し、最後に接続とシーンを破棄します。

自分の撮影シーンで挙動と精度を確認してください。この例は測量精度を保証しません。

[公開設定](https://unpkg.com/@realsee/dnalogel@3.81.10/libs/MeasurePlugin/index.d.ts) · [コントローラーと終了理由](https://unpkg.com/@realsee/dnalogel@3.81.10/libs/MeasurePlugin/Controller.d.ts)

