使用XY坐標點位資料

使用XY坐標點位資料

 

在本範例中,我們使用資料服務平台資料庫之XY坐標點位資料,搭配統計地圖的分級符號圖以
及統計圖表的柱狀圖功能進行繪製,並搭配客製化的指定縣市範圍、分級符號圖設定、柱狀圖設
定等參數來建立功能選單介面,您可以直接將本範例複製至您的網站伺服器,再修改使用的統計
資料項目或統計地圖/圖表類型即可快速建立一個頁面。

 

版型設定部分:

所有進階範例的版型皆以CSS文件(sample.css)進行設定,其詳細說明可參考進階範例「自應用
資料庫繪製地圖及圖表」
中的使用資料服務平台統計資料。使用者可透過修改此檔案來更改
範例版型中各個區塊的樣式設定。
 

 

網頁設計部分:

除了最上方的標題區塊之外,本範例左側提供三個選單區塊作為網頁使用者的主要操作區域,可
分別進行統計資料選擇、統計參數設定、執行按鈕的點擊等等,右側則是結果展示區域,繪製完
成的統計地圖、統計圖表及其他相關輸出內容都會在這個區塊呈現。所有可供網頁使用者進行操
作的選單,都以下拉選單或多選清單的方式呈現,如指定縣市範圍選擇下拉選單,您可自行選擇
欲繪製之縣市項目,僅須確認選項的value值必須填入正確的統計資料表代碼即可。

 

<td class="items_content">產品選擇:</td>

<td>

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

           <option value="">教育文化/教育</option>

     </select>

</td>

 

由於統計地圖-分級符號圖僅可設定單一欄位進行繪製,因此在這個選單就使用單一選單方式來取
得資料項目,須確認所有加入的統計欄位都屬於上一步驟設定的統計產品,並將選項的value
填入正確的欄位代碼即可。

 

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

      <td>

            <select id="sField" size="1" multiple disabled>

                    <option value="NA_STU_CNT" selected>高中職原住民學生數</option> 

            </select>

      </td>

</tr>

    <tr>

                <td class="items_content" valign="top">指定縣市範圍:</td>                           

                <td>

                      <select id="sCounty" size="1">

                                    <option value="10015">花蓮縣</option>                                                     

                                     <option value="10014" selected>臺東縣</option>                                                    

                      </select>

                 </td>

 

程式設計部分:

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

 

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

     document.getElementById("mapView").style.display ="";

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

 

     setStatData(myMap.getStatData());          //設定統計資料

  myMap.getStatData().select.districtCode = [document.getElementById("sCounty").value];

     var mapOpts = myMap.getMapOptions();     //取得統計地圖參數設定

   mapOpts.pSymbol.classifyMethod = document.getElementById("pClassify").value;
     
//重新設定分級方式

     mapOpts.pSymbol.classes = parseInt(document.getElementById("pClassesCount").value);
     
//重新設定分級數

    if (document.getElementById("pClassify").value == ClassifyMethod.USER_DEFINED){

         if(document.getElementById("pClassesCount_Self").value == "") {

                  alert("自訂區間必須填入值");

                   return;

          } else {

            mapOpts.pSymbol.userLevels = document.getElementById("pClassesCount_Self").value.split(",");

                       }

           }       

mapOpts.pSymbol.symbolStyle = document.getElementById("symbolType").value;

mapOpts.pSymbol.fillColor = document.getElementById("fillColor").value; 

mapOpts.pSymbol.outlineColor = document.getElementById("lineColor").value;         

mapOpts.pSymbol.outlineWidth = document.getElementById("lineWidth").value;     

      mapOpts.pSymbol.maxSize = document.getElementById("maxSize").value;

mapOpts.pSymbol.minSize = document.getElementById("minSize").value;

   //重新設定分級符號之樣式、顏色、外框及其大小

myMap.drawMap(function (result) {                 

            if (result.status === ServiceStatus.OK)
             putInfomation(result);                //寫出統計資訊及圖例資訊

});

}

 

當網頁使用者點擊「繪製統計圖表」按鈕時,同樣程式即進入function drawStatChart( )內執行
統計圖表繪製作業,取得所有設定參數後,套用設定參數並將成果輸出至展示區域內。

 

function drawStatChart() {      //統計圖表繪製

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

     document.getElementById("chartView").style.display ="";

 

     setStatData(myChart.getStatData());         //設定統計資料

  myChart.getStatData().select.districtCode = [document.getElementById("sCounty").value];

     //統計圖表參數設定

     var chartOpts = myChart.getChartOptions();         //取得統計圖表參數設定

     //重設柱狀圖最大柱高

     chartOpts.pBar.maxHeight = parseInt(document.getElementById("chartMaxHeight ").value);

     //重設柱狀圖柱寬

     chartOpts.pBar.barWidth = parseInt(document.getElementById("chartBarWidth ").value);

 

          if (document.getElementById("pieColorList").value !="")

                 chartOpts.pBar.color = document.getElementById("pieColorList").value.split(",");

 

     myChart.drawChart(function (result) {             //繪製統計圖表       

          if (result.status === ServiceStatus.OK)
             putInfomation(result);                       //寫出統計資訊及圖例資訊

     });

}

 

 

回到上方