接続ガイド
製品概要
空間構造化モデリング Open API はサードパーティシステム向けに設計されています。3D キャプチャデータを編集可能なモデルに変換する、クラウド上の自動処理を提供します。
処理の流れ:LCC2 シーンパッケージ、LAS 点群、または PLY 点群をアップロード → クラウドが自動でモデリング → DXF / GLB / BLEND の 3D モデルと Revit モデル(RVT)を出力します。
活用シーン
- 竣工図の納品:現場スキャンから平面図・断面図のベース図面を直接取得でき、手作業での再モデリングが不要になります。
- リノベーション設計:寸法付きの壁・ドア・窓を取得し、そのまま CAD で設計できます。
- 不動産・資産管理:平面図と面積表を一括で作成できます。
- 事前調査と数量見積もり:構造化データを読み取り、解体・改修の検討や資材の見積もりに活用できます。
利用制限
| 項目 | 制限 |
|---|---|
| API 同時実行数 | API ごとに 10 リクエスト / 秒 |
| モデリングタスク同時実行数 | 制限なし。送信後ただちにキューに入ります |
| 一括照会の件数 | タスク詳細の 1 リクエストあたり最大 50 件の modelId |
| ポーリング間隔 | 5 秒以上を推奨 |
| アップロード用一時認証情報の有効期間 | 12 時間 |
| 最大パート数 | 10,000 パート |
| アップロードのハートビートタイムアウト | 180 秒。タイムアウトしたタスクはアップロード失敗になります |
| modelId 単位のレート制限 | タスク開始 API とアップロード認証情報の再取得 API には 3 秒のレート制限があります |
購入
本サービスは AWS Marketplace で提供しています。AWS Marketplace 製品ページからサブスクライブしてください。
アプリケーション認証情報の取得
事前にアプリケーションを申請し、以下の認証情報を取得してください。
| 認証情報 | 説明 |
|---|---|
| APP-ID | アプリケーションの一意な識別子 |
| APP-Secret | アプリケーションシークレット。署名の生成に使用します |
注:APP-Secret は安全に保管し、絶対に漏らさないでください。署名の生成はサーバー側でのみ行い、クライアントへの配布やフロントエンドコードへの記述は行わないでください。
データの保存リージョンはアプリケーション申請時に紐付けられるため、API 呼び出し時に指定する必要はありません。
署名メカニズム
署名要素
| 要素 | 取得元 | ルール |
|---|---|---|
| httpMethod | リクエストメソッド | 大文字。本ドキュメントの API はすべて POST を使用します |
| path | リクエストパス | /open-apis プレフィックスを含む完全なパス |
| timestamp | X-Timestamp | 秒単位のタイムスタンプ。ヘッダーの値と同一であること |
| nonce | X-Nonce | ランダム文字列。ヘッダーの値と同一であること |
署名対象文字列
\n は改行です。リクエストボディは署名に含まれません。
httpMethod + "\n" + path + "\n" + timestamp + "\n" + nonce
例:
POST
/open-apis/spatial-model/v1/model/create
1791763200
a3f91c2d8e7b4a6590fd12cb77ae40d1
署名アルゴリズム
| 項目 | 値 |
|---|---|
| アルゴリズム | HMAC-SHA256 |
| キー | APP-Secret |
| 出力 | Base64 エンコードされた文字列 |
サンプルコード
public static void main(String[] args) throws Exception {
String httpMethod = "POST";
String path = "/open-apis/spatial-model/v1/model/create";
long timestamp = System.currentTimeMillis() / 1000;
String nonce = UUID.randomUUID().toString().replaceAll("-", "");
// 1. 署名対象文字列を組み立てる
String signContent = httpMethod + "\n" + path + "\n" + timestamp + "\n" + nonce;
// 2. HMAC-SHA256
String appSecret = "xxxxxxxxxxxxxxxxxxx";
Mac mac = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey =
new SecretKeySpec(appSecret.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
mac.init(secretKey);
byte[] rawHmac = mac.doFinal(signContent.getBytes(StandardCharsets.UTF_8));
// 3. Base64 エンコード
System.out.println(Base64.getEncoder().encodeToString(rawHmac));
}
準備が整ったら、モデリングワークフローで呼び出しの全体の流れを確認してください。