アプリケーションの構築Workshopビジュアライゼーションウィジェットマップ

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

マップ

マップウィジェットは、オブジェクトセットまたはオブジェクトデータを設定可能なインタラクティブな地理空間ビジュアル化として表示します。

これらのマップビジュアル化は、2つのタイプのレイヤーで構成されています。

  • ベースレイヤータイルレイヤーとも呼ばれる)は、背景マップ画像を提供し、
  • オーバーレイレイヤーは、データをベースレイヤー上の点や形状として表現します。

マップウィジェットは、MapboxGLを使用したマップレンダリングをサポートしています。WebGLがユーザーのブラウザでサポートされていない場合、マップウィジェットはLeafletでレンダリングされます。

マップウィジェットは、ベースマップ画像の主要なソースとしてMapboxを使用し、Mapboxをプロキシできないセキュアなネットワークのための「内部」スタイル(ベースマップ画像のカスタムソース)をサポートしています。Webマップ技術の詳細については、Mapboxドキュメントを参照してください。

以下のスクリーンショットは、さまざまなレイヤータイプを表示する設定済みのマップウィジェットの例を示しています。

map_overview

レイヤータイプ

マップウィジェットでは、オーバーレイレイヤーがマップのベースレイヤー上に点や形状としてデータを表現します。マップウィジェットには、以下のタイプのオーバーレイレイヤーが含まれています。

ポイント

ポイントレイヤーは、ジオハッシュプロパティ(緯度経度ペアの形式で格納されている)によってプロットされるマップ上の個々のオブジェクトを、ポイントまたはマーカーで表現します。プロットされるオブジェクトのプロパティに基づいて、ポイントの色、アイコンタイプ、サイズをスタイル化することができます。

設定情報については、以下のポイントレイヤーの設定セクションを参照してください。

例:利用可能な病床数で色分けされたポイントとして病院の場所を示すマップ。

クラスター

クラスターレイヤーは、ジオハッシュロケーションプロパティに基づく大規模なオブジェクトセットに最適です。クラスターはポイントと似ていますが、オブジェクトごとに1つのマーカーをプロットする代わりに、プロットされるオブジェクトが地理的な近さに基づいてクラスターに集約され、クラスターのサイズおよび/または色を、特定の領域内のオブジェクトの数(またはオブジェクト内のプロパティの合計や平均などの他の集約関数)を表現するように設定できます。

設定情報については、以下のクラスターレイヤーの設定セクションを参照してください。

例:全国の気象ステーションの一般的な地理的分布を示すマップ。

Choropleth

マップウィジェットのchoroplethレイヤーは、地域(国や州など)を表示し、その地域を表現するオブジェクトの属性や、地域をまたいだオブジェクトの集計に基づいて色分けされます。これにより、異なる地域間の変化やパターンを視覚化する方法が提供され、時間とともにこれらの値がどのように変化するかを確認するオプションがあります。

設定情報については、以下のchoroplethレイヤーの設定セクションを参照してください。

FunctionsのH3ヘキサゴンのカスタム集計をサポートするために、choroplethレイヤーはH3ヘキサゴンを個々の地域としてマップするためにも使用できます。以下のchoroplethレイヤーのH3用設定セクションを参照してください。

例:州ごとの人口密度で色分けされた州のマップ。

Line segment

Line segmentレイヤーは、2つのポイントをつなぐ線分として個々のオブジェクトをプロットします。

設定情報については、以下のラインセグメントレイヤーの設定セクションを参照してください。

例:出発空港が目的地空港に連絡されたフライトルートを示すマップ。

Static

Staticレイヤーは、動的にフィルター処理できない情報を表示し、オブジェクトデータ以外のソースから来ます。これらのレイヤーは、同じマップ上の他のデータレイヤーの背景情報を提供することで最も有用です。レイヤーのデータは、GeoJSON形式またはVectorレイヤーを通じて提供されることができます。

設定情報については、以下の静的レイヤーの設定セクションを参照してください。

例:さまざまなエリアで悪天候のリスクが発生する層。

Saved

Savedレイヤーは、Map Layer Editorで設定されたマップレイヤーを個別のリソースとして保存したものを表示します。これらのレイヤーは、複数のアプリケーション間で共有され、Foundry全体で背景情報を一貫して提供するためによく使用されます。

設定オプション

基本設定

以下の画像は、新しく追加されたまだ設定されていないマップウィジェットとその設定パネルを並べたものです。

map_configuration_overview

