互動式視窗之詳細圖表呈現

互動式視窗之詳細圖表呈現

 

在本範例中,我們將提供RWD設計之圖台樣板,並搭配以統計地圖API繪製含詳細圖表之統計地圖
來進行開發。本範例使用資料服務平台資料庫之統計資料,搭配統計地圖之圓餅圖功能進行繪製,配
合客製化的欄位選單、圓餅圖設定等參數來建立功能選單介面,您可以直接將本範例複製至您的網站
伺服器,再修改使用的統計資料項目或統計地圖/圖表類型來快速建立一個網頁圖台。

 

版型設定部分:

本進階範例的版型以CSS文件(sample.css)進行設定,其詳細說明可參考進階範例由指定地理位置
查詢鄰近統計資料
。使用者可透過修改css檔案來更改範例版型中各個區塊的樣式設定。 

 

網頁設計部分:

除了最上方的標題區塊之外,本範例提供一選單區塊作為網頁使用者的主要操作區域,可進行統計資

料選擇、統計參數設定、執行按鈕的點擊等等,右側則是結果展示區域,繪製完成的統計地圖、統計

圖表及其他相關輸出內容都會在這個區塊呈現。所有可供網頁使用者進行操作的選單,都以下拉選單

或多選清單的方式呈現,如統計產品選擇下拉選單,您可自行增減選單內的項目,僅須確認選項的value

值必須填入正確的統計資料表代碼即可。

 

        <div id="dateQueryMenu" class="QueryMenuDIV"style="overflow-y:auto;">

                <table>

                        <tr>

                                <td class="items_content"colspan="2">選擇資料:</td>

                        </tr>

                        <tr>

                                <td>產品選擇:</td>

                                <td>

                                        <select id="sTable"class="items_selectOption" disabled="">

                                                <optionvalue="A57FA_12C2">行政區歲入來源別統計</option>

                                        </select>

                                </td>

                        </tr>

 

統計欄位選擇的部分,設定為多項欄位變數進行統計圖繪製,因此此選單使用多選清單的方式來

進行欄位選擇,您同樣可以自行增減選單的項目,僅須確認所有加入的統計欄位都必須屬於上一
步驟設定的統計產品,並將選項的value值填入正確的欄位代碼即可。

                                <td valign="top">使用統計欄位:</td>

                                <td>

                                        <select id="sField"class="items_selectOption" style="width:160px" size="3"multiple="" >

                                                <option value="COLUMN1"selected="">稅課收入</option>

                                                <option value="COLUMN2"selected="">規費收入</option>

                                                <option value="COLUMN3"selected="">罰款及賠償收入</option>

                                                <option value="COLUMN4"selected="">補助及協助收入</option>

                                                <option value="COLUMN5">財產收入</option>

                                        </select>

                                </td>

時間選擇的部分,亦設定為複選選單,需確定統計時間代碼與產品項目相符。

                    <td>統計時間:</td>

                                <td>

                                        <select id="sTime"class="items_selectOption" style="width:160px" size="3"multiple="">

                                                <option value="100Y"selected="">101</option>

                                                <option value="101Y"selected="">101</option>

                                                <option value="102Y"selected="">102</option>

                                        </select>

                                </td>

繪圖設定則依據使用者選擇之繪圖類型,顯示其相對應之繪圖參數,並預設勾選呈現詳細圖表選項。

                        <tr>

                                <td >圓餅大小:</td>

                                <td>

                                        <select id="pSize"class="items_selectOption items_width100">

                                        </select>

                                </td>

                        </tr>

                        <tr>

                                <td>自定顏色:</td>

                                <td>

                                        <input type="text" value=""id="ColorList" class="items_content2"><br>

                                        <span class="items_Span"id="Span1">例:輸入 #FF0000,#00FF00,#0000FF

                                        </span>

                                </td>

                        </tr>

                        <tr id="trdetailchartView">

                                <td></td>

                                <td >

                                        <input id="detailchartView"type="checkbox" checked="" />是否顯示詳細圖表

                                </td>

                        </tr>

 

程式設計部分:

當網頁使用者點擊「繪製統計地圖」按鈕時,程式端即進入function drawStatMap( )內進行一
系列的動作,包含從網頁介面取得各種資料設定、繪圖參數設定等等,再將所有設定套入統計地
圖物件設定內容後進行統計地圖繪製作業,最後將互動式介面輸出至網頁的展示區域內,並寫出
所需的統計資訊。

 

function drawStatMap() {       //統計圖繪製

        document.getElementById("chartViewContainer").style.display = "none";

        div_mask(true); //啟動畫面遮罩

        setStatData();

        var tColorList = (document.getElementById("ColorList").value).split(",");

        var pSize = document.getElementById("pSize").value;

        var pPie = {

                size: pSize,              //設定圓餅大小

                chartView: document.getElementById("detailchartView").checked,    //設定顯示詳細圖表

                color: tColorList    //設定圓餅圖配色

        };

        var option = {

                pPie: pPie

        };

        var containerObj = document.getElementById("mapView");        //指定互動式介面的DIV ID                           

        var map = new StatMap(containerObj, dataDB, MapKind.PIE, option);

        map.drawMap(function (result) {

                myStatResult = result;

                if (result.status === ServiceStatus.OK)

                        putInfomation(result);

                div_mask(false);            //結束遮罩

});     //繪製統計地圖

}

function setStatData() {                           //統計資料設定撈取

        mType = document.getElementById("mType").value;

        timeList = getMultiOpts(document.getElementById("sTime"));

        dataDB.option.timeOpts.time = timeList;

        dataDB.dataSet[0].tableName = document.getElementById("sTable").value;

        dataDB.dataSet[0].fieldsId = getMultiOpts(document.getElementById("sField"));

        dataDB.select.districtCode = getMultiOpts(document.getElementById("pRegionCode"));

        if(document.getElementById("sLevel").value =="COUNTY"){

                dataDB.option.dataLevel = DataLevel.COUNTY;

        }

}

 

回到上方