File "view.php"
Full path: /www/ansys/qgis/011_yokohama/map/view.php
File size: 14.92 KiB (15281 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
extract($_POST);
//print_r($_POST);
//===============================================
// CommonUtilities
// 備考 :
// 更新 : 2012/11/29 KMK-Teraoka
//===============================================
$SCRIPT_TITLE = "運航管理システム -船舶位置確認-";
$PENTA_OCEAN = "南部水再生センター護岸整備工事";
$TAIL_PENTA_OCEAN = "penta-ocean";
$imgFileName = "view_map.php";
$AreaFileName = "./area2.txt";
$AreaFileName2 = "./area3.txt";
$CONST_ID = 14;
$APPLICATION_ID = 25;
$HOST = "192.168.100.153";
$DB = "ansys";
$USER = "postgres";
$PASS = "am#71ZJ*";
$LOG_FILE = "./log/view.log";
//================================================
// データベース接続
// 備考 :
// 更新 : 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=\"6000\">";
print "<title>". $SCRIPT_TITLE. "</title>";
print "<style type=\"text/css\">";
print "html {font-size: 80%; font-family:\"MS ゴシック\"; overflow-y:scroll;}";
print "table {font-size: 100%; font-family:\"MS ゴシック\"; text-align:center;}";
print "input {font-size: 100%; font-family:\"MS ゴシック\";}";
print "select {font-size: 100%; font-family:\"MS ゴシック\";}";
print "pre {font-size: 100%; font-family:\"MS ゴシック\";}";
print "</style>";
?>
<script src="./lib/jquery-2.0.3.js"></script>
<script src="./lib/html5shiv.js"></script>
<script type="text/javascript">
function Fill(FillId_,AreaID_) {
// 「OK」時の処理開始 + 確認ダイアログの表示
var val = new Array(4);
var Mess = "";
if(!AreaID_)
{
if(document.form1.Radio1.checked)
{
Mess = '選択したセルを施工箇所に設定します。';
}
else if(document.form1.Radio2.checked)
{
Mess = '選択したセルを施工済みに変更します。';
}
if(window.confirm(Mess))
{
// location.href = "view.php?del=" + AreaId_ ; // example_confirm.html へジャンプ
// location.href = "view.php?col=" + document.form1.col1.value;
//エリア名称設定
if(document.form1.Radio1.checked)
{
val[0] = document.form1.Radio1.value;
}
else if(document.form1.Radio2.checked)
{
val[0] = document.form1.Radio2.value;
}
else if(document.form1.Radio3.checked)
{
val[0] = document.form1.Radio3.value;
}
else if(document.form1.Radio4.checked)
{
val[0] = document.form1.Radio4.value;
}
else if(document.form1.Radio5.checked)
{
val[0] = document.form1.Radio5.value;
}
else
{
val[0] = document.form1.Radio6.value;
}
val[3] = FillId_;
postJump(val);
}
else
{
//location.href = "view.php";
// window.alert('"' + AreaName_ + '"を削除しました。'); // 警告ダイアログを表示
}
}
else
{
if(AreaID_ == 1)
{
if(document.form1.Radio1.checked)
{
Mess = '選択した施工箇所を解除します。';
if(window.confirm(Mess))
{
val[3] = FillId_;
postJump(val);
}
else
{
//location.href = "view.php";
// window.alert('"' + AreaName_ + '"を削除しました。'); // 警告ダイアログを表示
}
}
else if(document.form1.Radio2.checked)
{
Mess = '選択したセルを施工済みに変更します。';
if(window.confirm(Mess))
{
// location.href = "view.php?del=" + AreaId_ ; // example_confirm.html へジャンプ
// location.href = "view.php?col=" + document.form1.col1.value;
//エリア名称設定
if(document.form1.Radio1.checked)
{
val[0] = document.form1.Radio1.value;
}
else if(document.form1.Radio2.checked)
{
val[0] = document.form1.Radio2.value;
}
else if(document.form1.Radio3.checked)
{
val[0] = document.form1.Radio3.value;
}
else if(document.form1.Radio4.checked)
{
val[0] = document.form1.Radio4.value;
}
else if(document.form1.Radio5.checked)
{
val[0] = document.form1.Radio5.value;
}
else
{
val[0] = document.form1.Radio6.value;
}
val[3] = FillId_;
postJump(val);
}
else
{
//location.href = "view.php";
// window.alert('"' + AreaName_ + '"を削除しました。'); // 警告ダイアログを表示
}
}
}
else
{
if(document.form1.Radio1.checked)
{
Mess = '選択した施工箇所に変更します。';
if(window.confirm(Mess))
{
// location.href = "view.php?del=" + AreaId_ ; // example_confirm.html へジャンプ
// location.href = "view.php?col=" + document.form1.col1.value;
//エリア名称設定
if(document.form1.Radio1.checked)
{
val[0] = document.form1.Radio1.value;
}
else if(document.form1.Radio2.checked)
{
val[0] = document.form1.Radio2.value;
}
else if(document.form1.Radio3.checked)
{
val[0] = document.form1.Radio3.value;
}
else if(document.form1.Radio4.checked)
{
val[0] = document.form1.Radio4.value;
}
else if(document.form1.Radio5.checked)
{
val[0] = document.form1.Radio5.value;
}
else
{
val[0] = document.form1.Radio6.value;
}
val[3] = FillId_;
postJump(val);
}
else
{
//location.href = "view.php";
// window.alert('"' + AreaName_ + '"を削除しました。'); // 警告ダイアログを表示
}
}
else if(document.form1.Radio2.checked)
{
Mess = '選択したセルの施工済みを解除します。';
if(window.confirm(Mess))
{
val[3] = FillId_;
postJump(val);
}
else
{
//location.href = "view.php";
// window.alert('"' + AreaName_ + '"を削除しました。'); // 警告ダイアログを表示
}
}
}
}
}
function postJump(_vals){
var html = '<form method="post" action="view.php" id="postjump" style="display: none;">';
if(_vals[0])
{
html += '<input type="hidden" name="ListId" value="'+_vals[0]+'" >';
// html += '<input type="hidden" name="AreaName" value="'+_vals[1]+'" >';
// html += '<input type="hidden" name="Col" value="'+_vals[2]+'" >';
html += '<input type="hidden" name="FillId" value="'+_vals[3]+'" >';
}
else
{
html += '<input type="hidden" name="FillId" value="'+_vals[3]+'" >';
}
html += '</form>';
$('body').append(html);
// $('body').append(shivDocument(html));
$('#postjump').submit();
$('#postjump').remove();
}
function RefreshImg()
{
//alert(FileName);
uniq = new Date();
uniq = "?" + uniq.getTime();
newImage = document.imgToLoad.src;
index = newImage.indexOf("?", 0);
if (index > 0)
{
newImage = newImage.substr(0, index);
}
document.imgToLoad.src = 'view_map.php'+uniq;
}
</script>
<?php
/*
print "<center>";
print "<font size=\"3\">";
print "<b>";
print "". $SCRIPT_TITLE. "<br>";
print "</b>";
print "</font>";
print "</center>";
*/
print "</head>";
//===============================================
// HTML-BODY部開始-
// 備考 :
// 更新 : 2012/10/18 KMK-Teraoka
//===============================================
print "<body>";
// ===============================================
// 上で保存した画像を表示
// 備考 :
// 更新 : 2010/09/08 KMK T.Teraoka
// ===============================================
//POSTデータをチェック
if($_POST)
{
// print_r($_POST);
if($ListId)
{
$upArea = "UPDATE qgis.area_status_fill_yokohama SET ";
//$upArea .= "area_name = '" .$AreaName ."',";
$upArea .= "upddatetime=" ."current_timestamp";
$upArea .= " WHERE list_id =" .$ListId .";";
// print $upArea ."<BR>";
if (!($resData = pg_query($conn, $upArea)))
{
// print pg_last_error(). "<br />";
// throw new Exception("データの登録に失敗しました<br />". $insArea. "<br />". pg_last_error(). "<br />");
}
$upArea = "UPDATE qgis.yokohama_point SET ";
$upArea .= "area_id = '" .$ListId ."',";
$upArea .= "upddatetime=" ."current_timestamp";
$upArea .= " WHERE pno =" .$FillId .";";
// print $upArea ."<BR>";
if (!($resData = pg_query($conn, $upArea)))
{
// print pg_last_error(). "<br />";
// throw new Exception("データの登録に失敗しました<br />". $insArea. "<br />". pg_last_error(). "<br />");
}
}
else
{
$upArea = "UPDATE qgis.yokohama_point SET ";
$upArea .= "area_id = null,";
$upArea .= "upddatetime=" ."current_timestamp";
$upArea .= " WHERE pno =" .$FillId .";";
// print $upArea ."<BR>";
if (!($resData = pg_query($conn, $upArea)))
{
// print pg_last_error(). "<br />";
//
}
}
//セル描画データをテキストファイルで出力
////////////////////////////////////////////////////////////////////////
$selArea = "SELECT * FROM qgis.yokohama_point";
$selArea .= " WHERE NOT area_id is null";
$selArea .= " ORDER BY pno";
$selArea .= ";";
// print $selArea ."<BR>";
if (!($resArea = pg_query($conn, $selArea)))
{
$resArea. "<br />". pg_last_error(). "<br />";
//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
//print pg_last_error() ;
}
$rowA = pg_num_rows($resArea);
$fp = fopen($AreaFileName, "w");
//エリアのステータス情報のみを取得(凡例用)
$selSts0 = "SELECT * FROM qgis.area_status_fill_yokohama";
$selSts0 .= " WHERE const_id='". $CONST_ID. "'";
$selSts0 .= " AND app_id='". $APPLICATION_ID. "'";
$selSts0 .= " AND del_flg = FALSE order by list_id";
$selSts0 .= ";";
if (!($resSts0 = pg_query($conn, $selSts0)))
{
//print pg_last_error() ;
}
$rowStsCt = pg_num_rows($resSts0);
for($s = 0; $s < $rowStsCt;$s++)
{
$rowSts0 = pg_fetch_array($resSts0, $s, PGSQL_ASSOC);
$OutputData .= $rowSts0['area_name']."," .$rowSts0['legend_color'];
if(($rowStsCt-1) != $s) $OutputData .= ",";
}
$OutputData .= "#";
$OutputData2 = $OutputData;
for($iCount = 0; $iCount < $rowA; $iCount++)
{
$rowArea = pg_fetch_array($resArea, $iCount, PGSQL_ASSOC);
// $rowArea2 = pg_fetch_array($resArea2, $iCount, PGSQL_ASSOC);
//エリアのステータスを取得
$selSts = "SELECT * FROM qgis.area_status_fill_yokohama";
$selSts .= " WHERE const_id='". $CONST_ID. "'";
$selSts .= " AND app_id='". $APPLICATION_ID. "'";
$selSts .= " AND list_id='". $rowArea['area_id'] ."'";
$selSts .= " AND del_flg = FALSE";
$selSts .= ";";
if (!($resSts = pg_query($conn, $selSts)))
{
//throw new Exception("データ取得に失敗<br />". $resArea. "<br />". pg_last_error(). "<br />");
//print pg_last_error() ;
}
$rowSts = pg_fetch_array($resSts, 0, PGSQL_ASSOC);
$OutputData .= $rowArea['pno'] ."," .$rowArea['x'] ."," .$rowArea['y'] ."," .$rowSts['legend_color'];
// $OutputData2 .= $rowArea['pno'] ."," .$rowArea2['x'] ."," .$rowArea2['y'] ."," .$rowSts['legend_color'];
if(($rowA-1) != $iCount)
{
$OutputData .= "#";
$OutputData2 .= "#";
}
}
fwrite($fp, $OutputData);
fclose($fp);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
else
{
// print "データなし";
}
print "<div style='position: relative;'>";
print "<IMG SRC='" .$imgFileName ."' ALT='QGIS' usemap=\"#map_1\" name=imgToLoad onload='setTimeout(\"RefreshImg()\", 1000)' onerror='setTimeout(\"RefreshImg()\", 5000)' onabort='setTimeout(\"RefreshImg()\", 10000)' id=imgToLoad naturalsizeflag=0 >";
print "<map name='map_1'>";
$HtSelect = "SELECT * FROM qgis.yokohama_point order by id;";
if (!($resHt = pg_query($conn, $HtSelect)))
{
// print pg_last_error() ."<BR>";
// throw new Exception("データ取得に失敗<br />". $DelArea. "<br />". pg_last_error(). "<br />");
}
$ba = 1;
$Csize =12;
$Rsize = 20;
$row = pg_num_rows($resHt);
// print $row ."<BR>";
for($iCount = 0; $iCount < $row; $iCount++)
{
$rowHt = pg_fetch_array($resHt, $iCount, PGSQL_ASSOC);
//print_r($rowHt);
//print "<BR>";
if($iCount < 11)
{
// print "<area shape=\"circle\" coords=\"" .$rowHt['x'] * $ba ."," .$rowHt['y'] * $ba ."," .$Csize * $ba ."\" href=\"#\" alt=\"円形\" onclick='Fill(\"" .$rowHt['pno'] ."\",\"" .$rowHt['area_id'] ."\");'>";
print "<area shape=\"rect\" coords=\"" .($rowHt['x']) * $ba ."," .($rowHt['y']) * $ba ."," .($rowHt['x'] +$Rsize+5) * $ba ."," .($rowHt['y']+$Rsize) * $ba ."\" href=\"#\" alt=\"四角\" onclick='Fill(\"" .$rowHt['pno'] ."\",\"" .$rowHt['area_id'] ."\");'>";
}
else if($iCount < 1277)
{
print "<area shape=\"rect\" coords=\"" .($rowHt['x']) * $ba ."," .($rowHt['y']) * $ba ."," .($rowHt['x'] +$Rsize) * $ba ."," .($rowHt['y']+$Rsize) * $ba ."\" href=\"#\" alt=\"四角\" onclick='Fill(\"" .$rowHt['pno'] ."\",\"" .$rowHt['area_id'] ."\");'>";
}
else
{
// print "<area shape=\"circle\" coords=\"" .$rowHt['x'] * $ba ."," .$rowHt['y'] * $ba ."," .$Csize * $ba ."\" href=\"#\" alt=\"円形\" onclick='Fill(\"" .$rowHt['pno'] ."\",\"" .$rowHt['area_id'] ."\");'>";
print "<area shape=\"rect\" coords=\"" .($rowHt['x']) * $ba ."," .($rowHt['y']) * $ba ."," .($rowHt['x'] +$Rsize+5) * $ba ."," .($rowHt['y']+$Rsize) * $ba ."\" href=\"#\" alt=\"四角\" onclick='Fill(\"" .$rowHt['pno'] ."\",\"" .$rowHt['area_id'] ."\");'>";
}
}
print "</map>";
$selArea = "SELECT * FROM qgis.area_status_fill_yokohama";
$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() ;
}
$CountArea = pg_num_rows($resArea);
print "<form name='form1' action=''>";
print "<div style='position: absolute; top: 40px; left: 20px; width: 335px;'>";
print "<B><FONT size ='2'>チェック項目の選択</B></FONT><BR>";
for($ii = 0 ;$ii < $CountArea;$ii++)
{
$rowArea = pg_fetch_array($resArea, $ii, PGSQL_ASSOC);
if(!$ListId)
{
$chkd[0] = " checked";
}
else
{
if($ListId == $rowArea['list_id']) $chkd[$ii] = " checked";
}
print "<input id='Radio" .$rowArea['list_id'] ."' name='areaname' type='radio' value='" .$rowArea['list_id'] ."' " .$chkd[$ii] .">";
print " ";
print "<FONT size='2'>";
print $rowArea['area_name'];
print "</FONT>";
print " ";
print "<FONT COLOR='#" .$rowArea['legend_color'] ."' size ='3'>■</FONT>";
print "<BR>";
}
print "</div>";
print "</form>";
print "</div>";
// 戻る
//print "<br />";
//print "<a href=\"./index.php\">戻る</a>";
//===============================================
// HTML終了処理
// 備考 :
// 更新 : 2012/10/18 KMK-Teraoka
//===============================================
print "</body>";
print "</html>";
?>