マップウィジェットの基本設定オプションは以下の通りです。

  • マップスタイル
    • これは表示される基本マップタイルを制御する設定です。デフォルトでは、これらのタイルはMapboxから読み込まれます(使用は既存のエンタープライズライセンスによってカバーされています)。MapboxのタイルはLight、Dark、Satelliteなど、いくつかのテーマをサポートしています。
    • または、Internal設定を選択してカスタムタイルソースを選択することもできます。カスタムマップスタイル/基本タイルソースの設定については、Palantirの代表者に問い合わせてください。
  • マップビューポート: マップが自動的に表示データの境界に合わせてズームするか、または初期のマップ読み込み時に事前に設定されたビューポートを使用するかを選択できます。
    • ズームフィット: マップは自動的に表示データの境界に合わせてズームし、データの変更(例えば、フィルター処理の結果)に対応して調整します。
      • 最大ズームフィットレベル: これはマップの自動ズームの最大ズームレベルを設定します。
    • 初期ビューポート: 初期読み込み時に表示される事前に設定されたビューポート。この設定を使用すると、ページまたはタブが再ロードされない限り、マップのビューポートはリセットされません。
  • レジェンド: レジェンドに関連するさまざまな設定があります。具体的には:
    • レジェンド全体を表示または非表示にするかどうか
    • 位置と向き
    • レジェンドを折りたたむことができるかどうか(マップ上のスペースを節約するため)
    • トグル可能なレイヤー: エンドユーザーが個々のマップレイヤーを自分で表示/非表示にできるかどうか
  • データレイヤー: データレイヤーはオブジェクトセットに基づくマップレイヤーです。データレイヤーのタイプには、ポイント、クラスタ、コロプレス、ラインなどがあります。これらはそれぞれタイプ固有の設定を持っていますが、すべてのデータレイヤーは以下の設定オプションを共有します:
    • マップに表示するオブジェクトセット: これはデータレイヤーへの入力変数で、マップ上に表示されるデータを決定します。これにより、モジュールビルダーは新しいオブジェクトセット変数を定義するか、またはWorkshopモジュールの他の場所で作成された既存のオブジェクトセット変数を再利用することができます。
    • 選択、可視性、イベント設定: 選択、可視性、イベントの設定セクションを参照してください。これらの設定オプションは、レイヤー設定パネルの下部に表示されます。
    • 以下に、他のレイヤー固有の設定オプションについて詳しく説明します:
  • 静的レイヤー: データレイヤーと静的レイヤーの主な違いは、静的レイヤーはオブジェクトセットを表示するために必要としない点です。その結果、静的レイヤーは動的にフィルタリングすることはできません。静的レイヤーにオブジェクトセットへの接続を設定することは可能です(必須ではありません)。そのため、静的レイヤー上の領域にマウスを合わせると、オントロジー内の対応するオブジェクトについての詳細が表示されます。詳細については、静的レイヤーの設定セクションを参照してください。
  • マップ上での図形描画の有効化: この設定は、マップ上で図形を描画する能力を決定します。この設定オプションは、Yesに設定されると詳細が明らかになります。詳細については、以下の描画コントロールの設定セクションを参照してください。
  • 時間ステッパーを含む: この設定は、マップの状態を異なる時間/日付のインスタンスで表示します。この設定オプションは、Yesに設定されると詳細が明らかになります。詳細については、以下の時間ステッパーコントロールの設定セクションを参照してください。
  • 公開ビューポートフィルター: この設定は、ウィジェット内のマップの可視境界に基づいてオブジェクトセットをフィルター処理するのに役立ちます。詳細については、以下のビューポートフィルターコントロールの設定セクションを参照してください。
  • 一般的な位置検索の有効化: 有効化すると、ユーザーはマップの左上角に検索アイコンを表示し、世界中の任意の場所やアドレスを検索できます。ユーザーはマップにズームインして特定の位置にマーカーを設定できます。検索結果のタイトルと地理データは、マップ上にマーカーを表示するために初期化する必要がある文字列変数に保存されます。
  • ユーザーの現在位置を表示: 有効にすると、ユーザーの現在位置がデバイスの地理情報に基づいてマップ上に表示されます。ユーザーが自分の現在位置にズームインできるようにするため、マップの左下角に追加のボタンを表示できるようにします。ただし、この設定はすべてのデバイスやブラウザでサポートされているわけではないことに注意してください。

ポイントレイヤーの設定

map_configure_point_layers

ポイントレイヤーの主な設定オプションは以下の通りです:

  • ジオハッシュプロパティ: マッピングされるオブジェクトセット上のジオハッシュプロパティタイプ。これは各オブジェクトの位置を示すジオハッシュ(緯度-経度のペア)を含みます。
  • 検索結果ページの数: 読み込まれるオブジェクトの数を決定します。最大で10,000オブジェクトを読み込むことができます。
  • レジェンドヘッダー: ユースケース/シリーズを説明するレジェンドラベル。
  • スタイリング: 各ポイントのアイコンタイプサイズを設定することができます。これらはすべて静的スタイルに設定するか、それぞれのポイントに対応するオブジェクトの選択したプロパティの値に基づく動的なデータ駆動スタイルに設定することができます。設定の詳細については、以下の非集約値系列設定および色設定セクションを参照してください。
  • オブジェクトプレビューに表示するプロパティ: 各ポイントに対するホバー/クリックで表示されるツールチップは、設定されたプロパティの任意のセット(prominentspecificnoneなど)を表示することができます。
  • ポイント接続設定: データがソート可能であると仮定して、ポイントをラインで接続することを許可します。この設定オプションは、ラインで接続に設定されると詳細が明らかになります。
    • ソートプロパティタイプ: ポイントをソートするためのプロパティ。ソート順は、どのポイントを互いに接続するかを決定します。
    • ソート順: ポイントをソートする順序。
    • 色: ポイントを接続するラインの色。
    • 幅: ポイントを接続するラインの幅。
    • ストローク: ポイントを接続するラインのストローク。

クラスタレイヤーの設定

map_configuration_cluster_layers

クラスタレイヤーの主な設定オプションは以下の通りです:

  • ジオハッシュプロパティ: マッピングされるオブジェクトセット上のジオハッシュプロパティタイプ。これは各オブジェクトの位置を示すジオハッシュ(緯度-経度のペア)を含みます。近くのジオハッシュポイントは、クラスタを定義する際に考慮されます。
  • 集約: 各クラスタに表示するべき値を計算するための集約を設定することができます。例えば、以下のスクリーンショットは、米国の空港からの合計出発フライト数を表示するクラスタレイヤーの設定を示しています(これは上記のマップのように見えます)。設定の詳細については、以下の集約値系列設定セクションを参照してください。

map_cluster_layer_aggregation

  • サイズ設定: クラスタのサイズを定義することができます。これは単一のサイズ(均一なクラスタ)であることも、動的(上記で設定した集約から返される値に基づいてスケーリング)であることもできます。
    • 単一サイズ: クラスタは均一なサイズになります。
      • サイズ: クラスタのサイズ。各クラスタは均一なサイズになります。
      • レジェンドラベル: ユースケース/シリーズを定義するラベル。
    • 値による自動スケーリング: クラスタのサイズは基礎となる値に基づくものになります。
      • スケールタイプ: クラスタのサイズを計算するために使用する数学的スケールのタイプ(例えば、線形、対数、平方根)。データが非常に歪んでいる場合、対数または平方根スケーリングが線形スケーリングより適しているかもしれません。
      • 最大下限: 自動的に計算されたスケールの最高の下限。この下限より低いデータ値がある場合、スケールはそれらの値を含むように拡張します。
      • 最小上限: 自動的に計算されたスケールの最低の上限。この上限より高いデータ値がある場合、スケールはそれらの値を含むように拡張します。
  • 色設定: クラスタの色を定義することができます。クラスタは均一に色付けすることも、値に基づいて色付けすることもできます。設定の詳細については、以下の色設定セクションを参照してください。
  • 不透明度設定: クラスタの単一、均一な不透明度を定義することができます。
  • レジェンドラベル: ユースケース/シリーズを定義するラベル。これはレジェンドに表示されます。
  • 値のフォーマッター: 値を別の形式で表現することができます。例えば、値をパーセンテージとして表現する場合は、値のフォーマッターとして%を設定します。指定する値はd3-format stringでなければなりません。

