ユースケース開発Slateウィジェット可視化

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

可視化

可視化ウィジェットのカテゴリーには、次のウィジェットがあります。


グラフ

次のテーブルでは、グラフウィジェットで利用可能なプロパティの使用方法を詳しく説明します。テーブルの後にいくつかの例を示します。

プロパティ

属性説明データ型必須変更方法
defaultEdgeIconエッジのデフォルトの画像 URL または Blueprint アイコン。文字列いいえ直接編集
defaultNodeIconノードのデフォルトの画像 URL または Blueprint アイコン。文字列いいえ直接編集
directedEdgesEnabledエッジの末端に、接続先ノードを指す矢印を表示するかどうかを指定します。ブール値いいえ直接編集
edgeArrowSize有向エッジの矢印のサイズ(ピクセル単位)。ブール値いいえ直接編集
edgeIconOffsetエッジの中心からのアイコンのオフセット。オフセットの方向は、エッジラベルが水平かどうかによって異なります。数値いいえ直接編集
edgeIconSizeエッジアイコンの幅と高さ(ピクセル単位)。数値いいえ直接編集
edgeLabelHorizontalエッジラベルをエッジと平行にする代わりに、水平に保つかどうかを指定します。ブール値いいえ直接編集
edgeLabelOffsetエッジの中心からのラベルのオフセット。オフセットの方向は、エッジラベルが水平かどうかによって異なります。数値いいえ直接編集
edgeLengthフローレイアウトと力指向レイアウトに渡すエッジの長さの値。数値いいえ直接編集
edgesグラフに表示されるエッジの値。IEdgesいいえ直接編集
hideLabelsScaleラベルが非表示になるズームレベル。小さすぎて読めないラベルを非表示にするために使用します。数値いいえ直接編集
nodeColorScaleRangeノードを色付けする線形グラデーションの作成に使用する、2色以上の配列。例:node.colorScaleValues = [0, 5, 10]、色の範囲の配列が [“red”, “blue”] の場合、結果の色は赤、紫、青になります。色は16進数(例:“#FF0000”)または CSS の色名(例:“red”)で指定できます。未指定の場合、または色が2色未満の場合は、Blueprint の色 @green4、@gold4、@red4([“#15B371”, “#F2B824”, “#F55656”])で構成されるデフォルトの色の範囲が使用されます。string[]いいえ直接編集
nodeLabelPositionノードの円に対するラベルの位置。文字列いいえ直接編集
layoutグラフがノードの配置に使用するレイアウトの種類。「力指向」:ノードを分散させる方法でグラフを配置します。「フロー(上/下/左/右)」:エッジが概ね指定した方向を向くようにノードを配置します。「手動」:ユーザーがノードを新しい位置にドラッグでき、保存時にその位置が保存されます。ほかのレイアウトでドラッグしたノードの位置は保存されません。文字列いいえ直接編集
nodeDiameterノードの円の直径(ピクセル単位)。数値いいえ直接編集
nodeLabelOffsetノードの中心からのラベルのオフセット。オフセットの方向は、ラベルの位置によって決まります。数値いいえ直接編集
nodeMarginノード間の最小距離。フローレイアウトと力指向レイアウトで使用します。数値いいえ直接編集
nodeIconSizeノードアイコンの幅と高さ。数値いいえ直接編集
nodesグラフに表示されるノードの値。INodesはい直接編集
nodeSelectorDiameterノードが選択されていることを示す円の直径。数値いいえ直接編集
selectedNodeIdsユーザーが現在選択しているノードの一意の識別子。string[]いいえユーザーインタラクション
zoomScaleRangeグラフで許容されるズームの範囲を設定します。数値いいえ直接編集

IEdges

属性説明データ型必須変更方法
cssClassesCSS スタイルの適用に使用するエッジの CSS クラス名。string[]いいえ直接編集
iconsエッジの画像 URL または Blueprint アイコン。string[]いいえ直接編集
labelsエッジに関連付けられたラベル。string[]いいえ直接編集
sourceNodeIdsエッジの作成に必要な接続元ノードの ID。number[]はい直接編集
targetNodeIdsエッジの作成に必要な接続先ノードの ID。number[]はい直接編集

INodes

属性説明データ型必須変更方法
colorScaleValuesノードの色付けに使用する数値。色スケールの範囲にある色を使用して補間されます。number[]いいえ直接編集
cssClassesCSS スタイルの適用に使用するノードの CSS クラス名。string[]いいえ直接編集
iconsノードの画像 URL または Blueprint アイコン。string[]いいえ直接編集
idsノードの一意の識別子。string[]はい直接編集
labelsノードに関連付けられたラベル。string[]いいえ直接編集
xPositions手動レイアウトで、ノードの X 座標を指定します。値がないノードはグリッド状に配置されます。number[]はいユーザーインタラクション
yPositions手動レイアウトで、ノードの Y 座標を指定します。値がないノードはグリッド状に配置されます。number[]はいユーザーインタラクション

例

動的グラフ

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 { "camera": { "ratio": null, "x": null, "y": null }, "edges": { "sourceNodeIds": "{{graph.sourceNodeIds}}", "targetNodeIds": "{{graph.targetNodeIds}}" }, "nodes": { "iconUrls": "{{graph.iconUrls}}", "ids": "{{graph.ids}}", "labels": "{{graph.ids}}", "xPositions": "{{graph.xPositions}}", "yPositions": "{{graph.yPositions}}" }, "selectedNodeIds": [ "n18" ] }

静的グラフ

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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 { "camera": { "ratio": null, "x": null, "y": null }, "defaultIconUrl": "resources/map-people.svg", "edges": { "ids": [ "e1", "e2", "e3", "e4", "e5" ], "labels": [ "e1", "e2", "e3", "e4", "e5" ], "sourceNodeIds": [ "n1", "n2", "n3", "n4", "n5" ], "targetNodeIds": [ "n2", "n3", "n4", "n5", "n1" ] }, "layout": { "type": "layered" }, "nodes": { "ids": [ "n1", "n2", "n3", "n4", "n5" ], "labels": [ "n1", "n2", "n3", "n4", "n5" ], "xPositions": [ 100, 30.9, -80.9, -80.9, 30.9 ], "yPositions": [ 0, 95.1, 58.78, -58.78, -95.1 ] }, "selectedNodeIds": [ "n1" ] }

デフォルト

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { "camera": { "ratio": null, "x": null, "y": null }, "edges": { "sourceNodeIds": [], "targetNodeIds": [] }, "nodes": { "ids": [], "xPositions": [], "yPositions": [] }, "selectedNodeIds": [] }

画像ギャラリー

次のテーブルでは、画像ギャラリーウィジェットで利用可能なプロパティの使用方法を詳しく説明します。

プロパティ

属性説明データ型必須変更方法
imageUrlsこのギャラリーの画像。string[]はい直接編集
captions各画像のキャプション。string[]いいえ直接編集

マップ

Slate のマップウィジェットは Leaflet ↗ を元にしています。

マップは、ベースレイヤー(タイルレイヤーとも呼ばれ、背景の地図画像を表示します)と、いくつかのオーバーレイレイヤー(フィーチャーレイヤーとも呼ばれ、対象のデータを表示します)で構成されます。マップウィジェットは、フィーチャーレイヤーでラスタータイルとベクタータイルの両方をサポートしています。

Web 地図技術についてのわかりやすい入門情報は、Mapbox のドキュメント ↗を参照してください。Slate は、ベースマップ画像のソースとして Mapbox を使用しています。

用語

  • 地図タイル: マップウィジェットのベースレイヤーです。これらのタイルは単なる画像であり、データは含まれていません。地図タイルは、地図の「背景」と考えることができます。地図タイルはその他タブで設定し、1つのレイヤーだけでなくマップウィジェット全体に適用されます。一度に表示できる地図タイルは1種類のみです。
  • フィーチャー: 地図上に描画され、何らかのデータに関連付けられた点または図形です。
  • ベクター: 画像を表現する別の方法です。ラスター画像は、画像をピクセルごとに記述します。つまり、色付きピクセルのグリッドとして記述します。一方、ベクター画像は、点と点の間の線を記述します。そのため、ベクター画像は異なるサイズでもきれいに表示できます。
  • ベクタータイル: 図形データをベクターとして含みます。
  • タイルサーバー: 図形データをタイルとして動的に配信します。
  • 地図タイルソース: 地図のベースタイルを配信します。技術的には、これもタイルサーバーです。

レイヤーの種類

Slate には、次の種類のオーバーレイレイヤーがあります。

位置

位置レイヤーには、緯度と経度のペアで識別される点(Leaflet のマーカー ↗)のみが含まれます。マップウィジェットを設定して、これらの点を円またはアイコンとして表示できます。

ヒートマップとヒートグリッド

ヒートマップレイヤーとヒートグリッドレイヤーも点データを扱いますが、単に地図上に点を表示するのではなく、点の分布に関する計算結果をオーバーレイとして表示します。ヒートマップは点の密度を色のグラデーションで示します。一方、ヒートグリッドは点をバケットにまとめ、バケットを個別の色付きセルとして表示します。

図形

図形レイヤーとベクターレイヤーでは、個々の点だけでなく、ポリゴンの形式のデータも扱えます。ポリゴンは、一連の点とそれらを結ぶ線として保存される情報です。図形レイヤーは、これらのポリゴンを GeoJSON ↗ 形式で提供します。GeoJSON ファイルは Slate サーバーから直接配信できます。

GeoJSON フィーチャーは JSON として保存され、SVG(画像)ファイルに変換されます。これらの画像は、マップウィジェットが最初に読み込まれるときにすべて一度に読み込まれます。

ベクター

ベクターレイヤーは、ベクタータイルで図形データを提供します。ベクタータイルを配信するには、外部タイルサーバーを稼働させておく必要があります。 ベクタータイルは動的に読み込まれます(地図の表示範囲に入ったときにのみ読み込まれます)。また、ベクタータイルはフィーチャーを画像としてレンダリングするのではなく、キャンバスに直接描画するため、ベクターレイヤーでは図形レイヤーよりもはるかに多くのフィーチャーを扱えます

コロプレス

コロプレスレイヤーもポリゴンデータを扱いますが、各フィーチャーに値を追加し、その値をカラースケールに対応付けます。これにより、各フィーチャーは、その値に対応する色で地図上に表示されます。これは、特定の統計値を可視化するものです。

たとえば、人口密度によって州を色分けした地図や、社会的脆弱性指数によって郵便番号区域を色分けした地図が考えられます。

Raven

Slate アプリケーションで Raven マップを使用する必要がある場合は、Palantir の担当者にお問い合わせください。

ベースタイル

マップウィジェットには、ベースタイルレイヤー用の選択肢がいくつか用意されています。ダークテーマ、ライトテーマ、衛星画像テーマ、道路地図テーマ、およびデフォルトテーマがあります。また、すべてという選択肢もあり、レイヤーセレクターを使って地図上で直接テーマを切り替えられます。

プロパティエディターのその他タブで、タイルレイヤードロップダウンから選択します。

base-tile-select

地図上のデータ規模

図形レイヤー(GeoJSON)が対応できるデータ規模は最も小さく、フィーチャーが約1,000個になると、地図のパフォーマンスが著しく低下します。それより大きなデータには、代わりにベクターレイヤーを使用してください。パフォーマンスを向上させるために、GeoJSON 内のジオメトリを簡略化してみることもできます。

位置レイヤーは、点が約5,000~10,000個になると動作が遅くなります。

インタラクティブ操作を無効にする

アプリケーションに固定の地図を表示したい場合は、パンとズームを無効にできます。また、フィーチャーデータだけを表示し、ベースマップのタイルを表示しない場合は、ベースレイヤーを外すこともできます。

例

位置マップレイヤー

layer-location

カスタムスタイルを含みます。

layer-location-custom-css

レイヤー名または .layer${layerIndex} を使って、レイヤー内のすべてのマーカーやクラスターにスタイルを設定することもできます。有効な CSS クラスであるレイヤー名のみが追加されます。

layer-location-layer-styles

コロプレスマップレイヤー

layer-choropleth

ベクターマップレイヤー

layer-vector

ヒートマップレイヤー

layer-heatmap

プロパティ

属性説明データ型必須変更方法
autoZoomマップ内のデータに基づいて、マップを自動的にズームするかどうかを指定します。ブール値はい直接編集
boundsユーザーのズーム操作やパン操作に基づく表示領域です。以下の IBounds を参照してください。IBoundsはいユーザーのインタラクションまたは直接編集
crs使用する座標参照系:EPSG3395(楕円体メルカトル図法)、EPSG3857(球面メルカトル図法)、または EPSG4326(正距円筒図法)。文字列いいえ直接編集
fixedBoundsEnabledズームやドラッグによってマップの表示範囲を変更できるかどうかを指定します。ブール値いいえ直接編集
zoomControlEnabledマップの左上隅に、クリック可能なズームコントロールを表示するかどうかを指定します。ブール値いいえ直接編集
layerSelectorEnabledマップの右上隅にレイヤーコントロールメニューを表示するかどうかを指定します。ブール値いいえ直接編集
layersILayerModel を参照してください。ILayerModel[]いいえ直接編集
maxBoundsズーム操作やパン操作の際にユーザーが表示できる最大領域です。IBoundsいいえ直接編集
minMaxZoomLevelマップで許可するズームの範囲を設定します。ズームレベルは、地球全体を表す0から、個々の家ほどの縮尺を表す18までの範囲です。数値いいえ直接編集
zoomLevelマップの現在のズームレベルです。数値はいユーザーのインタラクション
selection選択した図形と選択した ID を含む選択オブジェクトです。IMapSelectionはいユーザーのインタラクション
tileLayerEnabledタイルレイヤー(道路地図など)を有効にするかどうかを指定します。ブール値はい直接編集
tileUrlsEnabledタイルレイヤーでカスタムタイル URL を使用できるようにします。以下でタイルレイヤーの URL を入力する必要があり、必要に応じてラベルも入力できます。カスタムタイルレイヤーを表示するには、上記のタイルレイヤーを有効にする必要があります。タイルレイヤーセレクターを有効にすると、タイル URL がセレクターに追加されます。ブール値はい直接編集
tileLayerベースタイルレイヤーです。文字列はい直接編集
tileUrlLabelsカスタムタイルレイヤーの各 URL の名前を格納する JSON 配列です。ラベルを指定しない場合、「カスタム」、「カスタム (1)」などのデフォルトの名前が使用されます。文字列いいえ直接編集
tileUrlsカスタムタイルレイヤーの URL を格納する JSON 配列です。タイルレイヤーの URL は、「http:/{s}.example.com/blah/{z}/{x}/{y}.png」という標準形式にする必要があります。ここで、{s} は任意のサブドメイン、{z} はズームレベル、{x} と {y} はタイル座標です。マップは、このテンプレート URL を使用して各タイル画像を検索します。文字列いいえ直接編集
shapeSelectionEnabledマップ上でドラッグ選択コントロールを有効にします。追加選択を使用するには、CMD または CTRL を押したままにします。ドラッグ選択は2つのモードをサポートします。領域選択では永続的な図形が作成され、テンプレート上で selection.areas という名前の配列として利用可能になります。データ選択では、さらにユーザーが位置マーカーを直接選択でき、selection.ids の値が更新されます。ブール値はい直接編集
selectionType選択モードです。領域選択では永続的な図形が作成され、テンプレート上で selection.areas という名前の配列として利用可能になります。データ選択では、さらにユーザーが位置マーカーを直接選択でき、selection.ids の値が更新されます。文字列いいえ直接編集

IBaseLayerOptions

属性説明データ型必須変更方法
nameレイヤーセレクターに表示するレイヤー名です。位置レイヤーと図形レイヤーでは、名前を指定しない場合、CSS セレクターが使用されます。Raven レイヤーは独自の名前を提供するため、このフィールドを使用すると、この Raven レイヤーが提供するすべてのレイヤー名が上書きされます。文字列いいえ直接編集

IBounds

属性説明データ型必須変更方法
northEast長方形のマップ領域の北東の点です。ILatLngはいユーザーのインタラクションまたは直接編集
southWest長方形のマップ領域の南西の点です。ILatLngはいユーザーのインタラクションまたは直接編集

IChoroplethLayerOptions

属性説明データ型必須変更方法
colorScaleOptions指定されている場合、指定されたカスタムカラースケールを使用してコロプレスの要素に色を付けます。IColorScaleOptionsいいえ直接編集
idsgeoJson ファイル内の「ids」に対応するデータ値です。また、ユーザーの選択に基づいて selection.ids が返す ID でもあります。文字列[]はい直接編集
layerSourceフィーチャーのレンダリングに使用するデータの種類です。ソースには、GeoJSON ファイルまたはベクタータイルを配信するサーバーを使用できます。文字列はい直接編集
shapeGeoJsonレイヤーの生の GeoJSON です。有効な GeoJSON ↗ オブジェクトを返すテンプレート化された関数またはクエリを値として使用することを推奨します。この値は、「図形ソース」が「生」に設定されている場合にのみ設定してください。anyいいえ直接編集
shapeSource図形の GeoJSON を取得する方法を指定します。「サーバーリソース」を使用して、Slate サーバー上の静的な GeoJSON シェープファイルを指定します。「生」を使用して、GeoJSON を直接指定します。Slate アプリケーションのサイズ制限により、大きな GeoJSON は「サーバーリソース」として、またはクエリから取得する必要があります。anyいいえ直接編集
shapeUrl図形ファイルの URL です。例:「resources/map/us-states.geojson」。この値は、「図形ソース」が「サーバーリソース」に設定されている場合にのみ設定してください。文字列いいえ直接編集
valuesデータポイントの値です。数値[]はい直接編集
vectorTileOptionsベクタータイルレイヤーを設定するためのオプションです。layerSource が「Vector Tile」に設定されている場合にのみ利用可能です。IVectorTileOptionsはい直接編集

IColorScaleOptions

属性説明データ型必須変更方法
colorScaleTypesカラースケールは、補間された色を使用してデータの値を表します。文字列はい直接編集
colors要素に色を付ける線形グラデーションを作成するために使用する、2色以上の配列です。たとえば、要素の値が [0, 25, 100]、色の配列が [“red”, “yellow”, “green”] の場合、結果の色は赤、オレンジ、緑になります。色は16進数(例:「#FF0000」)または CSS の色名(例:「red」)で指定できます。文字列はい直接編集
defaultColor値が null である要素に使用するデフォルトの色です。16進数の色(例:「#FF0000」)または CSS の色名(例:「red」)を指定できます。文字列はい直接編集
opacityカラースケールの不透明度の範囲です。値が0の場合は完全に透明で、1の場合は完全に不透明です。文字列はい直接編集
linearityカラースケールの線形性を調整します。「linearity」の値を低くすると、スケールの低い値の領域で色の違いがより明確になります。値が1の場合は完全に線形のスケールになります。文字列はい直接編集

IHeatgridLayerOptions

属性説明データ型必須変更方法
latitudesデータポイントの緯度の値です。数値[]はい直接編集
longitudesデータポイントの経度の値です。数値[]はい直接編集
valuesデータポイントの値です。数値[]はい直接編集
feature各グリッドセルの描画方法を指定します。文字列いいえ直接編集
colorScaleヒートグリッドのセルを描画するために使用するカラースケールです。数値いいえ直接編集
granularityヒートグリッドのセルのサイズです。数値いいえ直接編集
opacityRangeカラースケールの不透明度の最小値と最大値です。数値[]いいえ直接編集
colorScaleLinearityカラースケールの線形性を指定します。1.0は完全に線形で、0.5は平方根です。数値[]いいえ直接編集
radiusScale円フィーチャーの半径の範囲を指定します。範囲の最小値と最大値を同じ値に設定すると、すべての円が同じサイズになります。数値[]いいえ直接編集

IHeatmapLayerOptions

属性説明データ型必須変更方法
latitudesデータポイントの緯度値。number[]はい直接編集
longitudesデータポイントの経度値。number[]はい直接編集
radius各データポイントの半径。マップのズームに合わせて半径が拡大・縮小される場合、半径はマップの縮尺で測定されます(デフォルト値:2)。それ以外の場合、半径はピクセル単位で測定されます(デフォルト値:20)。numberいいえ直接編集
scaleRadiusEnabledマップのズームレベルに応じてデータポイントの半径を拡大・縮小するかどうかを指定します(デフォルト値: true)。booleanいいえ直接編集
valuesデータポイントの値。number[]はい直接編集

ILatLng

属性説明データ型必須変更方法
latitudeマップ上の点の緯度値。numberはいユーザーインタラクションまたは直接編集
longitudeマップ上の点の経度値。numberはいユーザーインタラクションまたは直接編集

ILayerModel

属性説明データ型必須変更方法
optionsレイヤーのオプション。詳細については、IChoroplethLayerOptions、IHeatmapLayerOptions、ILocationLayerOptions、IShapeLayerOptions、および IRavenLayerOptions を参照してください。IChoroplethLayerOptionsIHeatmapLayerOptionsILocationLayerOptions
typeマップレイヤーの種類:choropleth、location、heatmap、shape、または raven。stringはい直接編集

ILocationLayerOptions

属性説明データ型必須変更方法
clustering有効にすると、マップ上の点がクラスター化されます。booleanはい直接編集
cssClassesCSS エディターを介してデフォルトのマーカー設定を上書きするために使用する、マーカーの CSS クラス名。string[]いいえ直接編集
idsユーザーの選択に基づいて selection.ids が返す ID。string[]はい直接編集
latitudesデータポイントの緯度値。number[]はい直接編集
longitudesデータポイントの経度値。number[]はい直接編集
weightsクラスターラベル用に集計されるデータポイントの重み(デフォルト値:1)。number[]いいえ直接編集
markerTypeマーカーの種類。「circle」または「icon」。stringいいえ直接編集
markerRadius円形マーカーの半径。numberいいえ直接編集

IMapSelection

属性説明データ型必須変更方法
areasこの配列には、ドラッグ選択が有効なときにユーザーが作成する選択図形が含まれます。サポートされる図形は、緯度/経度の境界を持つ「rectangle」と、緯度/経度の中心および半径(メートル単位)を持つ「circle」です。Array<IRectangleShapeICircleShape>いいえ
idsこの配列には、マップ上で選択された場所マーカーの ID が含まれます。string[]はいユーザーインタラクション

IRectangleShape

属性説明データ型必須変更方法
bounds図形の緯度/経度の境界。IBoundsはいユーザーインタラクション
type文字列「rectangle」。stringはいユーザーインタラクション

ICircleShape

属性説明データ型必須変更方法
bounds図形の緯度/経度の境界。境界は、円全体を含む最小の長方形として定義されます。IBoundsはいユーザーインタラクション
center円の中心の緯度/経度。ILatLngはいユーザーインタラクション
radius円の半径(メートル単位)。numberはいユーザーインタラクション
type文字列「circle」。stringはいユーザーインタラクション

IRavenLayerFilterOptions

属性説明データ型必須変更方法
propertyName絞り込みに使用するプロパティの名前。例:「City」stringはい直接編集
propertyValue絞り込みに使用するプロパティの値。例:「Medford」stringはい直接編集

IRavenLayerOptions

属性説明データ型必須変更方法
filter指定されている場合、Raven のメタデータに基づいて Raven のフィーチャーが絞り込まれます。IRavenLayerFilterOptionsいいえ直接編集
serverUriRaven サーバーの URI。このドメインは、slate.yml のスクリプトおよび画像のコンテンツセキュリティポリシーでも明示的に許可する必要があります。stringはい直接編集

IShapeLayerOptions

属性説明データ型必須変更方法
cssClassesCSS エディターを介してデフォルト設定を上書きするために使用する、geojson の図形およびマーカーの CSS クラス名。string[]いいえ直接編集
idsgeoJson ファイル内の「ids」に対応付けられるデータ値。主に、個々の geoJson ID に CSS クラスを割り当てるために使用されます。string[]はい直接編集
markerTypeマーカーの種類。「circle」または「icon」。stringいいえ直接編集
markerRadius円形マーカーの半径。numberいいえ直接編集
shapeGeoJsonレイヤーの生の GeoJSON。推奨される値は、有効な GeoJSON ↗ オブジェクトを返すテンプレート化された関数またはクエリです。この値は、「図形ソース」が「生」に設定されている場合にのみ設定してください。anyいいえ直接編集
shapeSource図形の GeoJSON を取得する方法を示します。Slate サーバー上の静的 GeoJSON シェープファイルを指定するには、「サーバーリソース」を使用します。GeoJSON を直接指定するには、「生」を使用します。Slate アプリケーションのサイズ制限により、大きな GeoJSON は「サーバーリソース」として、またはクエリから取得する必要があります。anyいいえ直接編集
shapeUrl図形ファイルの URL。例:「resources/map/us-states.geojson」。この値は、「図形ソース」が「サーバーリソース」に設定されている場合にのみ設定してください。stringいいえ直接編集

IVectorTileLayerOptions

属性説明データ型必須変更方法
baseStyleベクタータイルのフィーチャーのスタイルを設定するためのオプション。IVectorTileStyleOptionsいいえ直接編集
clickStyle選択されたベクタータイルのフィーチャーのスタイルを設定するためのオプション。IVectorTileStyleOptionsいいえ直接編集
hoverStyleカーソルが置かれたベクタータイルのフィーチャーのスタイルを設定するためのオプション。IVectorTileStyleOptionsいいえ直接編集
vectorTileOptionsベクタータイルサーバーを設定するためのオプション。IVectorTileOptionsはい直接編集

IVectorTileOptions

属性説明データ型必須変更方法
featureIdKeyID として使用するフィーチャー上のプロパティの名前。一意である必要があります。デフォルトは文字列「id」です。stringいいえ直接編集
layerNameサーバーが返すレイヤー名の文字列。ベクタータイルサーバーはタイルごとに多数のレイヤーを提供できるため、これらのレイヤーのうちどれをレンダリングするかを選ぶために使用されます。stringはい直接編集
vectorTileUrl表示するタイルを提供するベクタータイルサーバーの URL。タイルは x、y、およびズーム(z)座標で取得する必要があるため、URL の構造には {x}、{y}、および {z} を含める必要があります。stringはい直接編集
featureIdWhitelistタイルのフィーチャーを絞り込むための文字列または正規表現のリスト。これが空でない配列の場合、featureIdKey がどの文字列または正規表現にも一致しないフィーチャーは表示されません。string[]いいえ直接編集

IVectorTileStyleOptions

属性説明データ型必須変更方法
colorフィーチャーのスタイルに適用する色を表す CSS 文字列。すべての種類のフィーチャーに適用されます。「outline」オブジェクト内ではアウトラインの色にも使用されます。stringいいえ直接編集
outlineポリゴンフィーチャーのアウトラインのスタイルを表す JSON オブジェクト。「color」および「size」属性を受け付けます。objectいいえ直接編集
radius点フィーチャーの半径の大きさ。numberいいえ直接編集
size線フィーチャーの線の太さ。「outline」オブジェクト内ではアウトラインの太さにも使用されます。numberいいえ直接編集

テーブル

次のテーブルでは、テーブルウィジェットで利用可能なプロパティの使用方法を説明します。テーブルの後に、いくつかの例を示します。

プロパティ

属性説明データ型必須変更方法
bodyTooltipテーブル本文のツールチップに表示されるテキストです。bodyTooltip が省略されている場合、または null の場合、ツールチップは表示されません。HTML をサポートします。文字列いいえ直接編集
columnDataテーブルに表示するデータです。通常は、テーブルに関連付けられたクエリをそのまま使用します。以下の例を参照してください。{columnId: any[]}(注:columnId は文字列です)はい直接編集
columnOptions特定の列に適用されるオプションです。以下の IColumnOption を参照してください。{columnId: IColumnOption}(注:columnId は文字列です)はい直接編集
columnOrder表示する列の順序とサブセットを示します。columnData の「columnId」の配列を指定する必要があります。空の配列のままにすると、順序が非決定論的になる可能性があります。列をドラッグして並べ替える機能が有効な場合、この値はユーザーのインタラクションに基づいて更新されます。string[]はい直接編集またはユーザーのインタラクション
gridOptions以下の IGridOptions を参照してください。IGridOptionsはい直接編集
selectedRowKeysユーザーが選択したすべての行の selectedIdentityColumnId の値です。any[]はいユーザーのインタラクション
selectionIdentityColumnId行の一意の識別子、つまりキーを特定するために使用する、columnData 内の columnId です。各行の「selectionIdentityColumnId」列の値が、一意のキーになります。行を選択すると、その一意のキーが「selectedRowKeys」に格納されます。文字列いいえ直接編集
serverEnabledサーバー側のページングと並べ替えを有効にします。デフォルトでは false に設定されています。false のままにすると、テーブルの並べ替えとページングはクライアント側で実行されるため、サーバーへの呼び出し回数が減り、パフォーマンスが向上します。ただし、すべてのデータを事前に読み込む必要があるため、クライアント側で並べ替えるテーブルは、より多くのメモリーを必要とします。true に設定する場合、クエリはページングオプションや並べ替えオプションを使用して、返すクエリ結果を変更する必要があります。たとえば、pageSize が10の場合、返せるのは最大10行です。ブール値はい直接編集
tooltipPositionツールチップを表示する位置を指定します。Blueprint.Positionいいえ直接編集
tooltipsEnabledツールチップを有効にするかどうかを指定します。ブール値はい直接編集
headerTooltip列ヘッダーのツールチップに表示されるテキストです。headerTooltip が省略されている場合、または null の場合、ツールチップは表示されません。HTML をサポートします。文字列いいえ直接編集
transposeテーブルの行と列を転置するかどうかを示します。ブール値いいえ直接編集
clickEventsこのテーブルウィジェットが公開するクリックイベントの名前のリストです。ブール値はい直接編集

IColumnOption

属性説明データ型必須変更方法
horizontalAlignment行の配置です。左寄せ、中央寄せ、右寄せのいずれかです。文字列いいえ直接編集
name列の表示名です。文字列いいえ直接編集
width列幅の上書き値です。数値いいえ直接編集

IGridOptions

属性説明データ型必須変更方法
enableSelectionユーザーがテーブルの行を選択できるかどうかを示します。ブール値いいえ直接編集
enableSortingユーザーがテーブルのデータを並べ替えられるかどうかを示します。(sortOptions の値も設定する必要があります。)ブール値いいえ直接編集
enableColumnReorderingユーザーが列をドラッグして並べ替えられるかどうかを示します。有効にすると、チェックボックス列は固定されたままとなり、並べ替えられません。ブール値いいえ直接編集
pagingOptions以下の ITablePagingOptions を参照してください。ITablePagingOptionsいいえ直接編集
selectionOptions以下の ISelectionOptions を参照してください(enableSelection も true に設定する必要があります)。ISelectionOptionsいいえ直接編集
sortOptions以下の ISortOptions を参照してください(enableSorting も true に設定する必要があります)。ISortOptionsいいえユーザーのインタラクション

ISelectionOptions

属性説明データ型必須変更方法
checkbox行選択の視覚的な手がかりとして、チェックボックス列を表示するかどうかを示します。ブール値いいえ直接編集
multiSelect複数の行を選択できるかどうかを示します。ブール値いいえ直接編集
selectionRequiredすべての値の選択を解除できるかどうかを指定します。有効にすると、ウィジェットで最後に残った選択値をユーザーが選択解除できなくなります。ウィジェットの初期状態で値が選択されていない場合、ユーザーが最初に選択してから、選択解除が制限されます。ブール値いいえ直接編集

ISortOptions

属性説明データ型必須変更方法
columnIdテーブルの現在の並べ替え基準となっているデータフィールドです。文字列はいユーザーのインタラクション
isAscending現在の並べ替えの方向です。ブール値はいユーザーのインタラクション

ITableHover

属性説明データ型必須変更方法
columnIndexカーソルが置かれたセルの列番号です。番号は0から始まります。数値はいユーザーのインタラクション
displayValueカーソルが置かれたセルの表示値です。文字列はいユーザーのインタラクション
isHeader現在のセルがヘッダーかどうかを指定します。文字列はいユーザーのインタラクション

ITablePagingOptions

属性説明データ型必須変更方法
currentOffset現在表示されているページです(インデックスは0から始まります)。数値はいユーザーのインタラクション
pageSizeページごとに表示する結果の件数です。数値はい直接編集
totalServerItems利用可能な結果の総件数です(必要なページ数の計算に使用します)。数値いいえ直接編集

例

動的テーブル

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 47 48 49 50 { "columnData": "{{query1}}", "columnOptions": { "id": { "name": "ID", "width": 50 }, "name": { "name": "Full Name" }, "address": { "name": "Home Address" }, "phone_number": { "name": "Phone Number" }, "score": { "name": "Score", "horizontalAlignment": "right" } }, "columnOrder": [ "id", "name", "address", "phone_number", "score" ], "gridOptions": { "enableSelection": true, "enableSorting": true, "pagingOptions": { "currentOffset": 0, "pageSize": 10, "totalServerItems": 100 }, "selectionOptions": { "checkbox": false, "multiSelect": true }, "sortOptions": { "columnId": "score", "isAscending": false } }, "selectedRowKeys": [], "selectionIdentityColumnId": "id", "serverEnabled": true, "tooltipsEnabled": false }

静的テーブル

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 { "columnData": { "staticOptions": [ "option1", "option2", "option3" ] }, "columnOptions": {}, "columnOrder": [], "gridOptions": { "enableSelection": true, "selectionOptions": { "checkbox": true, "multiSelect": false } }, "selectedRowKeys": [], "selectionIdentityColumnId": "staticOptions", "serverEnabled": false, "tooltipsEnabled": false }

デフォルト

Copied!
1 2 3 4 5 6 7 8 9 { "columnOptions": {}, "columnOrder": [], "gridOptions": {}, "selectedRowKeys": [], "selectionIdentityColumnId": "Metric", "serverEnabled": false, "tooltipsEnabled": false }

チュートリアル:テーブルウィジェットを追加する

フライトデータを表示するためにテーブルウィジェットを追加するとします。左上のウィジェットボタンを選択し、可視化 > テーブルを選択して、Slate アプリケーションにテーブルウィジェットを追加します。

テーブルウィジェットの名前を、識別しやすい名前に変更します。プロパティエディターでウィジェットの名前を選択し、w_flightTable に変更します。

データ項目に "{{q_allFlights}}" を入力して、q_allFlights クエリを使用するようにテーブルを設定します。テーブルにデータが表示されるはずです。

データが表示されたテーブル

値 "{{q_allFlights}}" は純粋な JSON 構文ではありません。中括弧は Handlebars の構文で、各式は {{expression}} として表されます。Slate での使用方法については、Handlebars を参照してください。)

テーブルには正しいデータが表示されていますが、書式は改善できます。すべての列を追加を選択して、元データの各列の書式設定オプションを表示します。

flight_id 列は人が読んで理解しやすい列ではないため、今は非表示にします。ただし、後で1行以上を選択できるように設定する際に参照するため、テーブルには保持します。

残りの列については、タイトルとして表示名を選択し、MomentJS ↗ の書式文字列を使用してタイムスタンプを読みやすくする書式文字列を追加します。

テーブルの列の書式設定

これで、すべてのデータを見やすく表示するテーブルができました。

列の書式を設定したテーブル

次に、選択と並べ替えを通じてユーザーがテーブルをどのように操作できるかを設定します。

プロパティエディターのその他タブに切り替え、選択を許可と並べ替えを有効にするにチェックを入れます。これで、ユーザーは列を直接選択してテーブルをさまざまな方法で並べ替えたり、特定の行をクリックして選択したりできます。

最後に、テーブルの各行の一意の識別子として何を使用するかを決めます。この場合は、フライトの名前を使用します。キー列 IDというラベルのドロップダウンで、flight_id を選択します。

テーブルのその他タブ

サーバー側ページング/並べ替えオプションにチェックが入っていない場合、テーブルはすでに読み込まれたデータのみを並べ替え、ページ分割します。ここまでの例では、テーブルの最初の10行のみが対象です。Slate では、ブラウザーのメモリーに5,000~10,000行を安定して読み込めますが、ユーザーのブラウザータブで利用可能なリソースによって制限されます。

ほとんどの場合、サーバー側のページングと並べ替えを設定することがベストプラクティスです。last-mile-flights テーブルには約75,000件のフライトがあり、元の flights テーブルには数百万件のフライトがあるため、すべての結果をクライアント側に一度に返すのは現実的ではありません。

ページングと並べ替えを設定する

ページングを有効にするとサーバー側ページング/並べ替えのチェックボックスにチェックを入れます。ページサイズの数値を選択して、一度にユーザーに表示する行数を設定します。

これらのオプションを有効にすると、テーブルは現在のページを追跡するようになります。この情報をクエリで使用して、表示に必要な行だけを取得できます。

クエリエディターを開き、q_allFlights に戻ります。ここで、テーブルに設定したページサイズを反映するように LIMIT 文を更新し、OFFSET 文を追加して、正しいページの結果を返すよう Postgres に要求します。

クエリのデータをテーブルウィジェットに組み込む際に使用したものと同じ Handlebars 構文を使用して、クエリ内からテーブルウィジェットの状態を参照します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 SELECT flight_id, carrier_code, tail_num, origin, dest, dep_ts_utc, arr_ts_utc, distance, actual_elapsed_time FROM "foundry_sync"."{{v_flightTable}}" LIMIT {{w_flightTable.gridOptions.pagingOptions.pageSize}} OFFSET {{w_flightTable.gridOptions.pagingOptions.currentOffset}}

これで、テーブルには一度に20行が表示され、次へ進むボタンを選択したり、特定のページに移動したりできます。次に、「総件数」を正しく表示できるように、テーブルウィジェットに総行数を渡します。

これを行うには、q_flightCount という新しいクエリを作成し、行数を数えます。

Copied!
1 2 3 SELECT COUNT(flight_id) as num_flights FROM "foundry_sync"."{{v_flightTable}}"

更新するを選択してクエリを保存し、テーブルウィジェットのその他タブに戻ります。サーバー側の総件数の入力で、Handlebars を使用してクエリ内の件数を参照します。

{{q_flightCount.num_flights.[0]}}

これで、テーブルは総件数(flights データセットでは420万件、last-mile-flights では73,946件)のうち、特定の行を表示していることを認識します。

これでページングの設定が完了し、ユーザーのブラウザーに負荷をかけたり、クエリがタイムアウトしたりすることなく、大規模なデータセットを順に表示できます。ユーザーによるテーブルのインタラクションにクエリが応答するように、サーバー側の並べ替えを有効にする必要がまだあります。

q_allFlights に戻り、クエリに ORDER BY 句を追加します。pagingOptions.pageSize と pagingOptions.currentOffset を参照したのと同様に、.sortOptions.columnId と .sortOptions.isAscending を参照して、適切な SQL 文を作成します。

Copied!
1 2 3 4 5 6 ORDER BY {{w_flightTable.gridOptions.sortOptions.columnId}} {{#if w_flightTable.gridOptions.sortOptions.isAscending}} ASC {{else}} DESC {{/if}}

新たに使用できるようになった Handlebars の条件付きブロック文が表示されるはずです。この文を使用すると、テキスト補間にロジックを組み込めます。この場合は、テーブルでのユーザーの選択に基づいて、ASC または DESC を選択できます。

Handlebars を使用すると、Slate アプリケーションに簡単なロジックを容易に組み込めますが、大規模なアプリケーションにより複雑なロジックを追加する場合は、通常、関数を使用することを推奨します。

これで、クエリ全体は次のようになるはずです。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 SELECT flight_id, carrier_code, tail_num, origin, dest, dep_ts_utc, arr_ts_utc, distance, actual_elapsed_time FROM "foundry_sync"."{{v_flightTable}}" ORDER BY {{w_flightTable.gridOptions.sortOptions.columnId}} {{#if w_flightTable.gridOptions.sortOptions.isAscending}} ASC {{else}} DESC {{/if}} LIMIT {{w_flightTable.gridOptions.pagingOptions.pageSize}} OFFSET {{w_flightTable.gridOptions.pagingOptions.currentOffset}}

表示している情報がひと目でわかるタイトルをテーブルに付けます。

ウィジェットボタンを選択し、選択肢から通常のプレーンテキストウィジェットを選択します。

テキストウィジェットに、テーブルのタイトルとして、状況に応じて All Flights または Last Mile Flights を入力します。

グリッド線を使用してすべての位置を揃えながら、テキストウィジェットをテーブルの左上に移動します。

次に、タイトルとサブタイトルの下にテーブルを適切に配置します。Cmd キーを押しながら両方のウィジェットを選択(またはドラッグして選択)して、テーブルとそのタイトルを両方選択し、アプリケーションのタイトルの下に適切に揃うように移動します。

完成したテーブルウィジェットを含むアプリケーションは、次のようになるはずです。行の選択とテーブルの並べ替えができるようになったことを確認します。

並べ替えたテーブル


Toast

次のテーブルは、Toast ウィジェットで利用可能なプロパティの使用方法の詳細を示しています。テーブルの後にいくつかの例を示します。

プロパティ

属性説明データ型必須変更方法
actionTextアクションボタンに表示するテキスト文字列はい直接編集
hasActionトーストにアクションボタンがあるかどうかを指定します。ブール値はい直接編集
intentトーストの視覚的な Intent の色。文字列はい直接編集
messageトーストのメッセージ。文字列はい直接編集
timeoutトーストが自動的に閉じられるまでの待機時間(ミリ秒)。0以下の値を指定すると、タイムアウトが無効になります。数値はい直接編集

アクション

アクション名説明
closeこのアクションをトリガーすると、トーストが閉じます。
openこのアクションをトリガーすると、トーストが開きます。

イベント

イベント名説明
didCloseこのイベントは、トーストが完全に閉じたときに発火します。
didOpenこのイベントは、トーストが完全に開いたときに発火します。
clickこのイベントは、トーストのアクションボタンがクリックされたときに発火します。

例

Toast

Copied!
1 2 3 4 5 6 7 { "actionText": "Toast Example", "hasAction": false, "intent": -1, "message": "Toast Message", "timeout": 600 }

デフォルト

Copied!
1 2 3 4 5 6 7 { "actionText": "Action!", "hasAction": false, "intent": -1, "message": "Message", "timeout": 3000 }

Tree

次のテーブルは、Tree ウィジェットで利用可能なプロパティの使用方法の詳細を示しています。

プロパティ

属性説明データ型必須変更方法
contentsBlueprint の ITreeNode コンポーネントの構造を使用して、データの階層を JSON で格納します。jsonはい直接編集
selected選択されているノードの IDjsonはい直接編集
selectionType選択の種類(「none」、「single」、または「multiple」)を決定します。文字列はい直接編集

デフォルト

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "contents": [ { "childNodes": [ {id: 3, label: "bar 1"}, {id: 4, label: "bar 2"} ], "iconName": "folder-close", "id": 1, "label": "bars", }, { "id": 2, "label": "foo" } ], "searchText": "", "selectedNodes": [], "selectionType": SelectionType.SINGLE }