763 lines
16 KiB
PHP
763 lines
16 KiB
PHP
|
<?php
|
|||
|
|
|||
|
class VisualController extends Zend_Controller_Action
|
|||
|
{
|
|||
|
|
|||
|
function preDispatch()
|
|||
|
{
|
|||
|
$this->view->config = Zend_Registry::get('config');
|
|||
|
$this->db=Zend_Registry::get('db');
|
|||
|
$this->dbh = new PDO("pgsql:dbname=qinghaihu;host=localhost", "gis", "gispassword" );
|
|||
|
$auth = Zend_Auth::getInstance();
|
|||
|
if($auth->hasIdentity())
|
|||
|
{
|
|||
|
$user = $auth->getIdentity();
|
|||
|
$this->uid = $user->id;
|
|||
|
}else{
|
|||
|
$this->_redirect('/account/login?href=/data/visual');
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
function indexAction()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/****************************************************************
|
|||
|
|
|||
|
气象数据
|
|||
|
|
|||
|
*****************************************************************/
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* getMeteorologyValueByStation 按站点查询变量
|
|||
|
*
|
|||
|
* param int $sid 站点编号
|
|||
|
* param string $field 变量类型
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function getMeteorologyValueByStation($sid,$field)
|
|||
|
{
|
|||
|
|
|||
|
$sql = "select id,station_id as sid,date,$field as v from daily_meteorological_data where station_id=$sid ORDER BY date ASC";
|
|||
|
|
|||
|
$sth = $this->dbh->prepare($sql);
|
|||
|
$sth->execute();
|
|||
|
$temp = $sth->fetchAll();
|
|||
|
|
|||
|
$dataSet = array();
|
|||
|
|
|||
|
foreach ($temp as $k=>$v)
|
|||
|
{
|
|||
|
$dataSet[] = array(strtotime($v['date'])*1000,$v['v']);
|
|||
|
}
|
|||
|
unset($temp);
|
|||
|
|
|||
|
return $dataSet;
|
|||
|
|
|||
|
}// getMeteorologyValueByStation 按站点查询变量
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* createMeteorologyDataSet 创建气象数据
|
|||
|
*
|
|||
|
* param int $sid 站点id
|
|||
|
* param string $valuetype 请求变量类型
|
|||
|
* param String $labe 单位
|
|||
|
* param int $round 数据精确度(小数点后位数)
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function createMeteorologyDataSet($sid,$valuetype,$label,$round=1)
|
|||
|
{
|
|||
|
if(empty($label))
|
|||
|
{
|
|||
|
$label="";
|
|||
|
}
|
|||
|
|
|||
|
$varField = array(
|
|||
|
'temperature' => 'avg_air_temperature', //日平均气温
|
|||
|
'windspeed' => 'avg_wind_speed', //日平均风速
|
|||
|
'precipitation' => 'sum_precipitation', //日合计降水量
|
|||
|
'sunshine' => 'sunshine_hours' //日照小时数
|
|||
|
);
|
|||
|
|
|||
|
$data = array(
|
|||
|
"name"=>"站点:$sid",
|
|||
|
"data"=>$this->getMeteorologyValueByStation($sid,$varField[$valuetype]),
|
|||
|
"tooltip"=>array(
|
|||
|
"valueDecimals"=> $round,
|
|||
|
"valueSuffix"=> $label
|
|||
|
)
|
|||
|
);
|
|||
|
|
|||
|
return $data;
|
|||
|
}// createMeteorologyDataSet 创建气象数据
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* getMeteorologyDataByStationId 获得变量值
|
|||
|
*
|
|||
|
* param string $valuetype 变量类型
|
|||
|
* param string $label 单位
|
|||
|
* param int $sid 可选,为空则查询所有站点
|
|||
|
* param int $round 数值精确度,小数点后位数
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function getMeteorologyDataByStationId($valuetype,$label,$sid=0,$round=1)
|
|||
|
{
|
|||
|
if(empty($sid))
|
|||
|
{
|
|||
|
$sql = "select station_id as sid from daily_meteorological_data group by station_id";
|
|||
|
|
|||
|
$sth = $this->dbh->prepare($sql);
|
|||
|
$sth->execute();
|
|||
|
$stations = $sth->fetchAll();
|
|||
|
|
|||
|
$data = array();
|
|||
|
|
|||
|
foreach ($stations as $v)
|
|||
|
{
|
|||
|
$data[] = $this->createMeteorologyDataSet($v['sid'],$valuetype,$label,$round);
|
|||
|
}
|
|||
|
|
|||
|
return $data;
|
|||
|
}
|
|||
|
|
|||
|
else
|
|||
|
{
|
|||
|
return $this->createMeteorologyDataSet($sid,$valuetype,$label,$round=1);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}//getMeteorologyDataByStationId 获得气象数据变量值
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/**********************************************************
|
|||
|
|
|||
|
水文数据
|
|||
|
|
|||
|
***********************************************************/
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* getHydrologyValueByStation 按站点查询变量
|
|||
|
*
|
|||
|
* param int $sid 站点编号
|
|||
|
* param string $table 变量类型
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function getHydrologyValueByStation($sid,$t)
|
|||
|
{
|
|||
|
|
|||
|
$field = array(); //查询字段
|
|||
|
$order = array();
|
|||
|
|
|||
|
if(is_array($t['time']))
|
|||
|
{
|
|||
|
foreach ($t['time'] as $v)
|
|||
|
{
|
|||
|
$field[] = $v;
|
|||
|
$order[] = $v.' ASC';
|
|||
|
}
|
|||
|
}else{
|
|||
|
$field[] = $t['time'];
|
|||
|
$order[] = $t['time'].' ASC';
|
|||
|
}
|
|||
|
$t['field'] .= " as v";
|
|||
|
$field[] = $t['field'];
|
|||
|
$field[] = $t['sf'];
|
|||
|
|
|||
|
$field = join(",",$field); //拼接
|
|||
|
$order = join(',',$order);
|
|||
|
|
|||
|
|
|||
|
$sql = "select $field from {$t['table']} where {$t['sf']}='$sid' ORDER BY $order";
|
|||
|
|
|||
|
$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;
|
|||
|
|
|||
|
}// getHydrologyValueByStation 按站点查询变量
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* createHydrologyDataSet 创建水文数据
|
|||
|
*
|
|||
|
* param int $sid 站点编号
|
|||
|
* param string $valuetype 变量类型
|
|||
|
* param string $label 单位
|
|||
|
* param int $round 数值精确度,小数点后位数
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function createHydrologyDataSet($sid,$valuetype,$label,$round){
|
|||
|
|
|||
|
if(empty($label))
|
|||
|
{
|
|||
|
$label='';
|
|||
|
}
|
|||
|
|
|||
|
$varTable = array(
|
|||
|
"dp"=>array(
|
|||
|
"table"=>"hy_dp_c", //表名
|
|||
|
"field"=>"p", //值字段
|
|||
|
"sf"=>"stcd", //站点id字段
|
|||
|
"time"=>array("dt") //时间字段,数组
|
|||
|
), //日降水量
|
|||
|
"mtp"=>array(
|
|||
|
"table"=>"hy_mtp_e",
|
|||
|
"field"=>"p",
|
|||
|
"sf"=>"stcd",
|
|||
|
"time"=>array('yr','mth')
|
|||
|
), //月降水量
|
|||
|
"yrp"=>array(
|
|||
|
"table"=>"hy_yrp_f",
|
|||
|
"field"=>"p",
|
|||
|
"sf"=>"stcd",
|
|||
|
"time"=>array("yr")
|
|||
|
), //年降水量
|
|||
|
"dq"=>array(
|
|||
|
"table"=>"hy_dq_c",
|
|||
|
"field"=>"avq",
|
|||
|
"sf"=>"stcd",
|
|||
|
"time"=>array("dt")
|
|||
|
), //日平均流量
|
|||
|
"mtq"=>array(
|
|||
|
"table"=>"hy_mtq_e",
|
|||
|
"field"=>"avq",
|
|||
|
"sf"=>"stcd",
|
|||
|
"time"=>array('yr','mth')
|
|||
|
), //月平均流量
|
|||
|
"yrq"=>array(
|
|||
|
"table"=>"hy_yrq_f",
|
|||
|
"field"=>"avq",
|
|||
|
"sf"=>"stcd",
|
|||
|
"time"=>array('yr')
|
|||
|
) //年平均流量
|
|||
|
);//$varTable
|
|||
|
|
|||
|
$data = array(
|
|||
|
"name"=>"站点:$sid",
|
|||
|
"data"=>$this->getHydrologyValueByStation($sid,$varTable[$valuetype]),
|
|||
|
"tooltip"=>array(
|
|||
|
"valueDecimals"=> $round,
|
|||
|
"valueSuffix"=> $label
|
|||
|
)
|
|||
|
);
|
|||
|
|
|||
|
return $data;
|
|||
|
|
|||
|
}//createHydrologyDataSet 创建水文数据
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
* getHydrologyDataByStationId 获得水文数据变量值
|
|||
|
*
|
|||
|
* param string $valuetype 变量类型
|
|||
|
* param string $label 单位
|
|||
|
* param int $sid 站点编号,默认为空,空值将列出所有站点变量值
|
|||
|
* param int $round 数值精确度,小数点后位数
|
|||
|
*
|
|||
|
* return array
|
|||
|
*/
|
|||
|
function getHydrologyDataByStationId($valuetype,$label,$sid=0,$round=1){
|
|||
|
|
|||
|
if(empty($sid))
|
|||
|
{
|
|||
|
//降水
|
|||
|
$p = array('dp','mtp','yrp');
|
|||
|
$q = array('dq','mtq','yrq');
|
|||
|
if(in_array($valuetype,$p))
|
|||
|
{
|
|||
|
$sql = "select stcd from hy_dp_c group by stcd";
|
|||
|
}
|
|||
|
if(in_array($valuetype,$q))
|
|||
|
{
|
|||
|
$sql = "select stcd from hy_dq_c group by stcd";
|
|||
|
}
|
|||
|
|
|||
|
$sth = $this->dbh->prepare($sql);
|
|||
|
$sth->execute();
|
|||
|
$stations = $sth->fetchAll();
|
|||
|
|
|||
|
$data = array();
|
|||
|
|
|||
|
foreach ($stations as $v)
|
|||
|
{
|
|||
|
$data[] = $this->createHydrologyDataSet($v['stcd'],$valuetype,$label,$round);
|
|||
|
}
|
|||
|
|
|||
|
return $data;
|
|||
|
|
|||
|
}//所有站点
|
|||
|
|
|||
|
|
|||
|
if(is_array($sid))
|
|||
|
{
|
|||
|
foreach($sid as $v)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}//多个指定站点
|
|||
|
|
|||
|
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
}//单个站点
|
|||
|
|
|||
|
}
|
|||
|
//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() 获得环境监测数据变量的值
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//********************************************************
|
|||
|
|
|||
|
/*
|
|||
|
* dataAction() ajax获取数据
|
|||
|
*
|
|||
|
* param string $ac //请求的数据类型
|
|||
|
* param string $dt //请求的数据来源(气象,水文)
|
|||
|
*
|
|||
|
* return view
|
|||
|
*/
|
|||
|
function dataAction()
|
|||
|
{
|
|||
|
|
|||
|
$this->_helper->layout->disableLayout();
|
|||
|
$this->_helper->viewRenderer->setNoRender();
|
|||
|
|
|||
|
$ac = $this->_request->getParam('ac');
|
|||
|
$base = $this->_request->getParam('dt');
|
|||
|
|
|||
|
if(!in_array($base,array('meteorology','hydrology','ambient')))
|
|||
|
{
|
|||
|
$data = array(
|
|||
|
"error"=>"参数错误"
|
|||
|
);
|
|||
|
|
|||
|
$this->jsonexit($data);
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
$datas = array();
|
|||
|
$label = "";
|
|||
|
$title = "";
|
|||
|
$range = 0;
|
|||
|
$type = "line";
|
|||
|
|
|||
|
if($base == "meteorology")
|
|||
|
{
|
|||
|
if($ac=='temperature')
|
|||
|
{
|
|||
|
|
|||
|
$title = "日平均温度";
|
|||
|
$label = "℃";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getMeteorologyDataByStationId($ac,$label);
|
|||
|
|
|||
|
}//日平均温度
|
|||
|
|
|||
|
if($ac == 'windspeed')
|
|||
|
{
|
|||
|
|
|||
|
$title = "日平均风速";
|
|||
|
$label = "m/s";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getMeteorologyDataByStationId($ac,$label);
|
|||
|
|
|||
|
}//日平均风速 m/s
|
|||
|
|
|||
|
if($ac == 'precipitation')
|
|||
|
{
|
|||
|
|
|||
|
$title = "日合计降水量";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getMeteorologyDataByStationId($ac,$label);
|
|||
|
|
|||
|
}//日合计降水量 mm
|
|||
|
|
|||
|
if($ac == 'sunshine')
|
|||
|
{
|
|||
|
|
|||
|
$title = "日照小时数";
|
|||
|
$label = "h";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getMeteorologyDataByStationId($ac,$label);
|
|||
|
|
|||
|
}//日照小时数 h
|
|||
|
|
|||
|
}//气象数据
|
|||
|
|
|||
|
|
|||
|
if($base == 'hydrology')
|
|||
|
{
|
|||
|
if($ac == 'dp')
|
|||
|
{
|
|||
|
$title = "日降水量";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
|
|||
|
}//日降水量
|
|||
|
|
|||
|
if($ac == 'mtp')
|
|||
|
{
|
|||
|
$title = "月均降水";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
}//月均降水
|
|||
|
|
|||
|
if($ac == 'yrp')
|
|||
|
{
|
|||
|
$title = "年均降水";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
}//年均降水
|
|||
|
|
|||
|
if($ac == 'dq')
|
|||
|
{
|
|||
|
$title = "日均流量";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
if($ac == 'mtq')
|
|||
|
{
|
|||
|
$title = "月均流量";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
if($ac == 'yrq')
|
|||
|
{
|
|||
|
$title = "年均流量";
|
|||
|
$label = "mm";
|
|||
|
$type = "line";
|
|||
|
|
|||
|
$datas = $this->getHydrologyDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}//水文数据
|
|||
|
|
|||
|
|
|||
|
if($base=="ambient")
|
|||
|
{
|
|||
|
if($ac=='tsp')
|
|||
|
{
|
|||
|
$title = "总悬浮颗粒物";
|
|||
|
$label="";
|
|||
|
$type = "column";
|
|||
|
$range = 6;
|
|||
|
$datas = $this->getAmbientDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
if($ac=='pm10')
|
|||
|
{
|
|||
|
$title = "可吸入颗粒物";
|
|||
|
$label="";
|
|||
|
$type = "column";
|
|||
|
$range = 6;
|
|||
|
$datas = $this->getAmbientDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
if($ac=='so2')
|
|||
|
{
|
|||
|
$title = "二氧化硫";
|
|||
|
$label="";
|
|||
|
$type = "column";
|
|||
|
$range = 6;
|
|||
|
$datas = $this->getAmbientDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
|
|||
|
if($ac=='no2')
|
|||
|
{
|
|||
|
$title = "二氧化氮";
|
|||
|
$label="";
|
|||
|
$type = "column";
|
|||
|
$range = 6;
|
|||
|
$datas = $this->getAmbientDataByStationId($ac,$label);
|
|||
|
}
|
|||
|
}//环境监测数据
|
|||
|
|
|||
|
if(empty($range))
|
|||
|
{
|
|||
|
$range = 0;
|
|||
|
}
|
|||
|
|
|||
|
$data = array(
|
|||
|
"label"=>$label,
|
|||
|
"title"=>$title,
|
|||
|
"type"=>$type,
|
|||
|
"range"=>$range,
|
|||
|
"datas"=>$datas
|
|||
|
);
|
|||
|
|
|||
|
$this->jsonexit($data);
|
|||
|
return true;
|
|||
|
|
|||
|
}//dataAction() Ajax获取数据
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
function utcMsTime($time=''){
|
|||
|
if(empty($time))
|
|||
|
return (time()+8*3600)*1000;
|
|||
|
else
|
|||
|
return $time*1000;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
* jsonexit() 退出并返回json数据
|
|||
|
*
|
|||
|
* param array $data 要返回的JSON数据,可以是任意数组
|
|||
|
*
|
|||
|
* return application/JSON
|
|||
|
*/
|
|||
|
public function jsonexit($data){
|
|||
|
$this->getResponse()->setHeader('Content-Type', 'application/json')->appendBody(json_encode($data,JSON_NUMERIC_CHECK));
|
|||
|
return true;
|
|||
|
}//jsonexit() 退出并返回json数据
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
数据模型
|
|||
|
"data"=>array(
|
|||
|
|
|||
|
//第一条曲线
|
|||
|
"data1"=>array(
|
|||
|
"title"=>"5米风速",
|
|||
|
"unit"=>"m/s",
|
|||
|
"sensor"=>"传感器XXX",
|
|||
|
"sensor_type"=>"传感器类型",
|
|||
|
"datas"=>array(
|
|||
|
array($this->utcMsTime(),26.0),
|
|||
|
array($this->utcMsTime()+3600*1000,28.1),
|
|||
|
array($this->utcMsTime()+7200*1000,30.9),
|
|||
|
array($this->utcMsTime()+10800*1000,32.0),
|
|||
|
array($this->utcMsTime()+12800*1000,28.0),
|
|||
|
array($this->utcMsTime()+13800*1000,22.0)
|
|||
|
)
|
|||
|
),
|
|||
|
|
|||
|
|
|||
|
//第二条曲线
|
|||
|
"data2"=>array(
|
|||
|
"title"=>"10米风速",
|
|||
|
"unit"=>"m/s",
|
|||
|
"sensor"=>"传感器XXX",
|
|||
|
"sensor_type"=>"传感器类型",
|
|||
|
"datas"=>array(
|
|||
|
array($this->utcMsTime(),26.0),
|
|||
|
array($this->utcMsTime()+5600*1000,22.1),
|
|||
|
array($this->utcMsTime()+8200*1000,35.9),
|
|||
|
array($this->utcMsTime()+11800*1000,32.0),
|
|||
|
array($this->utcMsTime()+13900*1000,22.0),
|
|||
|
array($this->utcMsTime()+16800*1000,21.0)
|
|||
|
)
|
|||
|
),
|
|||
|
|
|||
|
//第三条.......
|
|||
|
)
|
|||
|
|
|||
|
*/
|
|||
|
|