コロプレスレイヤーの設定

map_configure_choropleth_layers

コロプレスレイヤーの主な設定オプションは以下の通りです:

  • 凡例ヘッダー: このレイヤーの凡例セクションのシリーズレベルの凡例ヘッダーの上に表示されるヘッダーです。レイヤー内の各シリーズは凡例ヘッダーを提供するオプションを持っています。
  • コロプレスレイヤーの設定: コロプレスとラインレイヤーは 集約 または 非集約 のいずれかにすることができます。すべてのコロプレスレイヤーは一般的に国や州などの何らかの領域を表示します。集約タイプの違いは、入力オブジェクトセットの各オブジェクトが特定の領域に対応しているか(非集約)、それとも一つ以上のオブジェクトが特定の領域内に含まれているか(集約)です。
    • 集約: その領域を表すオブジェクト上の集約に基づいて色付けされた領域(例えば、国や州など)を表示します。たとえば、入力経費のセットに基づく国ごとのコストとボリュームの比率を示す地図などがあります。
      • 領域IDプロパティタイプ: 領域IDプロパティを選択することができます。これは各領域のデータ値を計算するために集約が行われるプロパティです。この領域IDプロパティの値が下で選択した境界ソースの領域IDと完全に一致していることが重要です。
      • コロプレス境界ソース: レイヤーの境界ソースを選択することができます。以下の コロプレス境界ソース は、3つのサポートされているソース:MapboxGeoJSON、および Vector の詳細です。
      • 集約値設定: ここでは、各シリーズで描画されるオブジェクトがその領域IDに基づいて集約される一連の集約シリーズを定義することができます。領域の色は、特定の領域のオブジェクト数を表すか、または領域内のオブジェクト間でのプロパティの合計や平均など、他の集約関数を表すように設定可能です。詳しい設定内容については、以下の 集約値シリーズ設定色設定 のセクションをご覧ください。
    • 非集約: その領域を表すオブジェクトの プロパティ値 に基づいて色付けされた領域を表示します。たとえば、人口密度によって各州が色付けされたアメリカの地図があります。ここでの人口密度は、州オブジェクトタイプのプロパティタイプです。
      • 領域IDプロパティタイプ: 領域IDプロパティを選択することができます。このプロパティ値は各領域を一意に識別するために使用され、"領域"を選択した場合にフィルタリングされるプロパティです。この 領域ID プロパティの値が下で選択した境界ソースの領域IDと完全に一致していることが重要です。
      • コロプレス境界ソース: レイヤーの境界ソースを選択することができます。以下の コロプレス境界ソース は、3つのサポートされているソース:MapboxGeoJSON、および Vector の詳細です。
      • 非集約値設定: ここでは、各シリーズで、描画されるオブジェクトのプロパティ値を表す領域の色を設定可能な非集約シリーズのリストを定義することができます。詳しい設定内容については、以下の 非集約値シリーズ設定色設定 のセクションをご覧ください。
      • 検索結果ページ数: これはロードされるオブジェクトの数を決定します。各ページは1000オブジェクトで、非集約レイヤーごとに最大10,000オブジェクト(10ページ)をロードできます。
      • オブジェクトプレビューに表示するプロパティ: 各点のホバー/クリック時に表示されるツールチップは、設定されたプロパティ(prominentspecific、または noneなど)の任意のセットを表示できます。

コロプレス境界ソース: コロプレスレイヤーを設定するには、表示される領域を定義する境界のソースを指定する必要があります。境界データのソースとして考えられるのは以下のいくつかです:

  • Mapboxソース: 世界中の一般的な領域(国、州、郡など)を表示することに興味がある場合、コロプレスを設定する最も簡単な方法です。このオプションは Mapboxエンタープライズ境界セットの使用を活用します。FoundryインスタンスにMapbox境界データセットをインストールする方法を学びましょう。
    • Mapboxエンタープライズ境界バージョン: 現在、Mapboxの2つのバージョン(V3とV4)がサポートされています。最新の境界線を使用するために、V4の使用をお勧めします。
      • Mapboxソース設定ID: 境界タイプとデータレベルを選択することができます。Mapboxの境界データは、境界が果たす機能に基づいて5つの広範なタイプに分類されています:adminlegislativelocalitypostalstats。各境界タイプ内では、機能は異なる数値レベルの階層に組織されています。通常、大きな数値レベルは小さな数値レベルの下にネストされます。たとえば、アメリカでは、郡(adminレベル2)は州(adminレベル1)の下位区分であり、州は国(adminレベル0)の下位区分です。
        • レイヤーの 領域ID プロパティタイプは、選択した境界レベルのMapbox feature IDsと一致しなければなりません。これらのfeature ID値のマッピングは、プラットフォーム上にすでに存在するはずのインポートされたデータセットを通じて利用可能です。これらのマッピングをどのように探すかわからない場合は、Palantirの担当者に問い合わせてください。
      • Worldview: この機能は、境界の複数バージョンが存在する場合に、異なる視聴者向けの地図の境界を描画します。現在利用可能なオプションは、アメリカ、日本、インド、中国です。
  • GeoJSONソース: GeoJSONを介して定義されたシンプルなカスタム領域を持っている、または環境からMapbox APIへのアクセスがない(例えば、ネットワーク制限による)場合に便利なオプションです。このオプションは GeoJSON 形式のデータを活用します。
    • 集約されたGeoJSON: 単一のGeoJSONファイル(プロジェクトにアップロード)の形で境界セットを定義することができます。このオプションは、形状の数や形状の複雑さの規模が一般的に低く、描画したいオブジェクトの規模が高く、各領域が1つ以上のオブジェクトを表す可能性があり(したがって、オブジェクトが集約されている)、という場合に理想的です。
      • GeoJSONソースRID: アップロードされたGeoJSONファイルのリソースRIDです。
      • 領域IDフィーチャープロパティ: GeoJSON内の各領域のIDを含むプロパティIDです。GeoJSONのこれらの値は、オブジェクト(上記で定義)の領域IDプロパティと一致させるものです。
      • 領域表示名フィーチャープロパティ: GeoJSON内の各領域の表示名を含むプロパティIDです。
    • 非集約されたGeoJSON: マップ上の各領域/オブジェクトのGeoJSONを含む入力オブジェクトの geoshape プロパティを選択することができます。このオプションは、形状の規模や形状の複雑さが高いが、オブジェクトの規模がまだ管理可能な場合に理想的です。各オブジェクトは一つの形状にのみ対応でき、各形状は一つのオブジェクトにのみ対応できます。
      • GeoJSON幾何プロパティタイプ: GeoJSON幾何学を定義するプロパティタイプ(geoshapeまたはstringタイプのプロパティをサポート)。
  • Vectorソース: カスタムの境界定義が非常に詳細であったり、非常に大規模である場合、基本的なGeoJSONよりもベクターソースが提供するパフォーマンスの利点を活用したい場合に最も便利なオプションです。このオプションでは、ベクターソースがタイルサーバー(内部または外部のいずれか)を通じてホストされている必要があります。
    • ソースURL: タイルセットのフルURL、タイルサーバー上にホストされています。
    • レイヤー名: 与えられた設定されたタイルソース内のベクターレイヤーのIDです。
    • 領域IDフィーチャープロパティ: 各Vector feature内のプロパティIDで、各領域のIDを含んでいます。これらの値は、オブジェクト(上記で定義)の領域IDプロパティと一致させるものです。
    • 領域表示名フィーチャープロパティ: 各ベクターフィーチャー内のプロパティIDで、各領域の表示名を含んでいます。これは集約されたベクターソースでのみサポートされています。
    • 最小ズーム: マップのズームレベルが最小ズーム以下の場合、タイルソースは問い合わせられず(レイヤーは表示されません)。
    • 最大ズーム: マップのズームレベルが最大ズームを超えると、タイルソースは問い合わせられず(レイヤーは表示されません)。

