傳染病統計地圖
傳染病統計地圖
將衛生福利部疾病管制署發布的傳染病統計數據,以面量圖的方式繪製於圖台。使用者可指定分級方法、分級數(可分為2-7級,TB分級法為固定7級)、面量圖使用色系、圖面標記、回傳圖片尺寸等設定。統計單位共有縣市、鄉鎮市區兩種,並可指定年、月、週作為統計日期類型。每種傳染病皆可選擇感染來源、年齡組、性別等詳細的統計條件,依據實際需求,使用者可自行設定這些項目,取得該傳染病的確定病例數或通報病例數統計圖。若欲在地圖上呈現某項傳染病統計數據之面量圖,必須給定疾病代碼(disease_code)、日期種類(date_type)、起時(date1)以及迄時(date2)四項參數。輸出的統計圖為PNG格式的影像檔,可以用套疊圖片影像檔的方法,套疊於TGOS圖台上,或直接以圖片展示於網頁,做其他利用。另外,統計結果也包含屬性資料陣列、分級數值與顏色,可以將詳細統計資訊以及圖例一併呈現。
另外,如果只要顯示某個縣市的資訊,則僅需於建立方法時,在TGCDCStatServiceRequest()物件中的county屬性,指定TGCounty列舉中的縣市常數,即可只顯示指定縣市的統計圖。
傳染病統計資料每天會定時更新,可隨時提供使用者最新的傳染病狀況。詳細的程式碼範例及說明如下(以統計日期類型為年做為範例)。
var CDCState = new TGOS.TGCDCDistrictStat(); //建立傳染病統計類別
var imgOverlay = null;
var lgdWindow = null;
function AddCDCMap() {
if (imgOverlay) {
//先行判斷圖台上是否已經進行過查詢並套疊統計圖,
//若有則清除統計圖及圖例框
imgOverlay.setMap(null);
lgdWindow.innerHTML = "顏色分級:<br>"
}
var layer = document.getElementById('DistricLevel').value;
var level;
if (layer == 'city') {
level = TGOS.TGCDCStatMapId.COUNTYMAP;
} else if (layer == 'town') {
level = TGOS.TGCDCStatMapId.TOWNMAP;
}
var req = { //設定查詢條件
layer: layer, //取得並設定地圖層級
diseaseCode: document.getElementById('disease').value,
//取得並設定疾病種類
dateType: document.getElementById('DateType').value,
//取得並設定日期類型
originInfection: document.getElementById('infectionSRC').value,
//取得並設定感染來源
date1: document.getElementById('SYear').value,
//取得並設定起始年
date2: document.getElementById('EYear').value,
//取得並設定結束年
ageGroup: document.getElementById('AgeRange').value,
//取得並設定年齡層
gender: document.getElementById('Gender').value,
//取得並設定性別
statType: document.getElementById('statTP').value,
//取得統計項目設定
countyName: document.getElementById('NameLabel').checked,
//確認是否加上行政區名稱標記
classifyMethod: document.getElementById('ClassType').value,
//取得並設定分類法
classes: document.getElementById('ClassNum').value,
//取得並設定分級數
graduatedColor: document.getElementById('ClassColor').value,
//取得漸層顏色設定
height: 1000, //設定影像高度
width: 700 //設定影像寬度
};
CDCState.stat(level, TGOS.TGCoordSys.EPSG3826, req, function(result, status) {
//進行傳染病統計查詢
if (status == 'OK') {
var img = result.imageUrl; //取出回傳影像
var opa = parseFloat(document.getElementById('Opacity').value);
//取得透明度設定
imgOverlay = new TGOS.TGGroundOverlay(pMap, newTGOS.TGImage(img),
result.envelope, opa); //使用TGGroundOverlay將統計結果繪出並套疊於圖台上
lgdWindow = document.getElementById('LegendBox'); //取得圖例框DIV
//用屬性legend取出各分層的分層資訊, legend.color為色碼,
//maxValue和minValue分別為該分層的統計最大值和最小值
var legends = result.legend; //由統計結果result中取得圖例資訊
for (var j = 0; j < legends.length; j++) { //於圖例DIV中將圖例寫出
var txt = lgdWindow.innerHTML + "<span style=\"background-color:" + legends[j].color + "\">" +"</span> " + legends[j].minValue + " ~ " + legends[j].maxValue + "<br>";
lgdWindow.innerHTML = txt;
}
}
else {
alert(status); //若查詢失敗, 顯示查詢狀態提供參考
}
});
}
傳染病統計地圖繪製,共有以下屬性需進行設定:
統計層級:可選擇縣市(city)或鄉鎮市區(town),注意某些疾病沒有提供鄉鎮市區層級之統計資訊。
日期類型:可分為年(year)、月(month)、週(week)三種型式。
感染來源參數:「0」代表本國籍及本土病例,「1」代表非本國籍及境外移入病例。
起時與迄時:時間格式依日期類型而有所不同。若日期類型為年,時間格式為「yyyy」;若日期類型為月,時間格式以「yyyymm」填入;若日期類型為週,則時間格式使用「yyyyww」。在設定時,請注意各傳染病之紀錄開始年、月、週。
年齡組:分為0至14歲(0to14)、15至49歲(15to49)、50歲以上(50upper)等三類,亦可選擇全部(all),則不分類,統計所有年齡層的數據。
性別:可選擇男(male)、女(female)或全部(all)。
統計項目:選擇匯出該疾病之確定病例數(confirmed)或通報病例數(reported)的統計資料。
文字標記:為布林值,可指定縣市名稱是否顯示於統計圖圖面上。
分級方法:可使用等距法(EqualInterval)、分位法(Quantile)、標準差(StanDevi)、變動率(以2005年統計值為參考值)(TBClassify)。
※註:變動率為(查詢年度統計值 – 2005年度統計值)/2005年度統計值
分級數:指定統計數據分級之級別數量,可為2-7級,但若分類方法選擇TBClassify,則固定為7級。
使用色系:共有紅色(red)、黃色(yellow)、綠色(green)、藍色(blue)四種。
縣市參數:指定僅繪製某縣市的統計圖資。查詢皆依現況,以五都整併升格後為基準,亦即選擇台中市,則會繪出五都整併前的台中縣及台中市的資料。縣市常數代碼如下:
基隆市:KEELUNG
台北市:TAIPEI
新北市:XINBEI
桃園縣(於103/12/25升格為直轄市):TAOYUAN
新竹縣:HSINCHUCOUNTY
新竹市:HSINCHUCITY
苗栗縣:MIAOLI
台中市:TAICHUNG
彰化縣:CHANGHUA
南投縣:NANTOU
雲林縣:YUNLIN
嘉義縣:CHIAYICOUNTY
嘉義市:CHIAYICITY
台南市:TAINAN
高雄市:KAOHSIUNG
屏東縣:PINGTUNG
宜蘭縣:YILAN
花蓮縣:HUALIEN
台東縣:TAITUNG
澎湖縣:PENGHU
金門縣:KINMEN
連江縣:LIENCHIANG
傳染病統計地圖之疾病代碼參數,及資料記錄開始年份資訊如下表所示。要注意的是,表中以棕色標記之疾病,僅提供縣市層級之資料,其餘皆提供縣市及鄉鎮市區層級統計資料。