注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
マップウィジェットは、オブジェクトセットまたはオブジェクトデータを設定可能なインタラクティブな地理空間ビジュアル化として表示します。
これらのマップビジュアル化は、2つのタイプのレイヤーで構成されています。
マップウィジェットは、MapboxGLを使用したマップレンダリングをサポートしています。WebGLがユーザーのブラウザでサポートされていない場合、マップウィジェットはLeafletでレンダリングされます。
マップウィジェットは、ベースマップ画像の主要なソースとしてMapboxを使用し、Mapboxをプロキシできないセキュアなネットワークのための「内部」スタイル(ベースマップ画像のカスタムソース)をサポートしています。Webマップ技術の詳細については、Mapboxドキュメントを参照してください。
以下のスクリーンショットは、さまざまなレイヤータイプを表示する設定済みのマップウィジェットの例を示しています。
マップウィジェットでは、オーバーレイレイヤーがマップのベースレイヤー上に点や形状としてデータを表現します。マップウィジェットには、以下のタイプのオーバーレイレイヤーが含まれています。
ポイントレイヤーは、ジオハッシュプロパティ(緯度経度ペアの形式で格納されている)によってプロットされるマップ上の個々のオブジェクトを、ポイントまたはマーカーで表現します。プロットされるオブジェクトのプロパティに基づいて、ポイントの色、アイコンタイプ、サイズをスタイル化することができます。
設定情報については、以下のポイントレイヤーの設定セクションを参照してください。
例:利用可能な病床数で色分けされたポイントとして病院の場所を示すマップ。
クラスターレイヤーは、ジオハッシュロケーションプロパティに基づく大規模なオブジェクトセットに最適です。クラスターはポイントと似ていますが、オブジェクトごとに1つのマーカーをプロットする代わりに、プロットされるオブジェクトが地理的な近さに基づいてクラスターに集約され、クラスターのサイズおよび/または色を、特定の領域内のオブジェクトの数(またはオブジェクト内のプロパティの合計や平均などの他の集約関数)を表現するように設定できます。
設定情報については、以下のクラスターレイヤーの設定セクションを参照してください。
例:全国の気象ステーションの一般的な地理的分布を示すマップ。
マップウィジェットのchoroplethレイヤーは、地域(国や州など)を表示し、その地域を表現するオブジェクトの属性や、地域をまたいだオブジェクトの集計に基づいて色分けされます。これにより、異なる地域間の変化やパターンを視覚化する方法が提供され、時間とともにこれらの値がどのように変化するかを確認するオプションがあります。
設定情報については、以下のchoroplethレイヤーの設定セクションを参照してください。
FunctionsのH3ヘキサゴンのカスタム集計をサポートするために、choroplethレイヤーはH3ヘキサゴンを個々の地域としてマップするためにも使用できます。以下のchoroplethレイヤーのH3用設定セクションを参照してください。
例:州ごとの人口密度で色分けされた州のマップ。
Line segmentレイヤーは、2つのポイントをつなぐ線分として個々のオブジェクトをプロットします。
設定情報については、以下のラインセグメントレイヤーの設定セクションを参照してください。
例:出発空港が目的地空港に連絡されたフライトルートを示すマップ。
Staticレイヤーは、動的にフィルター処理できない情報を表示し、オブジェクトデータ以外のソースから来ます。これらのレイヤーは、同じマップ上の他のデータレイヤーの背景情報を提供することで最も有用です。レイヤーのデータは、GeoJSON形式またはVectorレイヤーを通じて提供されることができます。
設定情報については、以下の静的レイヤーの設定セクションを参照してください。
例:さまざまなエリアで悪天候のリスクが発生する層。
Savedレイヤーは、Map Layer Editorで設定されたマップレイヤーを個別のリソースとして保存したものを表示します。これらのレイヤーは、複数のアプリケーション間で共有され、Foundry全体で背景情報を一貫して提供するためによく使用されます。
以下の画像は、新しく追加されたまだ設定されていないマップウィジェットとその設定パネルを並べたものです。
マップウィジェットの基本設定オプションは以下の通りです。
Yes
に設定されると詳細が明らかになります。詳細については、以下の描画コントロールの設定セクションを参照してください。Yes
に設定されると詳細が明らかになります。詳細については、以下の時間ステッパーコントロールの設定セクションを参照してください。ポイントレイヤーの主な設定オプションは以下の通りです:
prominent
、specific
、none
など)を表示することができます。クラスタレイヤーの主な設定オプションは以下の通りです:
%
を設定します。指定する値はd3-format stringでなければなりません。コロプレスレイヤーの主な設定オプションは以下の通りです:
コロプレス境界ソース
は、3つのサポートされているソース:Mapbox、GeoJSON、および Vector の詳細です。コロプレス境界ソース
は、3つのサポートされているソース:Mapbox、GeoJSON、および Vector の詳細です。prominent
、specific
、または none
など)の任意のセットを表示できます。コロプレス境界ソース: コロプレスレイヤーを設定するには、表示される領域を定義する境界のソースを指定する必要があります。境界データのソースとして考えられるのは以下のいくつかです:
geoshape
またはstring
タイプのプロパティをサポート)。マップウィジェットにカスタム集約を表示するためにH3のコロプレスレイヤーを設定するには、各 オブジェクト が希望の解像度でのH3六角形であり、各六角形とその関連するGeoJSON形状を一意に識別するプロパティを持つ オブジェクトタイプ (例: "H3 Hexagon")をオントロジーマネージャーで設定する必要があります。オブジェクトタイプのプロパティの例を以下に提供します:
hex_index
:各H3六角形の一意の識別子。例の値:82f25ffffffffff
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]]]}
次に、マップウィジェットの設定オプションを以下のように適用します:
hex_index
)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に増やす必要があります。
ラインレイヤーの主な設定オプションは以下の通りです:
ラインレイヤー源
は、集約ラインレイヤーの2つのサポートされる源、GeoJSONとベクターの詳細です。ラインレイヤー源
は、サポートされる3つの源、ポイントからポイント、GeoJSON、ベクターの詳細です。prominent
、specific
、またはnone
など)を表示することができます。ラインレイヤー源: 以下は、ラインレイヤー上でラインがどのように描かれるかを指定するためのソース情報をロードするための異なる方法です:
geoshape
またはstring
タイプのプロパティをサポート)。静的レイヤーの主な設定オプションは以下の通りです:
prominent
、specific
、またはnone
など)を表示することができます。集約値シリーズは、シンプルな集約、関数集約、導出集約の3つの方法で設定できます。
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歳未満の人口/総人口)
で表すことができます。集約されていない値の系列は、静的プロパティ、関数バックプロパティ、および時系列プロパティの3つの方法で設定できます。
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; }
以下の例では、Country
オブジェクトには、国内で観測された新型 COVID19 のケースの日次履歴を保存する時間系列プロパティ COVID19 New Cases
があります。次に、時間系列変換 がこの日次ケース数をケースの変化率を記録する時間系列に変換します。最後に、時間系列サマライザ が、この変換された時間系列の最新の値をマップデータレイヤーに供給します。つまり、ケース値の最後に知られている変化率を計算します。Color Configuration パネルは、この値に基づいて国間の対比を強調するようにマップをスタイル化します。時間系列変換とサマライザについては、Workshop の時間系列プロパティ を参照し、カラースキームの設定については、以下の カラー設定 セクションを参照してください。
以下のスクリーンショットは、カラー設定 の設定オプションを示しています。
カラー設定 の設定オプションは以下の通りです。
カラー設定: カラーは以下の3つの方法で設定できます。
線の境界スタイル: 線レイヤーに表示される線のスタイル設定または他のレイヤータイプの境界スタイル。
値フォーマッタ: 値を別の形式で表現できるようにします。例えば、値をパーセンテージとして表現するには、値フォーマッタとして %
を設定します。指定する値は、d3-format 文字列 である必要があります。
以下は、選択、表示、イベント設定 の主な設定オプションです。
True
に切り替えると、複数のオブジェクトを一度に選択する機能が無効になります。次の選択は前の選択を解除します。True
に切り替えると、レイヤーが最初のマップ読み込み時に非表示になります。レイヤーがグループの一部である場合、最初のレイヤーに設定された設定が考慮されます。以下のスクリーンショットは、さまざまな形状を表示した設定された マップウィジェット とその設定パネルの例です。
描画コントロールの基本的な設定オプションは以下のとおりです。
#F29D49
で、これは薄いオレンジの 16 進コードです。0
から 1
まで設定します。最大の不透明度は 1
です。#F29D49
で、これは薄いオレンジの 16 進コードです。#F29D49
で、これは薄いオレンジの 16 進コードです。0
から 1
まで設定します。最大の不透明度は 1
です。#F29D49
で、これは薄いオレンジの 16 進コードです。マップウィジェットには、組み込みのタイムステッパーがあります。これにより、ユーザーは時間を前後に「ステップ」させることができ、その結果、マップ上のデータが時間と共にどのように変化するかを確認できます。
タイムステッパーは、ユーザーが選択した時間ウィンドウに対応するオブジェクトセットフィルター(オブジェクトセットフィルター変数に設定されています)を公開することで機能します。このフィルター変数は、マップ上に表示される1つ以上のレイヤーの背後にあるオブジェクトセットをフィルターするために使用できます。これにより、その時間ウィンドウに関連するオブジェクトのみが返されます。
タイムステッパーを活用するには、使用される時間オブジェクトに、ある単位の時間あたりの測定値を持つオブジェクトが含まれていることが推奨されます。各オブジェクトには、フィルター対象となる日付またはタイムスタンプのプロパティが存在する必要があります。これにより、ある時間のウィンドウをフィルタリングすることで、個々のオブジェクトを読み込んだり(またはそのウィンドウ内のオブジェクトを集約して)、マップに表示されるデータを取得できます。
以下のスクリーンショットは、タイムステッパーが設定された例のマップを示しています。
以下のスクリーンショットは、タイムステッパーコントロールの設定オプションを示しています。
タイムステッパーの基本的な設定オプションは以下のとおりです。
以下のスクリーンショットは、ビューポートフィルターの設定例を示しています。
ビューポートフィルターは、オブジェクトセットフィルター変数を出力します。これにより、ウィジェット内のマップの表示境界に基づいて、マッピングされたオブジェクトセットをフィルター処理できます。例えば、空港の位置がマップされたマップの場合、ユーザーがアメリカ合衆国にズームすると、ビューポートフィルターは、オブジェクトセットを米国の空港のオブジェクトのみを含むようにフィルターするフィルター変数を生成します。
輪郭レイヤーがビューポートフィルタリングを使用するには、マッピングされるオブジェクトタイプにジオハッシュプロパティが存在する必要があります。これは、地域の中心点などです。