Amazon Quick Sight のレイヤーマップでは、都市内の店舗所在地や空港から離発着する航空便といったポイントやルートをプロットできるようになりました。地理空間マップは、ある地域の業績や顧客の集中場所など、場所に紐づくパターンを企業が発見するのに役立ちます。Amazon Quick Sight は、ポイントマップ、塗りつぶしマップ、レイヤーマップなど、複数のマップタイプでこれをサポートしています。 layer maps first launchedの当時は、GeoJSON ファイルをアップロードして販売地域やdistricts(行政区)などのカスタムシェイプレイヤーを描画し、それらのシェイプをデータセットに結合することができました。これは地域や境界の扱いには適していましたが、その内部にある個々の所在地や、それらを結ぶルートはカバーしていませんでした。
レイヤーマップは現在、同じ GeoJSON ワークフローからさらに 2 つのジオメトリタイプをサポートしています: Point と LineStringです。ポイントは個々の店舗や施設の所在地といった特定の場所を示します。LineString は、配送経路や空港間のフライトのように、場所間のルートを描画します。
Amazon Quick Sightは、 Amazon Quickのビジネスインテリジェンス(BI)機能であり、統合型の BI サービスです。モダンなインタラクティブダッシュボード、自然言語クエリ、精密なピクセルレポート、機械学習(ML)インサイト、組み込み分析を大規模に提供します。Amazon Quick は、ビジネスインサイト、リサーチ、自動化のための AI エージェントを 1 つの統合エクスペリエンスにまとめ、セキュリティとアクセスポリシーを維持しながら、よりスマートかつ迅速な作業を支援します。
この記事では、レイヤーマップに必要なデータセットと GeoJSON の構造を順を追って説明します。また、レイヤーマップビジュアルにおけるポイントとラインの仕組みと、それぞれをいつ選択すべきかについても解説します。最後に、ビューポートの制御、ジオメトリのレイヤー化、プログラムによる GeoJSON ファイルの更新といった高度なテクニックを取り上げます。
データセット構造の考慮事項
レイヤーマップは、シェイプを GeoJSON ファイルから取得し、メトリクスを Quick Sight データセットから取得します。両者は共有キーによって結合されます。それぞれをどのように構造化するかが、マップに表示できる内容を決定します。このセクションでは、開始前に必要なものと、GeoJSON ファイルの構成方法について説明します。
前提条件
Quick Sight でレイヤーマップを作成する前に必要な前提条件は次のとおりです:
- ジオメトリを記述した GeoJSON ファイル。
- メトリクスとディメンションを保持する Quick Sight データセット。
- Quick Sight データセットと GeoJSON ファイルで共有される結合キー。
- GeoJSON ファイルは .geojson 形式で保存する必要があり、サポートされる最大ファイルサイズは 100 MB です。
GeoJSON ファイルの構造
GeoJSON は、ポイントやラインなどの地理的フィーチャを記述するための JSON ベースのフォーマットです。
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [88.4, 22.6]
},
"properties": { "prop0": "value0" }
}, {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[88.2, 22.4],
[88.9, 23.1],
[89.5, 22.8],
[90.1, 23.6]
]
},
"properties": { "prop0": "value0" }
}]
}
ファイルの構造は次のとおりです:
- FeatureCollection はファイル全体です。type は FeatureCollection であり、 features 配列です。
- 特集 は1つの地図要素です。それは…を保持しています 幾何学 (その形状)と プロパティ 結合キーを保持するオブジェクト。
- ジオメトリー を持つ タイプ (Point、LineString、または Polygon)とその 座標。The 座標 1つを保持する [longitude, latitude] position for a ポイント「、およびaのための位置の順序付きリスト」 LineString.
Quick Sight データセットとその GeoJSON の設定
Quick Sight でレイヤーマップビジュアルのレイヤーを設定する際、考慮すべき主要な設定が 2 つあります。1 つ目は 可視化するジオメトリタイプGeoJSON ファイルのどのジオメトリを描画するかを設定するもので、ポイント、ライン、ポリゴンのいずれかです。レイヤーは一度に 1 種類のジオメトリを描画するため、前の例のように複数の種類が混在するファイルでは、選択した種類のフィーチャーだけが地図に表示されます。2 つ目は、次の シェープファイルのキーフィールド 〜に データセットのキー項目GeoJSON の各 Feature を Quick Sight データセットの行にリンクするものです。フィールド名は同一である必要はありませんが、値は同一である必要があります。以下の 2 つの例で、この仕組みを最初から最後まで示します。まず LineString 層、その後に ポイント レイヤー。
例:LineStringレイヤー
JFKからロサンゼルスのような目的地都市へのフライトを示すサンプルデータを考えてみましょう。単一のデータポイントのGeoJSON構造は次のように設定されています。
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[-73.7781, 40.6413],
[-85.5627, 40.6407],
[-97.1415, 39.4569],
[-108.1612, 37.1753],
[-118.4085, 33.9416]
]
},
"properties": { "route_id": "JFK-LAX" }
}
Quick Sight データセット内の対応する行には、次の情報が含まれています。
図1: JFK-LAX路線のデータセット行、route_idでキー付け
その route_id このフィールドは、Quick Sight のデータセットと GeoJSON ファイルを結合するために使用されます。GeoJSON にはルートごとに 1 つのフィーチャが含まれ、データセットにはルートごとに 1 行が含まれます。可視化するジオメトリタイプは Lines に設定されています。
図 2: LineString レイヤーとして描画された JFK-LAX 路線
例: ポイントレイヤー
Long Island City のような小売店舗の所在地を示すサンプルデータを考えてみます。単一のデータポイントの GeoJSON 構造は次のように設定されています:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-73.9490, 40.7447]
},
"properties": { "store_id": "S-109" }
}
Quick Sight データセット内の対応する行には、次の情報が含まれています:
図3: store_id をキーとした店舗のデータセット行
この store_id フィールドは、Quick Sight のデータセットと GeoJSON ファイルを結合するために使用されます。GeoJSON には店舗ごとに1つのフィーチャが含まれ、データセットには店舗ごとに1行が含まれます。可視化するジオメトリタイプは Points に設定されています。
図4: Point レイヤーとしてプロットされた店舗
レイヤーマップビジュアルでのライン
レイヤーマップビジュアルが LineString ジオメトリをサポートし、順序付けられた座標のリストを1つのパスとして接続できるようになりました。データ構造のセクションで説明したように、各ルートは1つのフィーチャであり、その座標はマップが順番に接続する位置の順序リストです。
飛行経路、配送ルート、航路、パイプラインの区間など、場所間の関係を示したい場合には、ラインを使用します。ビジュアルは、読み込み時にデータから生成するのではなく、GeoJSON ファイル内の座標から各パスを描画します。結合したデータセットのフィールドで線の色エンコーディングを決定できるため、そのフィールドが表す内容に応じてルートをグループ化できます。色に加えて、幅や不透明度のコントロールでラインをカスタマイズし、地図上での視覚的な目立ちやすさや明瞭さを調整できます。GeoJSON のプロパティオブジェクト内の結合キーが、各 LineString を、そのツールチップや色の背後にあるデータセットの行に結び付けます。
例えば、空港の運航チームが、特定の日にニューヨーク (JFK) を出発するフライトをマッピングするとします。GeoJSON ファイルにはルートごとに1つの LineString が含まれ、データセットに結合するルート ID がキーとなります。各ラインは JFK を起点とし、ロサンゼルス、シカゴ、マイアミなどの目的地で終わります。データセットは、ツールチップに表示される出発地、目的地、航空会社を提供します。
図5: JFK 出発のフライトを複数の目的地への LineString ルートとして描画
レイヤーマップビジュアルでのポイント
Amazon Quick Sight には、地名を自動的にジオコーディングし、SPICE のスケジュールや Direct Query 接続に合わせて更新されるネイティブの ポイントマップビジュアルタイプ があります。動的なポイントのサイズ変更、色エンコーディング、クラスターポイントやヒートマップ密度グラデーションなどのポイントスタイルをサポートしています。頻繁に変化するデータや、その変化に視覚的に反応させたい地図に最適です。
レイヤーマップビジュアルで GeoJSON のポイントレイヤーがサポートされたことで、Quick Sight はいくつかの重要な違いを持つ2つ目のポイントマッピング機能を提供するようになりました。レイヤーマップビジュアルのポイントはマーカーサイズが均一で、ジオコーディングをサポートしないため、GeoJSON ファイルに明示的な座標を提供する必要があります。その代わり、ビューポートを正確に制御し、地図を特定の地理的領域に固定し、パンやズームを無効にすることができます。
主な違いを以下の表にまとめます:
| 機能 | ポイントマップ | レイヤーマップビジュアルのポイント |
| データソース | データセット内の緯度/経度の値または地理位置の名称 | 共通キーでデータセットに結合された GeoJSON の Point フィーチャ |
| ジオコーディング | 都市、郡、州、国、郵便番号を自動的に認識 | 利用不可。GeoJSON ファイルに明示的な座標を提供する必要あり |
| 位置情報の更新 | 位置の値が変化すると、SPICE の更新や Direct Query に合わせてマッピングが自動的に更新 | ビジュアルはポイントの位置に静的な GeoJSON ファイルを使用。ジオメトリの更新には手動の再アップロードまたは API 呼び出しが必要 |
| ビューポート | データに自動的にフィットし、パンとズームは常に有効 | デフォルトで自動フィットし、パンとズームを許可するかどうかを設定できます |
| 外観 | サイズと色をデータセットからエンコードできます。ポイントスタイルの設定が可能です(基本、クラスタ、ヒートマップ) | マーカーのサイズ、塗りつぶしの不透明度、境界線の色と太さを一括してカスタマイズできます。色はデータセットからエンコードできます |
次の場合にレイヤーマップの視覚ポイントを選択してください:
- ロックされた、スクロールできないビューポートが必要な場合。
- ロケーションが固定されていてキュレーションされたものであり(地域オフィス、流通センター、小売店舗など)、データの更新のたびに変化するものではない場合。
- ポイントを他のジオメトリタイプと組み合わせる予定がある場合(高度なユースケースのセクションで取り上げます)。
ある小売ブランドを想定してください。このブランドの地域マネージャーは、Quick Sight ダッシュボードを使って都市圏全体の店舗パフォーマンスを追跡しています。GeoJSON ファイルには店舗ごとに Point フィーチャが含まれ、ストア ID プロパティがデータセットと結合されます。データセットには、ツールチップと色エンコーディングを駆動するメトリクス(店舗タイプ、月間売上、来店客数)が保持されています。都市圏をカバーするズームレベルに地図を配置し、その後、地図ナビゲーションを無効にすることで、読み込みのたびに一貫したビューで地図がレンダリングされるようにします。マネージャーが誤って全国表示や全球表示にズームアウトしてしまうことはありません。
Figure 6: 地図ナビゲーションを無効にして都市圏ビューを固定した、ポイントとして表示された店舗ロケーション
高度なユースケース
前のセクションでは、標準的なレイヤーマップのセットアップについて説明しました。読者が見る内容をより細かく制御したい場合、1つのビューに複数のジオメトリタイプを組み合わせたい場合、または時間とともに変化するジオメトリが必要な場合は、以下のテクニックを使用してください。
ビューポートの制御
レイヤーマップビジュアルでビューポートを制御する必要がある場合は、手動でパンやズームを行って目的のビューにした後、地図ナビゲーションを無効にしてその位置に固定できます。より正確な境界やプログラムによる制御が必要なユースケースでは、Quick Sight API を使用してビジュアル定義を通じて正確なビューポート座標を設定できます。
レイヤーマップビジュアルはビューポート設定を MapState のプロパティに ChartConfiguration内に保存します。このプロパティは 2 つのフィールドを受け入れます:
- Bounds: 表示される最小領域を定義する地理的座標(北、南、東、西)。
- MapNavigation:
ENABLEDまたはDISABLEDにより、読者がパンやズームできるかどうかを制御します。
bounds プロパティはコンソールでは公開されていませんが、プログラムによるアセット管理のためにダッシュボード定義 JSON を扱う際に、これらの bounds を設定できます。たとえば、bounds を定義するには、ビジュアル定義の MapState ブロックを変更してから、 CreateDashboard または UpdateDashboard API を呼び出します。
bounds は、確実に表示されることが保証される最小領域を定義します。地図はこの領域全体がビジュアルコンテナ内に収まるようにズームします。余分なスペースを最小限に抑えて最もタイトなフィットを得るには、bounds のアスペクト比をビジュアルコンテナの形状に合わせてください。
ジオメトリのレイヤー化
複数のジオメトリタイプを 1 つのビューに組み合わせる必要があるユースケースでは、ビジュアルを重ねて表示できます。たとえば、次のスクリーンショットは、ポリゴンで定義された米国の地域境界内に、ポイントとして顧客のロケーションをプロットしたものです。この構成により、どのテリトリーで顧客密度が最も高いかがわかり、データセットに存在するパフォーマンスなどの他のメトリクスと関連付けることができます。
Figure 7: ポリゴンの地域境界内にレイヤー化された顧客ポイント
この 2 番目の例は、配送ルートの経路上の停止地点としてポイントを組み合わせたものです。LineString が計画されたルートを描き、Point フィーチャが経路沿いの各予定停止地点を示します。
Figure 8: LineString として描かれた配送ルートと各停止地点の Point マーカー
ジオメトリをレイヤー化するには、以下の手順に従って、複数のレイヤーマップビジュアルを互いに重ねて配置します:
- フリーフォームレイアウトを使用します: シートの レイアウト設定をフリーフォームに変更します ビジュアルが重なり合い、積み重ねられるようにします。
- 2 つのレイヤーマップビジュアルを作成します: 単一のビューに結合する 2 つのレイヤーマップビジュアルを作成します。たとえば、一方は Point GeoJSON ファイルを使用し、もう一方は LineString GeoJSON ファイルを使用します。
- 一致する境界を使用します: ビューポートを制御するために前に説明した手法を使用して、すべてのレイヤーマップビジュアルが同一の境界を持つようにし、同じ基盤となるマップビューにします。
- パンとズームを無効にします: 各レイヤーマップビジュアルで、[Map options] の下のパンとズームを無効にして、配置が同じままであるようにします。
- 上のレイヤーでベースマップと背景を非表示にします: 上のビジュアルの背景を [Display settings] の下で非表示に設定し、[Map options] の下でベースマップを無効にします。
- ビジュアルを積み重ねます: ドラッグアンドドロップ、または [Display settings] の下で正確なサイズと位置の座標を一致させることにより、最上位のビジュアルをベースレイヤーの上に移動します。
レイヤーの順序は、フリーフォームレイアウトでのビジュアルの積み重ね順序に従います。スタック内のビジュアルの位置を変更するには、ビジュアルのメニューアイコン (3 つのドット) を選択し、次に Send backward または Bring forwardを選択します。読者は最上位のビジュアルのツールチップにアクセスできるため、読者が詳細を必要とするレイヤーを最上位に配置します。各シートは最大 5 つのレイヤーマップビジュアルをサポートします。
GeoJSON の動的更新
SPICE または Direct Query を通じてデータが更新される他の Quick Sight ビジュアルとは異なり、レイヤーマップのジオメトリは GeoJSON ファイル自体に存在します。データセットがスケジュールに従って更新されると、メトリクスは更新されます (たとえば、色が変わり、ツールチップの値が更新されます) が、ジオメトリは元の位置のままです。
地図に表示される内容を更新するには、新しいルート、新しい地点の位置、更新された境界などについて、GeoJSONファイルを更新してダッシュボードを再公開する必要があります。Quick SightコンソールでAnalysis内のレイヤーマップのビジュアルを編集し、新しいファイルをアップロードすることで、GeoJSONファイルを手動で置き換えることができます。これは、四半期ごとにテリトリー境界を更新したり、新しい店舗の場所を追加したりするなど、頻度の低い変更に適しています。
自動化された更新、オンデマンドの更新、または動的な更新の場合、そのプロセスには Amazon Simple Storage Service (Amazon S3) と、以下の手順で概説する Quick Sight API が関わります:
- 新しいGeoJSONをAmazon S3にアップロードします: 更新されたジオメトリを生成し、それを an に保存します。 Amazon S3 バケット。カスタムソリューションでは、以下のような他の AWS サービスを利用できます。 Amazon Location Service GeoJSONファイルを作成します。
- ダッシュボード定義のファイルを参照します: ダッシュボードの定義にはが含まれており StaticFiles 配列は
SpatialStaticFileGeoJSONファイルごとのエントリを更新します。ファイルの参照を、更新したファイルのS3上の場所に変更してください。各GeoJSONファイルのエントリを対象としてください。 - UpdateDashboard API を呼び出します: 新しいファイル参照を含む更新された定義を、以下を使用して送信してください: UpdateDashboard API。
- UpdateDashboardPublishedVersion API を呼び出します: 変更を公開して、ダッシュボードの閲覧者に表示されるようにします。 UpdateDashboardPublishedVersion API。
以下の例では、このパターンを使用して、埋め込みダッシュボード内でのオンデマンドの地図更新をサポートし、地点と経由地の間の最適なルートを生成します。この記事の範囲外ですが、これは前述の各アプローチを組み合わせた高度なユースケースです。
図9: 埋め込みダッシュボードにおけるオンデマンドのルート生成
結論
この記事では、Amazon Quick Sight のレイヤーマップで Point と LineString のジオメトリを使用して、特定の場所とその間のルートをプロットする方法を示しました。レイヤーマップに必要な GeoJSON 構造とデータセットの結合について説明し、レイヤーマップのポイントをネイティブのポイントマップと比較しました。さらに、ビューポートの制御、複数のビジュアルを 1 つのビューにレイヤー化する手法、Amazon S3 と Quick Sight APIs を使った GeoJSON ファイルの更新という高度なテクニックについても解説しました。
レイヤードマップの詳細については、以下を参照してください。 Amazon Quick Sight のレイヤードマップのドキュメント. 次のサイトを訪問してください: Amazon Quick Community 仲間とつながり、最新の機能やリソースについての情報を得るために。