ArcGIS Maps SDK for JavaScript の最新バージョン 4.34 をリリースしました。
以下では、ArcGIS Maps SDK for JavaScript バージョン 4.34 の主な新機能、機能拡張をご紹介します。
バージョン 4.34
来年から、より明確で予測可能なバージョン管理とツールのサポート向上のため、セマンティック バージョニングに移行します。次回のリリースはバージョン「5.0.0」となります。
セマンティック バージョニングへの移行に関する詳細につきましては、後日公開予定のブログ記事をご覧ください。
3D でのフローのレンダリング
FlowRenderer を使用してタイル イメージ レイヤーやイメージ レイヤーから方向性ラスター データ(U-V または強度 – 方向)の 3D アニメーション ビジュアライゼーションを作成できます。フロー ラインの位置は海面や地形に対して設定することが可能です。例えば、風が地形にどのように影響するかを可視化するには、地面に沿ってラインを表現し、オフセットを加えることで表現できます。
スプリットとマージを使用した編集
Editor コンポーネントにスプリットとマージのワークフローが追加されました。
スプリット
スプリット ワークフローでは、選択したライン、ポリゴン、マルチポイントのフィーチャを新しいフィーチャに分割できます。分割を実行した後、変更を確定する前に結果のフィーチャとその属性を確認できます。
マージ
マージ ワークフローでは、複数のフィーチャを 1 つのフィーチャに統合することができます。ポリゴンの場合、隣接するフィーチャは 1 つの大きなフィーチャに統合され、非隣接のフィーチャはマルチパート ポリゴンとして統合されます。統合の際には、どのフィーチャの属性を保持するかをユーザーが選択できます。
スプリットとマージのツールは、区画の修正や農地境界の調整、森林施業データの更新などの効率化に特に有用です。
コンポーネントを使用したアプリの構築
まだコンポーネントへの移行はしていませんか?ウィジェットに代わる Map、Scene などのコンポーネントを使用するようにアプリの移行をおすすめします。移行期間や今後の展望については「移行計画:ウィジェットからコンポーネントへ」を、移行のヒントについては「移行のヒント」をご覧ください。
コンポーネントは進化しています!マップ コンポーネントには、より高いカプセル化と柔軟性を実現するために、スロットとシャドウ DOM を実装しました。
スロット
スロットは Web コンポーネントの中心的な概念です。スロット名を指定することで簡単に独自のコンテンツを統合できる、事前定義されたプレースホルダーと考えてください。今回のリリースでは、Map および Scene コンポーネントに複数のスロットが追加されました。これらを使用して、マップやシーン上にその他のコンポーネントや UI 要素を配置できます。この新しいパターンは、廃止予定の position 属性や placement コンポーネントの代替となります。
要素を手動で配置したい場合は、スロットを使用せずに直接 CSS を使用することで対応できます。
<body class="calcite-mode-dark">
<arcgis-map item-id="237b9584339446a0b56317b5962a4971">
<arcgis-zoom slot="top-left"></arcgis-zoom>
<arcgis-legend slot="bottom-right"></arcgis-legend>
<calcite-button slot="top-right">Click me!</calcite-button>
</arcgis-map>
</body>
シャドウ DOM
マップ コンポーネントのすべてのコンポーネントにシャドウ DOM が導入されました。これは Web コンポーネントに共通するもう 1 つの重要な要素です。シャドウ DOM はカスタム要素をカプセル化し、マークアップ構造、スタイル、動作をページ上の他のコードから隠蔽、分離します。これにより、コンポーネントの内部設計が保護される一方で、開発者が通常のグローバル CSS セレクターを使ってコンポーネント内部の要素をスタイリングすることを防止できます。スタイルをカスタマイズしたい場合は、ドキュメントで定義されているデザイン トークンやコンポーネントの CSS 変数を使用してスタイリングすることができます。
モード
明色、暗色テーマが Calcite のモードを通じて設定できます。
レイアウト CSS 変数
Map、Scene、Link Chart、Video の各コンポーネントは ツール バー、凡例、パネルなどの UI 要素がスロットに配置されたコンポーネントを隠さないように、コンテンツの周囲にスペースを確保するための CSS 変数を提供するようになりました。
--arcgis-layout-overlay-space-top
--arcgis-layout-overlay-space-right
--arcgis-layout-overlay-space-bottom
--arcgis-layout-overlay-space-left
CSS 変数を使用してマップの UI コンポーネントのパディングを調整し、マップ パディングによるオフセットでマップを中央に配置
SDK のスタイルの読み込み
今回のアップデートから(ほとんどの場合)、コア CSS スタイル シートへのリンクを含める必要がなくなりました。スタイルはすでにコンポーネント内にカプセル化されているためです。詳細や注意点については、リリース ノートの「コア スタイル シートの使用に関する変更点」をご覧ください。
この他の詳細については、「UI の構築」ガイド ページをご覧ください。
チャート:コードが簡素化とヒート チャートの登場!
チャート コンポーネント(ベータ版を終了しました!)は、データをグラフィカルな形式で可視化するために使用され、パターン、傾向、洞察を容易に把握できるようにします。
チャートの宣言的な読み込み
アプリ内でチャートを作成する際、HTML 内のコンポーネント設定で、フィーチャ レイヤー アイテムに保存されたチャートを指定するだけで簡単に作成できるようになりました。これは、layer-item-id 属性(操作対象とするレイヤー)と chart-index 属性(表示したいチャートへのアクセス)を設定することで実現できます。
<arcgis-chart layer-item-id="8871626e970a4f3e9d6113ec63a92f2f" chart-index="0">
</arcgis-chart>
ヒート チャート
新しいヒート チャートでは、データをマトリクス形式で構成することで、大規模なデータセットにおけるパターン、関係性、傾向を明らかにすることができます。データは 2 つの日付フィールド(例:月と日)、2 つのカテゴリー フィールド(例:製品タイプと地域)、または 1 つの日付フィールドと 1 つのカテゴリー フィールド(例:家電タイプ別の月別エネルギー消費量)でグループ化することが可能です。
詳細は「ヒート チャートの作成」チュートリアルをご覧ください。
このヒート チャートは、ニューヨーク市のホテルの平均価格を、年間の月別および曜日別に可視化したもの
レイヤー単位の一貫したフィールド書式設定
フィーチャ レイヤー内で、エイリアスや日付、数値フィールドの書式設定などを直接構成できるようになり、Popup や Feature Table などの SDK コンポーネント内で一貫した書式を実現できます。この新機能では、国際化基準に適合した新しい書式オプションも追加されており、ロケールやタイム ゾーンに応じてフィールドの表示方法を制御することが可能です。
FieldConfiguration はすべてのフィーチャ サービス ベースのフィーチャ レイヤーおよびテーブルのフィールド設定を管理するための推奨方法です(今後のリリースで他のレイヤー タイプにも対応予定です)。既存のアプリケーションで使用されている FieldInfo は引き続き動作します。詳細は FieldConfiguration のドキュメントをご覧ください。
新しい Popup コンポーネント(ベータ版)
新しい Popup コンポーネントは、ビュー コンポーネント(Map、Scene、Link Chart)内でポップアップを表示、管理するための宣言的な方法を提供します。ビュー コンポーネントで Popup コンポーネントを使用するには、子要素として追加し、popup スロットに割り当てるだけです。
<arcgis-map item-id="237b9584339446a0b56317b5962a4971">
<arcgis-popup slot="popup"></arcgis-popup>
</arcgis-map>
Popup コンポーネントの使用方法に関する詳細は、Popup コンポーネントのリファレンスをご覧ください。
新しい体積測定解析(ベータ版)
体積測定解析(VolumeMeasurementAnalysis)では、地表の体積を 3D 空間内でインタラクティブに測定、可視化できます。今回のリリースでは、特定の目的に応じて設計された 2 種類の測定タイプが導入されています。
切土、盛土(cut-fill)
入力ポリゴンで定義された平坦な水平面に対して、切土および盛土の体積を算出します。これは、建設用地を平坦化するための掘削または盛土の量の推定に最適です。
ストックパイル(stockpile)
ポリゴンの座標から近似された地表面に対して、切土、盛土の体積を算出します。このツールは、資材の山、盛土、窪地などの一時的な地形の体積の推定に最適です。
体積測定解析は、既存の他の解析ツールと一貫した API 設計となっており、解析結果の取得や解析ビューを通じて、新しいジオメトリー入力の配置や既存の入力が可能です。現在は、地表、統合メッシュ レイヤーおよび統合メッシュ 3D タイル レイヤー上での解析をサポートしています。
Parquet レイヤーの機能強化(ベータ版)
ParquetLayer を使用すると Parquet ファイルに保存されたデータを 2D マップ上で可視化および解析することができます。Parquet は、ビッグ データ処理フレームワークでの使用に最適化されたカラム型ストレージ ファイル形式であり、Web において効率的なフォーマットです。今回のリリースでは以下の機能が追加されました。
- 空間情報を持たない Parquet ファイルをマップに追加し、ParquetLayer 内で表形式データを可視化
- ParquetLayer のデータをフィーチャ テーブルやポップアップで表示
- 属性およびジオメトリーによる ParquetLayer のクエリーの実行
- 統計情報の算出
標高プロファイル解析の操作のカスタマイズ(ベータ版)
ElevationProfileAnalysis を使用して、マップやシーンの標高プロファイルを分析するための、ユーザー操作をカスタマイズできます。この解析では、標高プロファイルや統計情報の作成、管理をプログラムで行うことが可能です。解析結果は任意のチャート ライブラリーを使ってアプリ内で可視化できます。この新しいサンプルで分析機能をご確認ください。
ジオリファレンスされた 3D モデルのアップロード
今回のアップデートでシーン レイヤーの編集機能が拡張され、アップロードされた 3D モデルをモデルの持つジオリファレンス情報に基づいて自動的に配置できるようになりました。これにより、Web シーンへの 3D モデルの取り込みが簡素化され、手動での配置が不要になります。
SDK の「3D オブジェクト ワークフロー」に関して更新されたサンプルとガイド ページでは、新しいオプションの使い方を確認できます。
アクセシビリティーの強化
すべてのユーザーが快適に利用できるアプリを開発できるようにすることは、SDK における主要な重点分野の 1 つです。今回のリリースでは、以下のアップデートが導入されました。
2D マップのアニメーションの無効化
一部のユーザーは動きに敏感であったり、アプリケーション内のアニメーションを控えたいと感じる場合があります。アニメーションを無効にする方法を提供することで、マップがすべての人にとって快適でアクセシブルなものとなるように支援します。新しいプロパティにより、2D マップ ビュー内のすべてのアニメーションを制御することが可能になりました。更新された「アニメーション シンボル」のサンプルで実際の動作をご確認ください。
マップおよびシーンへの ARIA 属性の追加
ARIA 属性はスクリーン リーダーのサポートを向上させ、より包括的なアプリケーションの構築に役立ちます。
const viewElement = document.querySelector("arcgis-map");
viewElement.aria = {
label: "New York Transit Map",
description: "A map showcasing New York City's public transit lines."
};
ラスト マイル デリバリー
ラスト マイル デリバリーは、配車ルート解析(Vehicle Routing Problem)の一種で、複数の車両による配送において最適なルートを導き出すための手法です。特に最終配送段階における固有の課題に対応し、密集した都市環境における効率性に重点を置いています。この手法では地理的に集約されたルートが生成されるため、ドライバーが各配送先を効率よく訪問でき、車両の運用コストを最小限に抑えることができます。SDK では、この ArcGIS の機能を簡単に利用できるクラスが新たに提供されています。
もっと詳しく
本ブログでは、今回のリリースに含まれる新機能や機能強化の一部をご紹介しました。この他にも Feature コンポーネントやポップアップでの添付ファイルのフィルタリングやラベルの競合回避処理の改善、方向付き画像のサポート強化など多くの新機能が含まれています。詳細はリリース ノートや新しいサンプルをご覧ください。

