link: https://www.cnblogs.com/luoyuhao/p/12127588.html
開頭語
經過一段時間研究,終於實現CS和BS相同效果的大數據展示平台了。首先來看看實現的效果,超炫的效果,客戶特別喜歡,個人也非常滿意,分享給各位,同大家一起交流學習。
大數據展示平台
從上圖可以看出,分為左中右三欄,左右主要是展示圖標為主,中間部分展示地圖,這種展示主要使用於物流行業,亮點是中間的地圖,物流覆蓋的地方和線路在地圖中顯示的淋漓盡致,效果非常炫,用WPF去現實的,圖片進行切片,研究了四個晚上做了這效果。
按快捷鍵Ctrl+F1可以對數據庫進行設置
按快捷鍵Ctrl+F2可以對系統標題,企業願景和公司最新動態,公司公告和地圖的顏色和線路進行設置,這樣就適用於大多數客戶。
這樣即可完全自定義了,適應於多個客戶,由於我公司是很多客戶的,所以必須進行公版話,進行自定義設置,這里就適用於很多了客戶了。
實現代碼
數據獲取代碼就不再展示了,下面分享下部分代碼,首先是地圖部分,由Canvas去畫線就好了,這樣就生成了地圖。

地圖上的從一點到另一個點進行畫線代碼如下:

左右兩邊用到的圖標是用Visifire.Charts.dll去實現的,網上也有非常多的例子,其實CS的圖表沒有BS實現出來的那么美觀,對圖表的也研究了很久,未發現比較好用的圖表控件,你有好的圖表控件推薦嗎?
例如折線圖:

柱狀圖:

同時還適用了定時刷新數據,頻率為分鍾,晚上8:00到早上7:00不刷新數據,這樣減少服務器壓力。
private DispatcherTimer RefreshDataTimer = null; RefreshDataTimer = new DispatcherTimer(); RefreshDataTimer.Tick += new EventHandler(OnDataEvent); RefreshDataTimer.Interval = new TimeSpan(0, 5, 0);//5分鍾一刷新 RefreshDataTimer.Start();
//獲取當前系統時間並判斷是否為服務時間 TimeSpan nowDt = DateTime.Now.TimeOfDay; TimeSpan workStartDT = DateTime.Parse("20:00").TimeOfDay; TimeSpan workEndDT = DateTime.Parse("08:00").TimeOfDay; if (nowDt > workStartDT && nowDt < workEndDT) { getdata(); }
以上說明了大概的實現思路。
結束語
現在大數據分析在我們日常開發軟件中經常遇到,一旦有了這個經常會給軟件打上高大上的標簽,客戶很青睞,報價多個一兩萬輕而易舉的事情,后續還需繼續完善,在市場上會越來越多的大屏展示數據有我們這樣的軟件出現。
程序文件:https://files.cnblogs.com/files/luoyuhao/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%B9%B3%E5%8F%B0.rar