H3のためのコロプレスレイヤーの設定

マップウィジェットにカスタム集約を表示するためにH3のコロプレスレイヤーを設定するには、各 オブジェクト が希望の解像度でのH3六角形であり、各六角形とその関連するGeoJSON形状を一意に識別するプロパティを持つ オブジェクトタイプ (例: "H3 Hexagon")をオントロジーマネージャーで設定する必要があります。オブジェクトタイプのプロパティの例を以下に提供します:

  1. hex_index:各H3六角形の一意の識別子。例の値:82f25ffffffffff
  2. hex_geojson:H3六角形のGeoJSONジオメトリ。例の値:{"type":"Polygon","coordinates":[[[-114.88722592804382,-74.86647343694071],[-110.43933775312789,-76.04791578897344],[-103.98485051466383,-75.45226049628374],[-103.08914246618076,-73.75952697882984],[-107.50751324842204,-72.74554847287561],[-112.95182804024837,-73.26746640072781],[-114.88722592804382,-74.86647343694071]]]}

次に、マップウィジェットの設定オプションを以下のように適用します:

  • マップするオブジェクトセット: H3六角形で設定されたオブジェクトタイプを提供します(例:"H3 Hexagon")
  • レイヤー設定: "コロプレス"を選択します
    • コロプレスレイヤー設定: "非集約"を選択します
      • 領域IDプロパティタイプ: 各H3六角形の一意の識別子を選択します(例:hex_index
      • コロプレス境界ソース&データ設定: "Geojson"を選択します
        • GeoJSONジオメトリプロパティタイプ: GeoJSONジオメトリを含むプロパティを選択します。例では、hex_geojsonを選択します

次に、非集約値設定オプションを使用して、Function-backedプロパティを設定し、H3六角形によってオブジェクトセットの入力を集約し、その値をマップウィジェットに表示します。たとえば、以下の機能は、入力オブジェクトセットのH3六角形ごとの導出されたCOVIDテスト陽性率を計算します:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 import { Function, Double, FunctionsMap} from "@foundry/functions-api"; import { Objects, ObjectSet, CovidPositive, CovidTest, H3Hexagon} from "@foundry/ontology-api"; export class MyFunctions { @Function() public async calculateCovidPositivityRate(hexes: ObjectSet<H3Hexagon>, positives: ObjectSet<CovidPositive>, tests: ObjectSet<CovidTest>): Promise<FunctionsMap<H3Hexagon, Double>> { const map = new FunctionsMap<H3Hexagon, Double>(); // 最大バケット数を6000に設定して、すべてのH3六角形と解像度2の集計を許可 const max_buckets = {maxBuckets: 6000} const positives_bucketed = await positives .groupBy(positive => positive.hex_index.exactValues(max_buckets)) .count(); // 結果をマップに変換して、バケット化された配列よりもルックアップを効率的にする const positives_hex_map = new Map(); positives_bucketed.buckets.forEach((bucket: any) => { positives_hex_map.set(bucket.key, bucket.value); }); const tests_bucketed = await tests .groupBy(test => test.hex_index.exactValues(max_buckets)) .count(); const tests_hex_map = new Map(); tests_bucketed.buckets.forEach(bucket => { tests_hex_map.set(bucket.key, bucket.value); }); hexes.all().forEach(hex => { const positive_count = positives_hex_map.get(hex.hex_index); const test_count = tests_hex_map.get(hex.hex_index); // positive_countとtest_countがundefinedでない場合、陽性率を計算してマップに設定 if ((positive_count !== undefined) && (test_count !== undefined)) { map.set(hex, positive_count/test_count * 100); } }); return map; } }

H3ヘキサゴン解像度2を使用している場合、すべての5,882個のヘキサゴンをプロットするためには、検索結果ページ数を6に増やす必要があります。

ラインセグメントレイヤーの設定

map_configure_line_layers

ラインレイヤーの主な設定オプションは以下の通りです:

  • レジェンドヘッダー: このレイヤーのレジェンドセクションのシリーズレベルのレジェンドヘッダーの上に表示されるヘッダー。レイヤー内の各シリーズは、レジェンドヘッダーを提供するオプションを持っています。
  • ラインレイヤー設定: ラインレイヤーは、コロプレスマップと同様に、集約されたレイヤーまたは非集約レイヤーのどちらかになります。ラインレイヤーは何らかの種類のラインセグメントを表示します。集約レイヤーと非集約レイヤーの違いは、入力オブジェクトセット内の各オブジェクトが特定のラインに対応するか(非集約)、または1つ以上のオブジェクトが特定のラインに対応するか(集約)です。
    • 集約: そのラインが表すオブジェクトの集約に基づいて色付けされたラインを表示します。例えば、特定のルートに沿ったすべてのフライトの平均遅延時間を示す地図などです。
      • セグメントIDプロパティタイプ: ラインセグメントIDプロパティを選択することを許可します。これは、表示される各ラインのデータ値を計算するために集約が実行されるプロパティです。このセグメントIDプロパティの値が、以下で選択されるラインレイヤー源のフィーチャーIDと完全に一致することが重要です。
      • ラインレイヤー源: レイヤーのライン源を選択することを許可します。以下のラインレイヤー源は、集約ラインレイヤーの2つのサポートされる源、GeoJSONベクターの詳細です。
      • 集約シリーズ設定: セグメントIDに基づいてプロットされるオブジェクトが集約される各シリーズの集約シリーズリストを定義することを許可します。ラインの色は、特定のラインのオブジェクトの数や他の集約関数(ライン内のオブジェクト間でのプロパティの合計や平均など)を表すように設定可能です。より詳細な設定については、以下の集約値シリーズ設定および色設定セクションを参照してください。
    • 非集約: そのラインが表すオブジェクトのプロパティ値に基づいて色付けされたラインを表示します。例えば、現在の運用ステータスによって色付けされた電力ラインを示す地図などです。
      • セグメントIDプロパティタイプ: セグメントIDプロパティを選択することを許可します。このプロパティ値は、各ラインを一意に識別し、"ライン"を選択した場合にフィルター処理するプロパティです。このセグメントIDプロパティの値が、以下で選択されるラインレイヤー源のフィーチャーIDと完全に一致することが重要です。
      • ラインレイヤー源: レイヤーのライン源を選択することを許可します。以下のラインレイヤー源は、サポートされる3つの源、ポイントからポイントGeoJSONベクターの詳細です。
      • 非集約シリーズ設定: プロットされるオブジェクトのプロパティ値を表すようにラインの色を設定できる各シリーズの非集約シリーズリストを定義することを許可します。より詳細な設定については、以下の非集約値シリーズ設定および色設定セクションを参照してください。
      • 検索結果ページ数: これはロードされるオブジェクトの数を決定します。各ページは1000オブジェクトで、非集約レイヤーごとに最大10,000オブジェクト(10ページ)をロードすることができます。
      • オブジェクトプレビューに表示するプロパティ: 各ポイントのホバー/クリック時に表示されるツールチップは、設定されたプロパティの任意のセット(prominentspecific、またはnoneなど)を表示することができます。

ラインレイヤー源: 以下は、ラインレイヤー上でラインがどのように描かれるかを指定するためのソース情報をロードするための異なる方法です:

  • ポイントからポイント: 入力オブジェクトセット内の各オブジェクトについて、提供された開始と終了のジオハッシュポイント間に直線を描きます。このオプションは、非集約ラインレイヤーのみで利用可能です。
  • GeoJSON源: このオプションは、GeoJSONを通じて定義されたシンプルなカスタムラインを持っているか、あるいはネットワーク制限のために環境からMapbox APIにアクセスできない場合に有用です。このオプションは、GeoJSON(https://geojson.org/)形式のデータを利用します。
    • 集約GeoJSON: Foundryにアップロードされた単一のGeoJSONファイルの形でライン定義を定義することを許可します。このオプションは、ラインの数/ラインの複雑さのスケールが一般的に低く、プロットしたいオブジェクトのスケールが高く、各ラインが1つ以上のオブジェクトを表す可能性があり(したがって、オブジェクトは集約される)場合に最適です。
      • GeoJSONソースRID: アップロードされたGeoJSONファイルのリソースRID。
      • 地域IDフィーチャープロパティ: GeoJSON内の各ラインフィーチャーのIDを含むプロパティID。GeoJSON内のこれらの値は、オブジェクト(上記で定義)のセグメントIDプロパティと一致するものとなります。
      • 地域表示名フィーチャープロパティ: GeoJSON内の各ラインセグメントの表示名を含むプロパティID。
    • 非集約GeoJSON: 入力オブジェクトのジオシェイププロパティを選択することを許可します。このプロパティには、地図上の各ラインのGeoJSONが含まれています。このオプションは、ラインのスケールやラインの複雑さが高いが、オブジェクトのスケールがまだ管理可能な場合に最適です。各オブジェクトは1つのラインにしか対応できず、同様に各ラインは1つのオブジェクトにしか対応できません。
      • GeoJSONジオメトリプロパティタイプ: GeoJSONジオメトリを定義するプロパティタイプ(geoshapeまたはstringタイプのプロパティをサポート)。
  • ベクター源: このオプションは、カスタムラインの定義が非常に詳細であったり、非常に大規模である場合に最も有用です。基本的なGeoJSONよりもベクター源が提供するパフォーマンスの利点を考えると、このオプションは、ベクター源がタイルサーバー(内部または外部のいずれか)を介してホストされていることを必要とします。
    • ソースURL: タイルセットの完全なURL。タイルサーバー上でホストされます。
    • レイヤー名: 設定されたタイルソース内のベクターレイヤーのID。
    • 地域IDフィーチャープロパティ: 各ベクターフィーチャー内のプロパティIDで、各ラインのIDを含んでいます。これらのベクターフィーチャー内の値は、オブジェクト(上記で定義)のセグメントIDプロパティと一致するものとなります。
    • 地域表示名フィーチャープロパティ: 各ベクターフィーチャー内のプロパティIDで、各ラインの表示名を含んでいます。これは、集約ベクター源のみでサポートされます。
    • 最小ズーム: マップのズームレベルが最小ズーム以下の場合、タイルソースはクエリされず(レイヤーは表示されません)。
    • 最大ズーム: マップのズームレベルが最大ズーム以上の場合、タイルソースはクエリされず(レイヤーは表示されません)。

静的レイヤーの設定

map_configuration_static_layers

静的レイヤーの主な設定オプションは以下の通りです:

  • レイヤー源: 静的レイヤーは、GeoJSONまたはベクタータイルセットのいずれかからソースを取得することができます。
    • GeoJSON源: このオプションは、GeoJSON形式のデータに使用されます。Foundryにアップロードされた単一のGeoJSONファイルの形で境界セットを定義することを許可します。
      • コンパスRID: アップロードされたGeoJSONファイルのリソースRID。
    • ベクター源: このオプションは、非常に詳細であったり非常に大規模であるフィーチャーを持つ場合に最も有用です。基本的なGeoJSONよりもベクター源が提供するパフォーマンスの利点を考えると、このオプションは、ベクター源がタイルサーバー(内部または外部のいずれか)を介してホストされていることを必要とします。一つのベクタータイルソースから複数のレイヤーをロードすることができます。
      • ソースURL: タイルセットの完全なURL。タイルサーバー上でホストされます。
      • レイヤー名: 設定されたタイルソース内のベクターレイヤーのID。
  • 地域ID設定: GeoJSONまたはベクター源の各フィーチャーを一意に識別するIDを設定することを許可します。地域IDは、フィーチャーの固有ID(つまり、特定のフィーチャー上の最上位IDフィールド)であるか、地域IDは各フィーチャーの特定のプロパティ/属性から取得することができます。地域IDの設定は、ホバーや選択のインタラクションに必要であり、地域IDが設定されていない場合、レイヤーはインタラクティブではありません。
  • 地域ラベルフィーチャーアトリビュートID: これは、各フィーチャー内のそのフィーチャーのラベルを含むプロパティ/アトリビュートIDであり、ツールチップに表示されます。
  • スタイル: 静的フィーチャーのスタイルを定義します。静的フィーチャーがポリゴンの場合、色設定はポリゴンの塗りつぶしに影響します。静的フィーチャーがラインの場合、色設定はラインの色に影響します。詳細については、以下の色設定セクションを参照してください。
  • オブジェクト設定: これにより、静的レイヤーに対するホバー時のオブジェクトバックドツールチップの表示、およびマップ選択のオブジェクトセットフィルターの公開を有効にすることができます。
    • 地域IDプロパティ: これは、地図上のフィーチャーをオントロジーのオブジェクトに接続するために使用されるオブジェクトとプロパティタイプです。地図上の特定のフィーチャー/地域は、そのフィーチャーの地域IDがこの設定されたプロパティタイプの値と一致する場合に、オントロジーのオブジェクトに接続します。
    • オブジェクトプレビューに表示するプロパティ: 各ポイントのホバー/クリック時に表示されるツールチップは、設定されたプロパティの任意のセット(prominentspecific、またはnoneなど)を表示することができます。
  • 選択、可視性、イベント設定: 詳細については、以下の選択、可視性、イベント設定セクションを参照してください。

集約値シリーズの設定

集約値シリーズは、シンプルな集約、関数集約、導出集約の3つの方法で設定できます。

  • シンプルな集約: オブジェクトの数や他の集約関数(オブジェクト間のプロパティの合計や平均など)を表すためのシンプルな集約。
  • 関数集約: 集約関数は**<locationId, value>**のマップを返すべきです。クラスターレイヤーの場合、ロケーションIDはジオポイントまたはジオハッシュであり、コロプレスの場合、それは各地域の地域IDです。例えば、以下の関数は、入力経費に基づいて国ごとのコストとボリュームの比率を計算します:
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @Function() public costToVolume(expenses: ObjectSet<Expense>): FunctionsMap<string, Double> { const map = new FunctionsMap<string, Double>(); // 各国ごとのコストを計算する const costsPerCountry = expenses .groupBy(expense => expense.countryId.topValues()) .sum(expense => expense.cost); // 各国ごとのボリュームを計算する const volumePerCountry = expenses .groupBy(expense => expense.countryId.topValues()) .sum(expense => expense.volume); // 各国ごとのコストとボリュームの比を求める costsPerCountry.buckets.forEach(bucket => { var volume = volumePerCountry.buckets.find(b => b.key === bucket.key); map.set(bucket.key, bucket.value / volume); }); // 各国ごとのコストとボリュームの比のマップを返す return map; }

このコードは、経費のオブジェクトセットを受け取り、各国ごとのコストとボリュームの比を計算し、その結果をマップとして返します。まず、各国ごとのコストとボリュームを計算し、その後、それぞれのコストとボリュームの比を求めます。

  • 派生集約: 派生式によって表される集約。式は基本的な数値式である必要があります。例えば、30歳未満の人口の割合は、式 (30歳未満の人口/総人口) で表すことができます。

集約されていない値の系列を設定する

集約されていない値の系列は、静的プロパティ、関数バックプロパティ、および時系列プロパティの3つの方法で設定できます。

  • 静的プロパティ: データを表現するために必要なプロパティの値。以下は、面積で色分けされた米国の州を示す地図の静的プロパティの設定を示したスクリーンショットです。

map_non_aggregate_value

  • 関数バックプロパティ: 集約されていない関数は、<オブジェクト, 値> のマップを返す必要があります。例えば、以下の関数は、入力オブジェクトセットの国ごとの派生コロナウイルス検査陽性率を計算します:
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Function() public countryPositivityRate(countries: ObjectSet<Country>): FunctionsMap<Country, Double> { // 国ごとの陽性率を格納するためのマップを作成 const positivityRatePerCountry = new FunctionsMap<Country, Double>(); // すべての国をループして処理 countries.all().forEach(country => { // 国ごとの陽性率を計算(1日の新規感染者数 / 1日の新規陽性検査数) var positivityRate = country.dailyNewCases / country.dailyNewPositiveTests; // 計算した陽性率をマップに格納 positivityRatePerCountry.set(country, positivityRate); }); // 国ごとの陽性率のマップを返す return positivityRatePerCountry; }
  • 時間系列プロパティ: 時間系列プロパティは、時間系列変換によって生成されたデータを含め、通常のプロパティと同様にマップ上で表示できます。時間系列プロパティは、タイムスタンプ付きの値の履歴を保存するオブジェクトプロパティです。詳細については、Workshop の時間系列プロパティ を参照してください。

以下の例では、Country オブジェクトには、国内で観測された新型 COVID19 のケースの日次履歴を保存する時間系列プロパティ COVID19 New Cases があります。次に、時間系列変換 がこの日次ケース数をケースの変化率を記録する時間系列に変換します。最後に、時間系列サマライザ が、この変換された時間系列の最新の値をマップデータレイヤーに供給します。つまり、ケース値の最後に知られている変化率を計算します。Color Configuration パネルは、この値に基づいて国間の対比を強調するようにマップをスタイル化します。時間系列変換とサマライザについては、Workshop の時間系列プロパティ を参照し、カラースキームの設定については、以下の カラー設定 セクションを参照してください。

map_time_dependent_property

カラーコントロールの設定

以下のスクリーンショットは、カラー設定 の設定オプションを示しています。

map_color_config

カラー設定 の設定オプションは以下の通りです。

  • カラー設定: カラーは以下の3つの方法で設定できます。

    • 単一色: 1つの色を選択できます。
      • カラー: マップ上に表示される色。
      • 凡例: ユースケース/シリーズを説明する凡例のラベル。
    • 値による自動スケーリング: 値に基づいてカラーの変化を表示します。
      • カラースケール: カラーパターンの異なるオプション。
      • スケールタイプ: 値をカラーバケットに計算するために使用される数学的スケールのタイプ (線形、対数、平方根など)。データが非常に歪んでいる場合、対数スケーリングや平方根スケーリングが線形スケーリングより適しているかもしれません。
      • 最大下限: 自動計算されたスケールの最大下限値。この境界より低いデータ値がある場合、スケールはそれらの値を含めて拡張されます。
      • 最小上限: 自動計算されたスケールの最低上限値。この境界より高いデータ値がある場合、スケールはそれらの値を含めて拡張されます。
      • 凡例の向き: 凡例の向きを設定できます。可能な向きは水平と垂直です。
    • プロパティ値によるカラー: 値に基づいてカラーが設定されます。値の正確な一致または値の範囲に基づいてカラーを設定できます。
      • 正確な値の一致: マップ上の値が設定された値と正確に一致する場合にカラーが表示されます。
        • 正確に一致する値: マップ上の値が上記で設定された値と正確に一致する場合、以下で設定されたカラーが表示されます。
        • カラー: マップ上の値が上記で設定された値と正確に一致する場合に表示されるカラー。
        • 凡例ラベル: マップ上の値が上記で設定された値と正確に一致する場合に表示される凡例ラベル。
        • フォールバックカラー: マップ上の値が設定された値のいずれにも一致しない場合に表示されるカラー。
        • フォールバック凡例: マップ上の値が設定された値のいずれにも一致しない場合に表示される凡例ラベル。
      • 範囲値の一致: マップ上の値が設定された値の範囲内にある場合に表示されるカラー。
        • 最小値: 範囲の下限 (含む)。
        • 最大値: 範囲の上限 (含む)。
        • カラー: マップ上の値が設定された値の範囲内にある場合に表示されるカラー。
        • 凡例ラベル: マップ上の値が上記で設定された範囲内にある場合に表示される凡例ラベル。
        • フォールバックカラー: マップ上の値が設定された値の範囲内にない場合に表示されるカラー。
        • フォールバック凡例: マップ上の値が設定された値の範囲内にない場合に表示される凡例ラベル。
  • 線の境界スタイル: 線レイヤーに表示される線のスタイル設定または他のレイヤータイプの境界スタイル。

    • 線/境界の幅: 線レイヤーに表示される線の幅または他のレイヤータイプの境界の幅。
    • 線/境界のストロークタイプ: 線レイヤーに表示される線のストロークまたは他のレイヤータイプの境界の幅。
    • 線/境界の方向を表示: 線の方向を定義する矢印を表示します。以下は、線の方向が表示されたマップのスクリーンショットです。

    map_line_border_direction

  • 値フォーマッタ: 値を別の形式で表現できるようにします。例えば、値をパーセンテージとして表現するには、値フォーマッタとして % を設定します。指定する値は、d3-format 文字列 である必要があります。

選択、表示、イベントの設定

map_selection_visibility_events

以下は、選択、表示、イベント設定 の主な設定オプションです。

  • レイヤー Z インデックス: 重なるレイヤーが表示される順序を制御します。ツールチップの内容や選択のインタラクションは、z-index が高いレイヤーから先に表示されます。
  • シングルセレクトモードを有効にする: これを True に切り替えると、複数のオブジェクトを一度に選択する機能が無効になります。次の選択は前の選択を解除します。
  • 最初に非表示: これを True に切り替えると、レイヤーが最初のマップ読み込み時に非表示になります。レイヤーがグループの一部である場合、最初のレイヤーに設定された設定が考慮されます。
  • レイヤーグループ名: レイヤーをグループ化し、凡例のドロップダウンで一緒に表示できるようにします。
  • オブジェクトセット選択フィルター: マップ上で選択が行われたときに公開されるフィルター。
  • 選択時のイベント: マップ上で選択が行われたときにトリガーされる Workshop イベント (ドロワーが展開されるなど) を設定できます。
  • 表示条件: このレイヤーの表示可否を、Workshop 変数のステータス/値に基づいて条件付きで制御できます。デフォルトでは、条件が設定されていない場合はレイヤーが常に表示されます。

描画コントロールの設定

以下のスクリーンショットは、さまざまな形状を表示した設定された マップウィジェット とその設定パネルの例です。

map_drawing_controls 描画コントロールの基本的な設定オプションは以下のとおりです。

  • 半径/円コントロール: コントロールを表示に設定すると、半径が表示されたをマップに描画できます。円を描画するには、左上の円ボタンを選択し、マップ上の任意の場所をクリックして円の中心を設定し、マウスクリックを解除し、円の中心からマウスを離してください。
    • コントロールボタンオプション:
      • ツールチップラベル: カーソルが左上の円ボタンに重なると表示されるラベルを提供します。
      • 無効化: これを true に設定すると、円ボタンが無効になります。
    • 図形スタイルオプション:
      • 塗りつぶしの色: 描画された図形の色を設定します。デフォルトの色は #F29D49 で、これは薄いオレンジの 16 進コードです。
      • 塗りつぶしの不透明度: 描画された図形の不透明度を 0 から 1 まで設定します。最大の不透明度は 1 です。
      • 枠線の色: 描画された図形の枠線の色を設定します。デフォルトの色は #F29D49 で、これは薄いオレンジの 16 進コードです。
      • 枠線の不透明度: 描画された図形の枠線の不透明度を設定します。
      • 距離の単位: 描画された円の半径が表示される単位です。キロメートル、メートル、マイル、ヤード、フィートが選択可能です。
  • 多角形コントロール: コントロールを表示に設定すると、マップ上に多角形を描画できます。多角形を描画するには、まず左上の多角形ボタンを選択し、次にマップをクリックします。クリックするたびに多角形の点がマークされ、2つの連続する点の間にエッジが描かれます。
    • コントロールボタンオプション:
      • ツールチップラベル: カーソルが左上の多角形ボタンに重なると表示されるラベルを提供します。
      • 無効化: これを true に設定すると、多角形ボタンが無効になります。
    • 図形スタイルオプション:
      • 塗りつぶしの色: 描画された図形の色を設定します。デフォルトの色は #F29D49 で、これは薄いオレンジの 16 進コードです。
      • 塗りつぶしの不透明度: 描画された図形の不透明度を 0 から 1 まで設定します。最大の不透明度は 1 です。
      • 枠線の色: 描画された図形の枠線の色を設定します。デフォルトの色は #F29D49 で、これは薄いオレンジの 16 進コードです。
      • 枠線の不透明度: 描画された図形の枠線の不透明度を設定します。
      • 距離の単位: キロメートル、メートル、マイル、ヤード、フィートなどが選択できます。
  • 削除コントロール: コントロールを表示に設定すると、マップ上の描画済み図形を削除できます。描画済みの図形を削除するには、まず左上の削除ボタンを選択し、次に描画済みの図形をクリックします。
    • コントロールボタンオプション:
      • ツールチップラベル: マウスが左上の削除ボタンに重なったときに表示されるラベルを提供します。
      • 無効化: これを true に設定すると、削除ボタンが無効になります。
  • シングルドローモード: 有効にすると、一度にマップ上に一つの図形しか描画できず、新しい図形を描画すると古い図形が削除されます。
  • 公開フィルター: 描画した図形の境界に基づいてマッピングされたオブジェクトセットをフィルター処理するオブジェクトセットフィルター変数を出力します。
  • 公開された描画ジオメトリ: このオプションは、描画された図形のジオメトリを文字列変数に公開することを可能にします。これにより、描画した図形のジオメトリを新しいプロパティに書き込むことができます。
  • 描画時のイベント: このオプションは、マップ上に図形が描画されたときに、ワークショップのイベントを1つ以上トリガーすることを制御します。

タイムステッパーコントロールの設定

マップウィジェットには、組み込みのタイムステッパーがあります。これにより、ユーザーは時間を前後に「ステップ」させることができ、その結果、マップ上のデータが時間と共にどのように変化するかを確認できます。

タイムステッパーは、ユーザーが選択した時間ウィンドウに対応するオブジェクトセットフィルター(オブジェクトセットフィルター変数に設定されています)を公開することで機能します。このフィルター変数は、マップ上に表示される1つ以上のレイヤーの背後にあるオブジェクトセットをフィルターするために使用できます。これにより、その時間ウィンドウに関連するオブジェクトのみが返されます。

タイムステッパーを活用するには、使用される時間オブジェクトに、ある単位の時間あたりの測定値を持つオブジェクトが含まれていることが推奨されます。各オブジェクトには、フィルター対象となる日付またはタイムスタンプのプロパティが存在する必要があります。これにより、ある時間のウィンドウをフィルタリングすることで、個々のオブジェクトを読み込んだり(またはそのウィンドウ内のオブジェクトを集約して)、マップに表示されるデータを取得できます。

以下のスクリーンショットは、タイムステッパーが設定された例のマップを示しています。

map_time_stepper_controls

以下のスクリーンショットは、タイムステッパーコントロールの設定オプションを示しています。

map_time_stepper

タイムステッパーの基本的な設定オプションは以下のとおりです。

  • タイムステッパータイプ: このオプションでは、日付またはタイムスタンプに基づいたタイムステッパーを設定できます。
  • デフォルトのウィンドウ開始日(タイムスタンプ): マップウィジェットが最初に読み込まれるときのデフォルトの日付(タイムスタンプ)です。
  • 最小ウィンドウ開始日(タイムスタンプ): ユーザーが選択できる日付(タイムスタンプ)範囲の下限です。
  • 最大ウィンドウ開始日(タイムスタンプ): ユーザーが選択できる日付(タイムスタンプ)範囲の上限です。
  • 投影に関する警告の表示: タイムステッパーが未来にある場合に表示される情報ボタンの設定可能なテキストです。
  • 歴史データに関する警告の表示: タイムステッパーが過去にある場合に表示される情報ボタンの設定可能なテキストです。
  • 情報アイコンのツールチップテキスト: ユーザーに情報を伝えるためのツールチップテキストです。
  • 公開フィルター: タイムステッパーで選択された日付(タイムスタンプ)範囲に基づいてマッピングされたオブジェクトセットをフィルター処理するオブジェクトセットフィルター変数を出力します。
  • スモールステップ: スモールステップの動作を設定できます。これは、スモールステップをクリックすると時間がどれだけ巻き戻される/進むかを定義します。
  • ラージステップ: ラージステップの動作を設定できます。これは、ラージステップをクリックすると時間がどれだけ巻き戻される/進むかを定義します。
  • ウィンドウサイズ: 開始日からの日付(タイムスタンプ)の範囲を定義します。例えば、日付ベースのタイムステッパーの場合、開始日が 1 月 1 日でウィンドウサイズが 1 日の場合、選択された日付範囲は 1 月 1 日から 1 月 2 日までになります。

ビューポートフィルターコントロールの設定

以下のスクリーンショットは、ビューポートフィルターの設定例を示しています。

map_viewport_filter

ビューポートフィルターは、オブジェクトセットフィルター変数を出力します。これにより、ウィジェット内のマップの表示境界に基づいて、マッピングされたオブジェクトセットをフィルター処理できます。例えば、空港の位置がマップされたマップの場合、ユーザーがアメリカ合衆国にズームすると、ビューポートフィルターは、オブジェクトセットを米国の空港のオブジェクトのみを含むようにフィルターするフィルター変数を生成します。

輪郭レイヤーがビューポートフィルタリングを使用するには、マッピングされるオブジェクトタイプにジオハッシュプロパティが存在する必要があります。これは、地域の中心点などです。