在数据可视化中添加了环境监测数据的显示

This commit is contained in:
Li Jianxuan 2012-06-25 08:34:24 +00:00
parent c2f9bf43a2
commit 5bec6c3aab
2 changed files with 189 additions and 4 deletions

View File

@ -343,6 +343,149 @@ class VisualController extends Zend_Controller_Action
//getHydrologyDataByStationId() 获得水文数据变量值 //getHydrologyDataByStationId() 获得水文数据变量值
/****************************
环境监测数据
*****************************/
/*
* createAmbientDataSet 创建环境监测数据
*
* param int $sid 站点编号、名称
* param string $valuetype 变量类型
* param string $label 单位
* param int $round 数值精确度,小数点后位数
*
* return array
*/
function createAmbientDataSet($sid,$valuetype,$label,$round=4){
if(empty($label))
{
$label='';
}
$data = array(
"name"=>"站点:$sid",
"data"=>$this->getAmbientValueByStation($sid,$valuetype),
"tooltip"=>array(
"valueDecimals"=> $round,
"valueSuffix"=> $label
)
);
return $data;
}//createAmbientDataSet 创建环境监测数据的数据
/*
* getAmbientValueByStation 按站点查询变量
*
* param int $sid 站点编号
* param string $table 变量类型
*
* return array
*/
function getAmbientValueByStation($sid,$t)
{
$field = array(); //查询字段
$field[] = 'id';
$field[] = '"position"';
$field[] = 'dt';
$field[] = $t.' as v';
$field = join(",",$field); //拼接
$sql = "select $field from ambient_air where \"position\"='$sid' ORDER BY dt ASC";
$sth = $this->dbh->prepare($sql);
$sth->execute();
$temp = $sth->fetchAll();
$dataSet = array();
foreach ($temp as $k=>$v)
{
$time = 0;
if(!empty($v['dt']))
{
$time = strtotime($v['dt']);
}
if(!empty($v['yr']) && !empty($v['mth']))
{
$time = strtotime($v['yr'].'-'.$v['mth'].'-'.'01 00:00:00');
}
if(!empty($v['yr']) && empty($v['mth']))
{
$time = strtotime($v['yr'].'-01-01 00:00:00');
}
$dataSet[] = array($time*1000,$v['v']);
}
unset($temp);
return $dataSet;
}// getAmbientValueByStation 按站点查询变量
/*
* getAmbientDataByStationId 获得环境监测数据变量
*
* param string $valuetype 变量类型
* param string $label 单位
* param int $sid 站点编号,默认为空,空值将列出所有站点变量值
* param int $round 数值精确度,小数点后位数
*
* return array
*/
function getAmbientDataByStationId($valuetype,$label,$sid=0,$round=4){
if(empty($sid))
{
//降水
$p = array('tsp','pm10','so2','no2');
if(in_array($valuetype,$p))
{
$sql = "select \"position\" from ambient_air group by \"position\"";
}
$sth = $this->dbh->prepare($sql);
$sth->execute();
$stations = $sth->fetchAll();
$data = array();
foreach ($stations as $v)
{
$data[] = $this->createAmbientDataSet($v['position'],$valuetype,$label,$round);
}
return $data;
}//所有站点
if(is_array($sid))
{
}//多个指定站点
else
{
}//单个站点
}
//getAmbientDataByStationId() 获得环境监测数据变量的值
//******************************************************** //********************************************************
/* /*
@ -362,7 +505,7 @@ class VisualController extends Zend_Controller_Action
$ac = $this->_request->getParam('ac'); $ac = $this->_request->getParam('ac');
$base = $this->_request->getParam('dt'); $base = $this->_request->getParam('dt');
if(!in_array($base,array('meteorology','hydrology'))) if(!in_array($base,array('meteorology','hydrology','ambient')))
{ {
$data = array( $data = array(
"error"=>"参数错误" "error"=>"参数错误"
@ -477,6 +620,38 @@ class VisualController extends Zend_Controller_Action
}//水文数据 }//水文数据
if($base=="ambient")
{
if($ac=='tsp')
{
$title = "总悬浮颗粒物";
$label="";
$datas = $this->getAmbientDataByStationId($ac,$label);
}
if($ac=='pm10')
{
$title = "可吸入颗粒物";
$label="";
$datas = $this->getAmbientDataByStationId($ac,$label);
}
if($ac=='so2')
{
$title = "二氧化硫";
$label="";
$datas = $this->getAmbientDataByStationId($ac,$label);
}
if($ac=='no2')
{
$title = "二氧化氮";
$label="";
$datas = $this->getAmbientDataByStationId($ac,$label);
}
}//环境监测数据
$data = array( $data = array(
"label"=>$label, "label"=>$label,
@ -491,6 +666,8 @@ class VisualController extends Zend_Controller_Action
function utcMsTime($time=''){ function utcMsTime($time=''){
if(empty($time)) if(empty($time))
return (time()+8*3600)*1000; return (time()+8*3600)*1000;

View File

@ -9,7 +9,7 @@ $this->headScript()->appendFile('/static/js/highstock/modules/exporting.js');
//$this->headScript()->appendFile('/static/js/highcharts/highcharts.js'); //$this->headScript()->appendFile('/static/js/highcharts/highcharts.js');
//$this->headScript()->appendFile('/static/js/highcharts/modules/exporting.js'); //$this->headScript()->appendFile('/static/js/highcharts/modules/exporting.js');
$this->breadcrumb('<a href="/">首页</a>'); $this->breadcrumb('<a href="/">首页</a>');
$this->breadcrumb('<a href="/data">数据与服务</a>'); $this->breadcrumb('<a href="/data">数据与服务</a>');
$this->breadcrumb('数据可视化'); $this->breadcrumb('数据可视化');
$this->breadcrumb()->setSeparator(' > '); $this->breadcrumb()->setSeparator(' > ');
?> ?>
@ -40,10 +40,13 @@ $this->breadcrumb()->setSeparator(' > ');
</div> </div>
</div> </div>
<div class="tbox mt12"> <div class="tbox mt12">
<div class="title corners-top">环境</div> <div class="title corners-top">环境</div>
<div class="content"> <div class="content">
<ul> <ul>
<li><button value="0" class="fetchSeries btn">流动检测</button></li> <li><button value="tsp" class="fetchSeries btn ambient">总悬浮颗粒物</button></li>
<li><button value="pm10" class="fetchSeries btn ambient">可吸入颗粒物</button></li>
<li><button value="so2" class="fetchSeries btn ambient">二氧化硫</button></li>
<li><button value="no2" class="fetchSeries btn ambient">二氧化氮</button></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -104,6 +107,11 @@ $(".fetchSeries").click(function () {
dt = 'hydrology'; dt = 'hydrology';
} }
if(button.hasClass('ambient'))
{
dt = 'ambient';
}
$('#datachart').html(''); $('#datachart').html('');
function onDataReceived(series) { function onDataReceived(series) {