ぴよぴよエンジニアの日記

クラウドベンダーに勤める見習いSEの日記です。発言は私自身の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

E2D3 に EV(電気自動車)可視化のテンプレートを取り込んでもらった

以前、E2D3 のカスタムテンプレートを作った記事を書きました.

santea.hateblo.jp

今回、上記テンプレートを master にマージして頂けたので、テンプレートの説明を書きたいと思います.


f:id:Santea:20170307002306p:plain

2017/03/07現在、To be Developed のカテゴリーになります(一番下にあるので Excel で利用するときはアドインオブジェクトを大きくして見てください).


こちらが今回マージして頂いたテンプレートです.

EV の走行軌跡にバッテリー残量で色付けを行ったものです.
バッテリー残量に応じて、青→緑→黄色→赤と色が変わっていきます(HSV 色空間でバッテリー残量を表現しています).


このテンプレートは Android アプリ "Leaf Spy" で取得する値を元に可視化を行います.

play.google.com

time latitude longitude gids
2016-6-8T16:4:45 35.39496811 139.2839659 114
2016-6-8T16:4:46 35.39512891 139.2840787 114

データフォーマットは上記のようになっていて、Leaf Spy で取得した time, latitude, longitude, gids*1 を入力すれば EV の走行をバッテリー残量の変化とともに可視化できるというわけです.


普段、Leaf Spy を使って記録を行っている皆様、このテンプレートを使ってバッテリー残量の推移を見てみてください!面白い発見があるかもしれません!


Use E2D3 – E2D3

E2D3 の使い方はこちらです.Excel for Windows/Mac/Online で使えます.


バグや改善要望等ありましたら、こちらの記事にコメントを頂けますと幸いです.


以上です.

*1:GIDs 値は旧型の日産LEAFの値を基準に計算を行っています.テンプレートの仕様では新型のLEAFの記録値を用いる場合、正しく色が反映されません.

Xamarin.Forms でも UISegmentedControl を使いたい!

複数の項目を選択するとき iOS では UISegmentedControl をよく使うと思います.

f:id:Santea:20170301164511p:plain

UISegmentedControl - UIKit | Apple Developer Documentation


しかしながら、Xamarin.Forms には UISegmentedControl に対応するコントロールは用意されていません.

Embedding Native Controls into Xamarin.Forms | Xamarin Blog

Embedding Native を使えばネイティブコントロールを配置できますが、Android をどうするか.


github.com

Android を自前のカスタムコントロールで実装しようか迷っていたとき、ちょうど良さげなコントロールを見つけました.

iOS(iOS 8.1+)/Android(API 18+) に対応しています.

NuGet Gallery | Segmented Control for Xamarin Forms 1.2.4

NuGet から使えます.

<abstractions:SegmentedControl TintColor="Red"
                               SelectedSegment="{Binding SelectedSegment.Value, Mode=TwoWay}">
    <abstractions:SegmentedControl.Children>
        <abstractions:SegmentedControlOption Text="かばん" />
        <abstractions:SegmentedControlOption Text="サーバル" />
    </abstractions:SegmentedControl.Children>
</abstractions:SegmentedControl>

こんな感じに XAML で書けます.
子要素も XAML で書けるのがいいですね.

f:id:Santea:20170301164756p:plain

TintColor="Red" にするとこのように赤い SegmentedControl も作れます.
ただ、この TintColor ですが Android ではバグがあります...

SegmentedControl/SegmentedControlImplementation.cs at master · alexrainman/SegmentedControl · GitHub

IsEnabled の変更通知をしなければ TintColor は変更されないようになっています.
IsEnabled = false → IsEnabled = true みたいに変更してあげれば iOS と同じように赤い SegmentControl を作れます.

いちいち IsEnabled を変更するのもめんどくさいのでそのままの色で使うか、Fork して使うなりしたほうがいいかもしれません.




以上です.