0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Harmoware-VIS】停留所アイコン付きグラフを時間経過で更新

Last updated at Posted at 2021-12-09

#Harmoware-VIS とは

#停留所アイコン付きグラフを時間経過で更新

Harmoware-VIS で停留所アイコンにグラフを表示する機能(参照)では、時間経過によるデータ更新はしないのでアイコン表示中に変化しません。

Harmoware-VIS に登録した停留所データ( depotsBase )から、表示用の停留所のデータ( depotsData )を生成する処理をカスタマイズするオーバーライド関数を使用することで実現できます。

オーバーライド関数を登録する書式

this.props.actions.setDepotsOptionFunc(getDepotsOptionFunc);

引数となる getDepotsOptionFunc の関数書式

const getDepotsOptionFunc(props,index) => object

オーバーライド関数は1停留所(index)毎にコールします。

引数 説明
props アプリのルートの プロパティ
index 停留所データ(depotsBase)内の処理中のindex

リターン値は既定の停留所のデータ( depotsData )に上書きされますので注意してください。
既定では position 及び、その他の depotsBase に含まれる要素がコピーされます。

###時間経過でグラフを更新
シミュレーション中の経過時間は Harmoware-VIS のプロパティの settime に設定されています。
このデータから然るべきグラフで表示する値を求め、 DepotsLayer のプロパティの optElevation 及び optColor 要素を編集します。

オーバーライド関数のコード例
getGraphValue(n) はグラフのデータを取得する関数を想定)

const getDepotsOptionFunc(props,index) => {
    const {settime, depotsBase} = props; // 必要なプロパティの取出し
    const currentData = depotsBase[index]; // 対象のデータを抽出
    const optElevation = []; // オプショングラフのデータ用エリア
    optElevation[0] = getGraphValue0(settime,currentData);
    optElevation[1] = getGraphValue1(settime,currentData);
    optElevation[2] = getGraphValue2(settime,currentData);
    optElevation[3] = getGraphValue3(settime,currentData);
    const optColor = [[255,0,0],[0,255,0],[0,0,255],[255,255,255]]; // オプショングラフのデータの色指定
    return {optElevation,optColor};
}

※注意※
オーバーライド関数の引数のHarmoware-VIS のプロパティの depotsData は、前回の表示済データですのでご注意ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?