File "view_edit.php"

Full path: /www/ansys/rctm/002_hitachinaka_t/map/view_edit.php
File size: 34.26 KiB (35078 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php
function retShipSimbol($point_, $direction_, $mapDegree_)
{
	$ret = -1;
	if ($direction_ == -1)
		return -1;
	
	$ret = array();
	$ret[0]["x"] = $point_["x"];
	$ret[0]["y"] = $point_["y"];
	
	$ret[1]["x"] = floor($point_["x"] + (25 * cos(deg2rad($direction_ - 90 - $mapDegree_))));
	$ret[1]["y"] = floor($point_["y"] + (25 * sin(deg2rad($direction_ - 90 - $mapDegree_))));
	
	$ret[2]["x"] = floor($point_["x"] + (12 * cos(deg2rad($direction_ - 90 - $mapDegree_))));
	$ret[2]["y"] = floor($point_["y"] + (12 * sin(deg2rad($direction_ - 90 - $mapDegree_))));
	
	$ret[3]["x"] = floor($point_["x"] + (8 * cos(deg2rad($direction_ - 90 + 120 - $mapDegree_))));
	$ret[3]["y"] = floor($point_["y"] + (8 * sin(deg2rad($direction_ - 90 + 120 - $mapDegree_))));
	
	$ret[4]["x"] = floor($point_["x"] + (8 * cos(deg2rad($direction_ - 90 - 120 - $mapDegree_))));
	$ret[4]["y"] = floor($point_["y"] + (8 * sin(deg2rad($direction_ - 90 - 120 - $mapDegree_))));
	
	return $ret;
}

function deleteFile($dir)
{
	if (!$handle=opendir($dir))
		return;
	while($filename=readdir($handle))
	{
		if(!preg_match("/^\./", $filename))
		{
			if (!unlink("$dir/$filename"));
			return;
		}
	}
}

function ColorConvert($colorcode)
{
	$colorcode = preg_replace("/#/", "", $colorcode);
	$ColorC[0] = hexdec(substr($colorcode, 0, 2));
	$ColorC[1] = hexdec(substr($colorcode, 2, 2));
	$ColorC[2] = hexdec(substr($colorcode, 4, 2));
	
	return $ColorC;
}


//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
//	自動でクラスを参照する
//	関数名	:	__autoload()
//	備考	:	参照先は./class/XXX.phpとする
//	更新	:	2012/10/19 KMK-Teraoka
//-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
function __autoload($className)
{
	$fPath = "./class/" . str_replace("_", "/", $className) . ".php";
	require_once $fPath;
}

//===============================================
//	DEBUG_MODE
//	備考		:	
//	更新		:	2012/10/19 KMK-Teraoka
//===============================================
define("DEBUG_MODE", "0");
Debug::setMode(DEBUG_MODE);
if (DEBUG_MODE == 1)
{
	Stopwatch::start();
}

extract($_POST);
//print_r($_POST);


//===============================================
//	CommonUtilities
//	備考		:	
//	更新		:	2012/11/29 KMK-Teraoka
//===============================================
$SCRIPT_TITLE = "船舶位置管理システム -船舶位置確認-";
$PENTA_OCEAN = "五洋・菅原特定建設工事共同企業体";
$TAIL_PENTA_OCEAN = "penta-ocean";

$HOST = "192.168.100.153";
$DB = "ansys";
$USER = "postgres";
$PASS = "am#71ZJ*";
$LOG_FILE = "./log/view.log";

$CONST_ID = 12;
$APPLICATION_ID = 22;
$MAP_NAME = "./scmap/orig.png";
$MAP_NAME_ZOOM = "./scmap/webpage2.png";
$ZOOM_MAP_DEGREE = 36.029;

$R_VAL = array(255, 204, 204, 204, 204, 153, 153, 100, 102, 102, 255, 153);
$G_VAL = array(102, 255, 102, 153, 255,   0,  51,   0, 204,  51,   0, 153);
$B_VAL = array(  0,   0, 102, 255, 255,  51, 255,   0, 153, 255, 153,   0);

$ENABLE_SEC = 600;
$ENABLE_DATETIME = date("Y-m-d H:i:s", time() - $ENABLE_SEC);


//================================================
//	データベース接続
//	備考		:	
//	更新		:	2012/11/29 KMK-Teraoka
//================================================
$conn = pg_connect("
	host	=	". $HOST. "
	dbname	=	". $DB. "
	user	=	". $USER. "
	password=	". $PASS. "
");
if (!$conn)
{
	throw new Exception("データベースへの接続に失敗しました");
}

//===============================================
//	HTML-HEAD-
//	備考		:	
//	更新		:	2012/10/18 KMK-Teraoka
//===============================================
print "<html>";
print "<head>";
//print "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">";
//print "<meta http-equiv=\"Refresh\" content=\"30\">";
print "<link rel=\"stylesheet\" type=\"text/css\" href=\"/ansys/config/css/style.css\">";
print "<link rel=\"shortcut icon\" href=\"/ansys/config/favicon.ico\">";
print "<title>". $SCRIPT_TITLE. "</title>";

//print "<script src='./lib/jquery-2.0.3/jquery-2.0.3.min.js'></script>";
//print "<script src='./lib/jquery-ui-1.10.3/jquery-ui.min.js'></script>";
//print "<script src='./lib/three-67/three.min.js'></script>";
//print "<script src='./lib/three-67/TrackballControls_kmkt.js'></script>";
//print "<script src='./lib/three-67/helvetiker_bold.typeface.js'></script>";
//print "<script src='./lib/jquery-cookie/jquery.cookie.js'></script>";

print "</head>";

//===============================================
//	HTML-BODY部開始-
//	備考		:	
//	更新		:	2012/10/18 KMK-Teraoka
//===============================================
print "<body>";

print "<center>";
print "<font size=\"3\">";

print "<b>";
print "". $SCRIPT_TITLE. "<br>";
print "</b>";
print "</font>";
print "</center>";

	if(!strcmp($close,"閉じる")) print "<script language='javascript' type='text/javascript'>self.close();</script>";
		

//	print "<script language='javascript' type='text/javascript'>self.close();</script>";


try
{
	// tmpディレクトリ内のファイルを削除
	deleteFile("./tmp");
	
	$_log = new Log($LOG_FILE);
	
	// ===============================================
	// 画像情報の取得
	// 備考		:	
	// 更新		:	2012/11/29 KMK-Teraoka
	// ===============================================
	$imgSize = getimagesize($MAP_NAME);
	$zoomImgSize = getimagesize($MAP_NAME_ZOOM);
	$imgFileName = "./tmp/". $CONST_ID. "_". $APPLICATION_ID. "_". md5(uniqid(rand(), true)) .image_type_to_extension($imgSize[2]);
	
	$AreaFileName = "./area.txt";

	if(!strcmp($save,"保存"))
	{
		if($upid == 0)
		{
			if(!$Lat1) $Lat1 = "NULL";
			if(!$Lon1) $Lon1 = "NULL";
			if(!$Lat2) $Lat2 = "NULL";
			if(!$Lon2) $Lon2 = "NULL";
			if(!$Lat3) $Lat3 = "NULL";
			if(!$Lon3) $Lon3 = "NULL";
			if(!$Lat4) $Lat4 = "NULL";
			if(!$Lon4) $Lon4 = "NULL";
			if(!$Lat5) $Lat5 = "NULL";
			if(!$Lon5) $Lon5 = "NULL";
			if(!$Lat6) $Lat6 = "NULL";
			if(!$Lon6) $Lon6 = "NULL";
			if(!$Lat7) $Lat7 = "NULL";
			if(!$Lon7) $Lon7 = "NULL";
			if(!$Lat8) $Lat8 = "NULL";
			if(!$Lon8) $Lon8 = "NULL";
			if(!$Lat9) $Lat9 = "NULL";
			if(!$Lon9) $Lon9 = "NULL";
			if(!$Lat10) $Lat10 = "NULL";
			if(!$Lon10) $Lon10 = "NULL";
			
			$insArea = "INSERT INTO qgis.area_status_t (";
	        $insArea .= "const_id, app_id, area_name, area_file_name, legend_color,";
	        $insArea .= "lat1, lon1, lat2, lon2, lat3, lon3, lat4, lon4, lat5, lon5, lat6,";
	        $insArea .= "lon6, lat7, lon7, lat8, lon8, lat9, lon9, lat10, lon10, del_flg,";
	        $insArea .= "upddatetime, regdatetime) VALUES (";
	        $insArea .= $CONST_ID ."," .$APPLICATION_ID .",'" .$AreaName ."'," ."'area.txt'" .",'" .$colorset ."',";
			$insArea .= $Lat1 ."," .$Lon1 .",";
			$insArea .= $Lat2 ."," .$Lon2 .",";
			$insArea .= $Lat3 ."," .$Lon3 .",";
			$insArea .= $Lat4 ."," .$Lon4 .",";
			$insArea .= $Lat5 ."," .$Lon5 .",";
			$insArea .= $Lat6 ."," .$Lon6 .",";
			$insArea .= $Lat7 ."," .$Lon7 .",";
			$insArea .= $Lat8 ."," .$Lon8 .",";
			$insArea .= $Lat9 ."," .$Lon9 .",";
			$insArea .= $Lat10 ."," .$Lon10 .",";
	        $insArea .="'FALSE', current_timestamp, current_timestamp)";
			$insArea .= ";";
//			print $insArea ."<BR>";
			
			if (!($resData = pg_query($conn, $insArea)))
			{
//				throw new Exception("データの登録に失敗しました<br />". $insArea. "<br />". pg_last_error(). "<br />");
			}
		}
		else
		{
			if(!$Lat3)
			{
				$selArea = "SELECT * FROM qgis.area_status_t";
				$selArea .= " WHERE list_id=". $upid. ";";
				$selArea .= ";";
				if (!($resArea = pg_query($conn, $selArea)))
				{
					//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
					//print pg_last_error() ;
				}
				$rowArea = pg_fetch_array($resArea, 0, PGSQL_ASSOC);

				if($rowArea['lat1']) $Lat1 = $rowArea['lat1'];
				if($rowArea['lon1']) $Lon1 = $rowArea['lon1'];
				if($rowArea['lat2']) $Lat2 = $rowArea['lat2'];
				if($rowArea['lon2']) $Lon2 = $rowArea['lon2'];
				if($rowArea['lat3']) $Lat3 = $rowArea['lat3'];
				if($rowArea['lon3']) $Lon3 = $rowArea['lon3'];
				if($rowArea['lat4']) $Lat4 = $rowArea['lat4'];
				if($rowArea['lon4']) $Lon4 = $rowArea['lon4'];
				if($rowArea['lat5']) $Lat5 = $rowArea['lat5'];
				if($rowArea['lon5']) $Lon5 = $rowArea['lon5'];
				if($rowArea['lat6']) $Lat6 = $rowArea['lat6'];
				if($rowArea['lon6']) $Lon6 = $rowArea['lon6'];
				if($rowArea['lat7']) $Lat7 = $rowArea['lat7'];
				if($rowArea['lon7']) $Lon7 = $rowArea['lon7'];
				if($rowArea['lat8']) $Lat8 = $rowArea['lat8'];
				if($rowArea['lon8']) $Lon8 = $rowArea['lon8'];
				if($rowArea['lat9']) $Lat9 = $rowArea['lat9'];
				if($rowArea['lon9']) $Lon9 = $rowArea['lon9'];
				if($rowArea['lat10']) $Lat10 = $rowArea['lat10'];
				if($rowArea['lon10']) $Lon10 = $rowArea['lon10'];
			}
			
			if(!$Lat1) $Lat1 = "NULL";
			if(!$Lon1) $Lon1 = "NULL";
			if(!$Lat2) $Lat2 = "NULL";
			if(!$Lon2) $Lon2 = "NULL";
			if(!$Lat3) $Lat3 = "NULL";
			if(!$Lon3) $Lon3 = "NULL";
			if(!$Lat4) $Lat4 = "NULL";
			if(!$Lon4) $Lon4 = "NULL";
			if(!$Lat5) $Lat5 = "NULL";
			if(!$Lon5) $Lon5 = "NULL";
			if(!$Lat6) $Lat6 = "NULL";
			if(!$Lon6) $Lon6 = "NULL";
			if(!$Lat7) $Lat7 = "NULL";
			if(!$Lon7) $Lon7 = "NULL";
			if(!$Lat8) $Lat8 = "NULL";
			if(!$Lon8) $Lon8 = "NULL";
			if(!$Lat9) $Lat9 = "NULL";
			if(!$Lon9) $Lon9 = "NULL";
			if(!$Lat10) $Lat10 = "NULL";
			if(!$Lon10) $Lon10 = "NULL";

			$upArea = "UPDATE qgis.area_status_t SET ";
			$upArea .= "area_name = '" .$AreaName ."',";
			$upArea .= "legend_color='" .$colorset ."',";
			$upArea .= "lat1=" .$Lat1 .",lon1=" .$Lon1 .",";
			$upArea .= "lat2=" .$Lat2 .",lon2=" .$Lon2 .",";
			$upArea .= "lat3=" .$Lat3 .",lon3=" .$Lon3 .",";
			$upArea .= "lat4=" .$Lat4 .",lon4=" .$Lon4 .",";
			$upArea .= "lat5=" .$Lat5 .",lon5=" .$Lon5 .",";
			$upArea .= "lat6=" .$Lat6 .",lon6=" .$Lon6 .",";
			$upArea .= "lat7=" .$Lat7 .",lon7=" .$Lon7 .",";
			$upArea .= "lat8=" .$Lat8 .",lon8=" .$Lon8 .",";
			$upArea .= "lat9=" .$Lat9 .",lon9=" .$Lon9 .",";
			$upArea .= "lat10=" .$Lat10 .",lon10=" .$Lon10 .",";
			$upArea .= "upddatetime=" ."current_timestamp";
			$upArea .= " WHERE list_id =" .$upid .";";
			
//			print $upArea ."<BR>";
			if (!($resData = pg_query($conn, $upArea)))
			{
//				print  pg_last_error(). "<br />";
//				throw new Exception("データの登録に失敗しました<br />". $insArea. "<br />". pg_last_error(). "<br />");
			}

		}

		$selArea = "SELECT * FROM qgis.area_status_t";
		$selArea .= " WHERE const_id='". $CONST_ID. "'";
		$selArea .= " AND app_id='". $APPLICATION_ID. "'";
		$selArea .= " AND del_flg = FALSE";
		$selArea .= " ORDER BY list_id";
		$selArea .= ";";
		if (!($resArea = pg_query($conn, $selArea)))
		{
			//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
			//print pg_last_error() ;
		}
		
		$rowA = pg_num_rows($resArea);
		$fp = fopen($AreaFileName, "w");

		for($iCount = 0; $iCount < $rowA; $iCount++)
		{
			$rowArea = pg_fetch_array($resArea, $iCount, PGSQL_ASSOC);
			
			$OutputData .= $rowArea['lat1'] ."," .$rowArea['lon1'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color']."," .$rowArea['area_name'];
			$OutputData .= "#" .$rowArea['lat2'] ."," .$rowArea['lon2'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color']."," .$rowArea['area_name'];
			$OutputData .= "#" .$rowArea['lat3'] ."," .$rowArea['lon3'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'];
			$OutputData .= ($rowArea['lat4']) ? "#" .$rowArea['lat4'] ."," .$rowArea['lon4'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat5']) ? "#" .$rowArea['lat5'] ."," .$rowArea['lon5'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat6']) ? "#" .$rowArea['lat6'] ."," .$rowArea['lon6'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat7']) ? "#" .$rowArea['lat7'] ."," .$rowArea['lon7'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat8']) ? "#" .$rowArea['lat8'] ."," .$rowArea['lon8'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat9']) ? "#" .$rowArea['lat9'] ."," .$rowArea['lon9'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";
			$OutputData .= ($rowArea['lat10']) ? "#" .$rowArea['lat10'] ."," .$rowArea['lon10'] ."," .$rowArea['list_id'] ."," .$rowArea['legend_color'] ."," .$rowArea['area_name'] :"";

			if(($rowA-1) != $iCount) $OutputData .= "#";
		}
		fwrite($fp, $OutputData);
		fclose($fp);

		print "<script language='javascript' type='text/javascript'>self.close();</script>";
	}
	
	
	//20151001 追加
	

	
	// ===============================================
	// 基準点情報
	// 備考		:	
	// 更新		:	2012/11/29 KMK-Teraoka
	// ===============================================
//	$ltLon = 139.793416;						//経度(左上)
//	$ltLat =  35.592797;						//緯度(左上)
//	$rbLon = 139.981100;						//経度(右下)
//	$rbLat =  35.666697;						//緯度(右下)
	
//	$ltX =  149;								// 左上X座標
//	$ltY =  486;								// 左上Y座標
//	$rbX = 1010;								// 右下X座標
//	$rbY =   71;								// 右下Y座標

	$ltLon = 140.62380;						//経度(左上)
	$ltLat =  36.42613;						//緯度(左上)
	$rbLon = 140.61533;						//経度(右下)
	$rbLat =  36.41504;						//緯度(右下)
	
	$ltX =  112;								// 左上X座標
	$ltY =  359;								// 左上Y座標
	$rbX = 929;								// 右下X座標
	$rbY = 854;								// 右下Y座標


	$diffX = $rbX - $ltX;						// X座標ピクセルの差を求める
	$diffY = $rbY - $ltY;						// Y座標ピクセルの差を求める
	
	$spX = number_format(($rbLat - $ltLat) / $diffX, 10);		// X座標の倍率を求める
//	$spY = number_format(($ltLat - $rbLat) / $diffY, 10);		// Y座標の倍率を求める
	$spY = number_format(($rbLon - $ltLon) / $diffY, 10);		// Y座標の倍率を求める

	// ===============================================
	// GD処理準備
	// 備考		:	
	// 更新		:	2010/09/08 KMK T.Teraoka
	// ===============================================
	$src = ImageCreateFromPNG($MAP_NAME);						//パレットへ貼り付ける画像指定(地図画像)
	$img = imagecreatetruecolor($imgSize[0], $imgSize[1]);			//パレットの作成
	imagecopy($img, $src, 0, 0, 0, 0, $imgSize[0], $imgSize[1]);	//画像をパレットへ貼り付け
	
	$font1 = "/usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf";
	imagesetthickness($img, $THIC);
	imagesetthickness($img, $THIC);
	
	// 使用色の準備
	$Black = imagecolorallocate($img, 0,0,0);
	$White = imagecolorallocate($img, 255, 255, 255);
	
	// 更新時間をマップに表示する
	//$update = date("H:i:s" ,time());
	//imagefilledpolygon($img, array(10, 10, 10, 20, 55, 20, 55, 10), 4, $White);
	//ImageTTFText ($img, 8, 0, 10, 20, $Black, $font1, $update);
	


//20151001
//		print_r($Area);
	if(!strcmp($preview,"プレビュー"))
	{
		if($Lat1 && $Lon1 && $Lat2 && $Lon2 && $Lat3 && $Lon3)
		{
			$Predata = $Lat1 ."," .$Lon1 ."#" .$Lat2 ."," .$Lon2 ."#" .$Lat3 ."," .$Lon3;
			if($Lat4 && $Lon4) $Predata .= "#" .$Lat4 ."," .$Lon4;
			if($Lat5 && $Lon5) $Predata .= "#" .$Lat5 ."," .$Lon5;
			if($Lat6 && $Lon6) $Predata .= "#" .$Lat6 ."," .$Lon6;
			if($Lat7 && $Lon7) $Predata .= "#" .$Lat7 ."," .$Lon7;
			if($Lat8 && $Lon8) $Predata .= "#" .$Lat8 ."," .$Lon8;
			if($Lat9 && $Lon9) $Predata .= "#" .$Lat9 ."," .$Lon9;
			if($Lat10 && $Lon10) $Predata .= "#" .$Lat10 ."," .$Lon10;
			
			//print_r($Predata);
			
			$AreaData = $Predata;
			$Area = split("#", $AreaData);
			$Act = count($Area);

			$colorcode = $colorset;
			$SetColor = ColorConvert($colorcode);
			$AreaCol = imagecolorallocate($img, $SetColor[0],$SetColor[1],$SetColor[2]);
			$redAlpha = imagecolorallocatealpha($img, $SetColor[0],$SetColor[1],$SetColor[2], 75);
			if($Act > 2)
			{
				//ImageTTFText($img, 12, 0, 500, 500, $Black, $font1, count($Area));
				$values = array();
				for($AA = 0;$AA < $Act;$AA++)
				{
					$Adata =split(",", $Area[$AA]);
					$values[] = ($Adata[0]-$ltLat) / $spX + $ltX;
					$values[] = ($Adata[1]- $ltLon) / $spY + $ltY;
				}
				imagefilledpolygon($img, $values, $Act, $redAlpha);
				imagepolygon($img, $values, $Act, $AreaCol);
			}

		}
		else
		{
			$selArea = "SELECT * FROM qgis.area_status_t";
			$selArea .= " WHERE list_id=". $upid. ";";
			$selArea .= ";";
			if (!($resArea = pg_query($conn, $selArea)))
			{
				//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
				//print pg_last_error() ;
			}
			$rowArea = pg_fetch_array($resArea, 0, PGSQL_ASSOC);

			if($rowArea['lat1']) $Lat1 = $rowArea['lat1'];
			if($rowArea['lon1']) $Lon1 = $rowArea['lon1'];
			if($rowArea['lat2']) $Lat2 = $rowArea['lat2'];
			if($rowArea['lon2']) $Lon2 = $rowArea['lon2'];
			if($rowArea['lat3']) $Lat3 = $rowArea['lat3'];
			if($rowArea['lon3']) $Lon3 = $rowArea['lon3'];
			if($rowArea['lat4']) $Lat4 = $rowArea['lat4'];
			if($rowArea['lon4']) $Lon4 = $rowArea['lon4'];
			if($rowArea['lat5']) $Lat5 = $rowArea['lat5'];
			if($rowArea['lon5']) $Lon5 = $rowArea['lon5'];
			if($rowArea['lat6']) $Lat6 = $rowArea['lat6'];
			if($rowArea['lon6']) $Lon6 = $rowArea['lon6'];
			if($rowArea['lat7']) $Lat7 = $rowArea['lat7'];
			if($rowArea['lon7']) $Lon7 = $rowArea['lon7'];
			if($rowArea['lat8']) $Lat8 = $rowArea['lat8'];
			if($rowArea['lon8']) $Lon8 = $rowArea['lon8'];
			if($rowArea['lat9']) $Lat9 = $rowArea['lat9'];
			if($rowArea['lon9']) $Lon9 = $rowArea['lon9'];
			if($rowArea['lat10']) $Lat10 = $rowArea['lat10'];
			if($rowArea['lon10']) $Lon10 = $rowArea['lon10'];
			
			$revLegnd = $colorset;
		}

	}
//20151019 追加
	if($upid > 0)
	{
		$selArea = "SELECT * FROM qgis.area_status_t";
		$selArea .= " WHERE list_id=". $upid. ";";
		$selArea .= ";";
		if (!($resArea = pg_query($conn, $selArea)))
		{
			//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
			//print pg_last_error() ;
		}
		$rowArea = pg_fetch_array($resArea, 0, PGSQL_ASSOC);
		
		$Predata0 = $rowArea['lat1'] ."," .$rowArea['lon1'] ."#" .$rowArea['lat2'] ."," .$rowArea['lon2'] ."#" .$rowArea['lat3'] ."," .$rowArea['lon3'];
		if($rowArea['lat4'] && $rowArea['lon4']) $Predata0 .= "#" .$rowArea['lat4'] ."," .$rowArea['lon4'];
		if($rowArea['lat5'] && $rowArea['lon5']) $Predata0 .= "#" .$rowArea['lat5'] ."," .$rowArea['lon5'];
		if($rowArea['lat6'] && $rowArea['lon6']) $Predata0 .= "#" .$rowArea['lat6'] ."," .$rowArea['lon6'];
		if($rowArea['lat7'] && $rowArea['lon7']) $Predata0 .= "#" .$rowArea['lat7'] ."," .$rowArea['lon7'];
		if($rowArea['lat8'] && $rowArea['lon8']) $Predata0 .= "#" .$rowArea['lat8'] ."," .$rowArea['lon8'];
		if($rowArea['lat9'] && $rowArea['lon9']) $Predata0 .= "#" .$rowArea['lat9'] ."," .$rowArea['lon9'];
		if($rowArea['lat10'] && $rowArea['lon10']) $Predata0 .= "#" .$rowArea['lat10'] ."," .$rowArea['lon10'];
		
		//print_r($Predata0);
		$AreaData = $Predata0;
//		print_r($AreaData);
		$Area = split("#", $AreaData);
		$Act = count($Area);
		$colorcode = $colorset;
		if(!$revLegnd)
		{
			$SetColor = ColorConvert($rowArea['legend_color']);
		}
		else
		{
			$SetColor = ColorConvert($revLegnd);
		}
		
		$AreaCol = imagecolorallocate($img, $SetColor[0],$SetColor[1],$SetColor[2]);
		$redAlpha = imagecolorallocatealpha($img, $SetColor[0],$SetColor[1],$SetColor[2], 75);
		
		//ImageTTFText($img, 12, 0, 500, 500, $Black, $font1, count($Area));
		$values = array();
		for($AA = 0;$AA < $Act;$AA++)
		{
			$Adata =split(",", $Area[$AA]);
			$values[] = ($Adata[0]-$ltLat) / $spX + $ltX;
			$values[] = ($Adata[1]- $ltLon) / $spY + $ltY;
		}
		
		imagefilledpolygon($img, $values, $Act, $redAlpha);
		imagepolygon($img, $values, $Act, $AreaCol);
	}



	// ===============================================
	// 位置を取得する
	// 備考		:	
	// 更新		:	2012/11/29 KMK T.Teraoka
	// ===============================================
	$RTime = date("Y-m-d H:i:s" ,time() - 600);
	$selTerm = "SELECT * FROM qgis.ts_terminal";
	$selTerm .= " WHERE const_id='". $CONST_ID. "'";
	$selTerm .= " AND app_id='". $APPLICATION_ID. "'";
	//$selTerm .= " AND mesdatetime >= '". $ENABLE_DATETIME. "'";
	$selTerm .= " AND mesdatetime > '". $RTime. "'";
	$selTerm .= " ORDER BY android_id";
	$selTerm .= ";";
	//$_log->write($selTerm. "\n");
	if (!($resTerm = pg_query($conn, $selTerm)))
	{
		throw new Exception("データ取得に失敗<br />". $resTerm. "<br />". pg_last_error(). "<br />");
	}
	
	$shipCol = imagecolorallocate($img, 255, 165, 0);
	$zmShipCol = imagecolorallocate($img, 255, 165, 0);
	$zmSyunCol = imagecolorallocate($img, 0, 102, 253);
	
	$row = pg_num_rows($resTerm);
	for($iCount = 0; $iCount < $row; $iCount++)
	{
		$rowTerm = pg_fetch_array($resTerm, $iCount, PGSQL_ASSOC);
		
		//var_dump($rowTerm);
		if (0 != strcmp($rowTerm["lat"], "") && 0 != strcmp($rowTerm["lon"], "") && strcmp($rowTerm["android_id"], "8041c3ba7d4843c1") != 0)
		{
			if (strcmp($rowTerm["android_id"], "a237b48012d8873e") != 0 && strcmp($rowTerm["android_id"], "26f784b2293665d0") != 0 && strcmp($rowTerm["android_id"], "db9739dd1cfbc823") != 0)
			{
				$point = array();
//				$point["x"] = ($rowTerm["lon"] - $ltLon) / $spX + $ltX;
//				$point["y"] = ($ltLat - $rowTerm["lat"]) / $spY + $ltY;
				$point["x"] = ($rowTerm["lat"] - $ltLat) / $spX + $ltX;
				$point["y"] = ($rowTerm["lon"] - $ltLon) / $spY + $ltY;
				
//				$rowTerm["lon"] = $point["x"] * $spX - $ltX * $spX + $ltLon;
//				$rowTerm["lat"] = $ltLat - $point["y"] * $spY + $ltY*$spY
				
				$shipSimbol = retShipSimbol($point, $rowTerm["direction"], 0);
				if ($shipSimbol == -1)
				{
					$ellipSize = 8;
					imagefilledellipse($img, $point["x"], $point["y"], $ellipSize, $ellipSize, $shipCol);
				}
				else
				{
					imageline($img, $shipSimbol[0]["x"], $shipSimbol[0]["y"], $shipSimbol[1]["x"], $shipSimbol[1]["y"], $shipCol);
					imageline($img, $shipSimbol[2]["x"], $shipSimbol[2]["y"], $shipSimbol[3]["x"], $shipSimbol[3]["y"], $shipCol);
					imageline($img, $shipSimbol[3]["x"], $shipSimbol[3]["y"], $shipSimbol[4]["x"], $shipSimbol[4]["y"], $shipCol);
					imageline($img, $shipSimbol[4]["x"], $shipSimbol[4]["y"], $shipSimbol[2]["x"], $shipSimbol[2]["y"], $shipCol);
				}
				
				$length = strlen($rowTerm["terminal_name"]);
				imagefilledrectangle($img, $point["x"] + 5, $point["y"] - 45, $point["x"] + 5 + ($length * 8), $point["y"] - 22, $White);
				imagerectangle($img, $point["x"] + 5, $point["y"] - 45, $point["x"] + 5 + ($length * 8), $point["y"] - 22, $shipCol);
				ImageTTFText($img, 12, 0, $point["x"] + 15, $point["y"] - 27, $Black, $font1, $rowTerm["terminal_name"]);
			}
		}
	}
	
	// ===============================================
	// 描画した画像を保存 & パレットを削除
	// 備考		:	
	// 更新		:	2010/09/08 KMK T.Teraoka
	// ===============================================
	imagepng($img, $imgFileName);
	imagedestroy($img);
	imagedestroy($src);
	
	// ===============================================
	// 上で保存した画像を表示
	// 備考		:	
	// 更新		:	2010/09/08 KMK T.Teraoka
	// ===============================================
	print "<table border=\"0\" bgcolor=\"#000000\" cellspacing=\"0\" cellpadding=\"0\" ALIGN='center'>";
	print "<tr>";
	print "<td>";
	print "<table border=\"0\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"0\">";
	print "<tr>";
	print "<td>";
	print "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\">";
	print "<tr bgcolor=\"#FFFFFF\">";
	print "<td align=\"left\">";
//	print "<img src=\"". $imgFileName. "?t=$now_t\" galleryimg=\"no\" width=\"881\" height=\"590\">";
//	print "<img src=\"". $imgFileName. "?t=$now_t\" galleryimg=\"no\" width=\"945\" height=\"1022\">";
	print  "<canvas id='canvas' width='945'height='1022'></canvas>";
	print "</td>";
	print "<td align=\"left\" valign=\"top\">";

//////////////////////


?>
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
       draw();
        /**
         * canvas 操作用の context を取得する。
         */
         var flag = 1;
         
        function getCtx() {
          var canvas = document.getElementById('canvas');
          return canvas.getContext('2d');
        };

	function draw() {
		flag = 1;
		var ctx2 = getCtx();
	  if ( ! canvas || ! canvas.getContext ) { return false; }
	  /* Imageオブジェクトを生成 */
	  var img = new Image();
	  img.src = "<?php echo $imgFileName; ?>";
	  /* 画像が読み込まれるのを待ってから処理を続行 */
	  img.onload = function() {
	    ctx2.drawImage(img, 0, 0);
	  };
	  };


        /**
         * canvas 内のクリックした座標に青薄色の四角形を描画する
         */
      
        function drawRectAtClickedPos(ev)
        {
          // クリックした座標を取得する。
          var posX = ev.offsetX,
              posY = ev.offsetY;
          var ctx = getCtx();
          var posXc = posX * <?php echo $spX; ?> - <?php echo $ltX; ?> * <?php echo $spX; ?> + <?php echo $ltLat; ?> ;
          var posYc = posY * <?php echo $spY; ?> - <?php echo $ltY; ?> * <?php echo $spY; ?> + <?php echo $ltLon; ?> ;
          // クリックした箇所に半透明の青色の四角を描画する。
          ctx.fillStyle = 'rgba(255, 0, 0, 0.5)';
          ctx.fillRect(posX, posY, 10, 10);
          ctx.fillText(flag,posX-5,posY-5);
 //         ctx.fillText(posXc,posX-5,posY-20);
 //         ctx.fillText(posYc,posX-5,posY-30);
			
			if(flag == 1)
			{
				document.area.Lat1.value=posXc;
				document.area.Lon1.value=posYc;
				document.area.preview.disabled=true;
				document.area.save.disabled=true;
			}
			else if(flag == 2)
			{
				document.area.Lat2.value=posXc;
				document.area.Lon2.value=posYc;
			}
			else if(flag == 3)
			{
				document.area.Lat3.value=posXc;
				document.area.Lon3.value=posYc;
				document.area.preview.disabled=false;
				document.area.save.disabled=false;
			}
			else if(flag == 4)
			{
				document.area.Lat4.value=posXc;
				document.area.Lon4.value=posYc;
			}
			else if(flag == 5)
			{
				document.area.Lat5.value=posXc;
				document.area.Lon5.value=posYc;
			}
			else if(flag == 6)
			{
				document.area.Lat6.value=posXc;
				document.area.Lon6.value=posYc;
			}
			else if(flag == 7)
			{
				document.area.Lat7.value=posXc;
				document.area.Lon7.value=posYc;
			}
			else if(flag == 8)
			{
				document.area.Lat8.value=posXc;
				document.area.Lon8.value=posYc;
			}
			else if(flag == 9)
			{
				document.area.Lat9.value=posXc;
				document.area.Lon9.value=posYc;
			}
			else if(flag == 10)
			{
				document.area.Lat10.value=posXc;
				document.area.Lon10.value=posYc;
			}
          flag = flag+1;
          
        };

        // canvas のクリックに紐付ける。
        $('canvas').click(drawRectAtClickedPos);
</script>

<?php

print "<br />";

	// ===============================================
	// 帳票出力Formの作成
	// 備考		:	
	// 更新		:	2013/06/17 KMK T.Teraoka
	// ===============================================
	//	print "<form action=\"". "view_edit.php"." name='area'" ." method=\"post\" style=\"display:inline\">";
	//$upid = 1;
	$Dis = "disabled";
	if($upid > 0)
	{
		print "<B><FONT SIZE='5'>編集中のデータ</FONT><B><BR>";
		print "エリア名称:" .$rowArea['area_name'] ."<BR>";
		print "塗りつぶし:" ."<FONT COLOR='#".$rowArea['legend_color'] ."' size ='6'>■</FONT>";
		print "<BR><BR>";
		$AreaName = ($AreaName) ? $AreaName :$rowArea['area_name'];
		$Dis = "";
		if(strcmp($preview,"プレビュー")) $colorset = $rowArea['legend_color'];
	}
	else
	{
		if (!strcmp($preview,"プレビュー"))$Dis = "";
	}
	


	print "<form action=\"". "view_edit.php". "\" name='area' method=\"post\" style=\"display:inline\">";
	print "<input type=\"submit\" name=\"preview\"" .$Dis." value=\"プレビュー\" style=\"width:65px\">";
	print "<input type='submit' value='リセット'>";
	print "<input type=\"submit\" name=\"save\"" .$Dis." value=\"保存\" style=\"width:65px\">";
	print "<input type=\"submit\" name=\"close\" value=\"閉じる\" style=\"width:65px\">";
	

	print "<BR><BR>";
	print "<B><FONT SIZE='3'>エリア名称</FONT><B><BR>";
	print "<input type=\"text\" name=\"AreaName\" maxlength=\"20\" style=\"width:100px\" value='" .$AreaName ."'>";
	print "<BR><BR>";
	print "<B><FONT SIZE='3'>塗りつぶし</FONT><B><BR>";

	$chk = array();
	$chk[0] = (!strcmp($colorset, "ff0000" )) ? "checked" : ""; 
	$chk[1] = (!strcmp($colorset, "0000ff" )) ? "checked" : ""; 
	$chk[2] = (!strcmp($colorset, "00ff7f" )) ? "checked" : ""; 
	$chk[3] = (!strcmp($colorset, "ffa500" )) ? "checked" : ""; 
	$chk[4] = (!strcmp($colorset, "8a2be2" )) ? "checked" : ""; 
	$chk[5] = (!strcmp($colorset, "f08080" )) ? "checked" : ""; 
	$chk[6] = (!strcmp($colorset, "00bfff" )) ? "checked" : ""; 
	$chk[7] = (!strcmp($colorset, "800000" )) ? "checked" : ""; 
	$chk[8] = (!strcmp($colorset, "2f4f4f" )) ? "checked" : ""; 
	$chk[9] = (!strcmp($colorset, "ffff00" )) ? "checked" : ""; 
	$chk[10] = (!strcmp($colorset, "008000" )) ? "checked" : ""; 
	$chk[11] = (!strcmp($colorset, "ff1493" )) ? "checked" : ""; 
	if(!$colorset) $chk[0] = "checked";

	print "<input name='colorset' type='radio' value='ff0000' " .$chk[0] ."><FONT COLOR='#ff0000' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='0000ff' " .$chk[1] ."><FONT COLOR='#0000ff' size ='6'>■</FONT>";
	print "<BR>";
	print "<input name='colorset' type='radio' value='00ff7f' " .$chk[2] ."><FONT COLOR='#00ff7f' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='ffa500' " .$chk[3] ."><FONT COLOR='#ffa500' size ='6'>■</FONT>";
	print "<BR>";
	print "<input name='colorset' type='radio' value='8a2be2' " .$chk[4] ."><FONT COLOR='#8a2be2' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='f08080' " .$chk[5] ."><FONT COLOR='#f08080' size ='6'>■</FONT>";
	print "<BR>";
	print "<input name='colorset' type='radio' value='00bfff' " .$chk[6] ."><FONT COLOR='#00bfff' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='800000' " .$chk[7] ."><FONT COLOR='#800000' size ='6'>■</FONT>";
	print "<BR>";
	print "<input name='colorset' type='radio' value='2f4f4f' " .$chk[8] ."><FONT COLOR='#2f4f4f' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='ffff00' " .$chk[9] ."><FONT COLOR='#ffff00' size ='6'>■</FONT>";
	print "<BR>";
	print "<input name='colorset' type='radio' value='008000' " .$chk[10] ."><FONT COLOR='#008000' size ='6'>■</FONT>";
	print "&nbsp;&nbsp;&nbsp;&nbsp;";
	print "<input name='colorset' type='radio' value='ff1493' " .$chk[11] ."><FONT COLOR='#ff1493' size ='6'>■</FONT>";
	print "<BR>";
	print "<BR>";

	if(!$Predata)
	{
		print "<input type=\"hidden\" name=\"Lat1\">";
		print "<input type=\"hidden\" name=\"Lon1\">";
		print "<input type=\"hidden\" name=\"Lat2\">";
		print "<input type=\"hidden\" name=\"Lon2\">";
		print "<input type=\"hidden\" name=\"Lat3\">";
		print "<input type=\"hidden\" name=\"Lon3\">";
		print "<input type=\"hidden\" name=\"Lat4\">";
		print "<input type=\"hidden\" name=\"Lon4\">";
		print "<input type=\"hidden\" name=\"Lat5\">";
		print "<input type=\"hidden\" name=\"Lon5\">";
		print "<input type=\"hidden\" name=\"Lat6\">";
		print "<input type=\"hidden\" name=\"Lon6\">";
		print "<input type=\"hidden\" name=\"Lat7\">";
		print "<input type=\"hidden\" name=\"Lon7\">";
		print "<input type=\"hidden\" name=\"Lat8\">";
		print "<input type=\"hidden\" name=\"Lon8\">";
		print "<input type=\"hidden\" name=\"Lat9\">";
		print "<input type=\"hidden\" name=\"Lon9\">";
		print "<input type=\"hidden\" name=\"Lat10\">";
		print "<input type=\"hidden\" name=\"Lon10\">";
	}
	else
	{	
		if($Lat1) print "<input type=\"hidden\" name=\"Lat1\" value=\"" .$Lat1  ." \">";
		if($Lon1) print "<input type=\"hidden\" name=\"Lon1\" value=\"" .$Lon1  ." \">";
		if($Lat2) print "<input type=\"hidden\" name=\"Lat2\" value=\"" .$Lat2  ." \">";
		if($Lon2) print "<input type=\"hidden\" name=\"Lon2\" value=\"" .$Lon2  ." \">";
		if($Lat3) print "<input type=\"hidden\" name=\"Lat3\" value=\"" .$Lat3  ." \">";
		if($Lon3) print "<input type=\"hidden\" name=\"Lon3\" value=\"" .$Lon3  ." \">";
		if($Lat4) print "<input type=\"hidden\" name=\"Lat4\" value=\"" .$Lat4  ." \">";
		if($Lon4) print "<input type=\"hidden\" name=\"Lon4\" value=\"" .$Lon4  ." \">";
		if($Lat5) print "<input type=\"hidden\" name=\"Lat5\" value=\"" .$Lat5  ." \">";
		if($Lon5) print "<input type=\"hidden\" name=\"Lon5\" value=\"" .$Lon5  ." \">";
		if($Lat6) print "<input type=\"hidden\" name=\"Lat6\" value=\"" .$Lat6  ." \">";
		if($Lon6) print "<input type=\"hidden\" name=\"Lon6\" value=\"" .$Lon6  ." \">";
		if($Lat7) print "<input type=\"hidden\" name=\"Lat7\" value=\"" .$Lat7  ." \">";
		if($Lon7) print "<input type=\"hidden\" name=\"Lon7\" value=\"" .$Lon7  ." \">";
		if($Lat8) print "<input type=\"hidden\" name=\"Lat8\" value=\"" .$Lat8  ." \">";
		if($Lon8) print "<input type=\"hidden\" name=\"Lon8\" value=\"" .$Lon8  ." \">";
		if($Lat9) print "<input type=\"hidden\" name=\"Lat9\" value=\"" .$Lat9  ." \">";
		if($Lon9) print "<input type=\"hidden\" name=\"Lon9\" value=\"" .$Lon9  ." \">";
		if($Lat10) print "<input type=\"hidden\" name=\"Lat10\" value=\"" .$Lat10  ." \">";
		if($Lon10) print "<input type=\"hidden\" name=\"Lon10\" value=\"" .$Lon10  ." \">";

	}

	print "<input type=\"hidden\" name=\"upid\" value=\"" .$upid  ." \">";
	print "</form>";

	print "</td>";
	print "</tr>";
	print "</table>";
	print "</td>";
	print "</tr>";
	print "</table>";
	print "</td>";
	print "</tr>";
	print "</table>";
}
catch(Exception $exc)
{
	$_log->write($exc->getMessage(). "\n");
}

// 戻る
//print "<br />";
print "<a href=\"../index.php\">戻る</a>";

if($err) print "<script language='javascript' type='text/javascript'>window.alert('座標を3点以上指定して下さい。');</script>";
//if(strcmp($preview,"プレビュー")) print "<script language='javascript' type='text/javascript'>document.area.preview.disabled=true;</script>";
//</script>



//===============================================
//	Postgresql終了処理
//	備考		:	
//	更新		:	2012/10/19 KMK-Teraoka
//===============================================
pg_close($conn);

//===============================================
//	HTML終了処理
//	備考		:	
//	更新		:	2012/10/18 KMK-Teraoka
//===============================================
print "</body>";
print "</html>";
?>

PHP File Manager