File "index_OLD20130419.php"
Full path: /www/ansys/qgis/000_nasu/Backup/OLD/index_OLD20130419.php
File size: 13.85 KiB (14180 bytes)
MIME-type: text/xml
Charset: utf-8
<?xml version="1.0" encoding="UTF-8"?>
<?php
extract($_GET);
$CenterLat = isset($_GET['CenterLat']) ? htmlspecialchars($_GET['CenterLat']) : null;
$CenterLon = isset($_GET['CenterLat']) ? htmlspecialchars($_GET['CenterLat']) : 3;
$ZoomLevel = isset($_GET['ZoomLevel']) ? htmlspecialchars($_GET['ZoomLevel']) : 3;
//print_r($_GET);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- <meta http-equiv="Refresh" content="30 ;URL=index.php?flag=<?php $flag ?>"> -->
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta equiv="expires" content="0">
<title>OpenLayers Example</title>
<meta http-equiv="imagetoolbar" content="no"> <!--ie image gizmo OFF!-->
<style type="text/css">
#map {
width: 752px;
height: 552px;
border: 1px solid black;
}
h1 {
font-family: Utopia,Arial, Helvetica, sans-serif;
font-size: 28px;
line-height: 32px;
color: #005599;
}
#features {
margin-top: 5px;
font-size: small;
}
table, table td, table th {
border: 1px solid #DDD;
border-collapse: collapse;
margin: 0;
text-align: center;
padding: 1px 3px;
}
table th {
background-color: #EEE;
font-weight: bold;
}
</style>
<?php
//
// Loading the map file
//
//データベース接続
$HOST = "192.168.100.153";
$DB = "ansys";
$USER = "postgres";
$PASS = "am#71ZJ*";
$conn = pg_connect("
host = ". $HOST. "
dbname = ". $DB. "
user = ". $USER. "
password= ". $PASS. "
") or die("接続エラー" .$HOST ."--" .$DB ."--" .$USER ."--" .$PASS .pg_last_error());
$sql = "SELECT * FROM qgis.ts_terminal ORDER BY regdatetime;";
$res = pg_query($conn,$sql) or die (pg_last_error() ."<BR>" .$sql ."<BR>");
$Ct = pg_num_rows($res);
for($ii = 0;$ii < $Ct;$ii++)
{
$row = pg_fetch_array($res,$ii);
$lat[$ii] = $row['lat'];
$lon[$ii] = $row['lon'];
$w_status[$ii] = $row['work_status'];
$t_name[$ii] = $row['terminal_name'];
//print "lat = ". $lat[$ii] ."<BR>";
//print "lon = ". $lon[$ii] ."<BR>";
}
$lat_php = join(",",$lat);
$lon_php = join(",",$lon);
$w_status_php = join(",",$w_status);
$t_name_php = join(",",$t_name);
$jct = 0;
// print $t_name_php ."<BR>";
// print $lon_php ."<BR>";
// print $jct ."<BR>";
// print $Ct ."<BR>";
?>
<script src="./OpenLayers.js"></script>
<script type="text/javascript">
<!--
function init(){
var dct = <?php echo $Ct; ?>;
var j = 0;
//lon = document.getElementById('lon').value;
//lat = document.getElementById('lat').value;
//var Lat = new Array(50);
//var Lon = new Array(50);
//$ar[] = $a[name]; // (1) DBデータを配列に格納
//$v_php = join(“,”,$ar); // (2) 配列をカンマ区切りデータにする
//JavaScript側
var lat_js = "<?php echo $lat_php ?>"; // (3) PHP変数をJavaScript変数に代入
var lon_js = "<?php echo $lon_php ?>"; // (3) PHP変数をJavaScript変数に代入
var ws_js = "<?php echo $w_status_php ?>"; // (3) PHP変数をJavaScript変数に代入
var t_name_js = "<?php echo $t_name_php ?>"; // (3) PHP変数をJavaScript変数に代入
var Lat = lat_js.split(","); // (4) カンマ区切りデータを配列に格納
var Lon = lon_js.split(","); // (4) カンマ区切りデータを配列に格納
var Ws = ws_js.split(","); // (4) カンマ区切りデータを配列に格納
var Tn = t_name_js.split(","); // (4) カンマ区切りデータを配列に格納
//document.write("AAA" + lat_js);
var options = {
'projection':"EPSG:4326",
scales : [3000,100000,50000,25000,12500],
'controls':[],
'minZoomLevel': 1,
'numZoomLevels':5
};
var map = new OpenLayers.Map('map',options);
//map.events.register("mousemove", map, onMouseMove);
var landsat = new OpenLayers.Layer.WMS(
"OnEarth",
"http://hyperquad.telascience.org/cgi-bin/onearth", {
layers: "OnEarth"
}, {
isBaseLayer: true,
buffer: 0,
visibility: false,
tileSize: new OpenLayers.Size(512, 512),
opacity: 1.0
}
);
//map.addLayer(landsat);
var host = location.protocol + "//" + location.hostname;
if (location.port != "") {
host += ":" + location.port;
}
var msLayer = new OpenLayers.Layer.WMS(
"WMSレイヤー",
host + "/cgi-bin/mapserv-i18n?map=/www/ansys/qgis/000_nasu/map/mapfiles/wms.map&",
{layers: ['road'],transparent: true, format: 'image/gif'} ,
{isBaseLayer: true, singleTile: true, opacity:0.7}
);
// document.write(host+ "/cgi-bin/mapserv-i18n?map=../html/mapserver-extensions/mapfiles/wms.map&");
map.addLayer(msLayer);
///////////////////////////////////////////////
// 図の基本プロパティ
var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
layer_style.fillOpacity = 0.2; // 内側の透明度
layer_style.graphicOpacity = 1; // 図全体の透明度
/*
// Green style このスタイル(緑)を使ったときのプロパティ
var style_1 = {
strokeColor: "#00FF00",
strokeWidth: 3, // 外周の太さ
pointRadius: 6, // 半径
pointerEvents: "visiblePainted" // この意味は調査中
};
// Green style このスタイル(緑)を使ったときのプロパティ
var style_1 = OpenLayers.Util.extend({}, layer_style);
style_1.strokeColor = "red"; // 外周の色
style_1.fillColor = "red"; // 内側の色
style_1.fontSize = 10; // 文字のサイズ
*/
var v_f=1;
//var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry", {style: layer_style});
var vectorLayer = new Array(50);
var style = new Array(50);
for(j = 0;j < dct;j++)
{
//styleの定義
style[j] = OpenLayers.Util.extend({}, layer_style);
style[j].label = Tn[j];
style[j].fontSize = 10; // 文字のサイズ
style[j].labelAlign = "left";
style[j].labelXOffset = 10;
style[j].labelYOffset = 10;
vectorLayer[j] = new OpenLayers.Layer.Vector(Tn[j], {style: layer_style});
// create a point feature 2つの点の位置とプロパティ
var point = new OpenLayers.Geometry.Point(Lon[j], Lat[j]);
point.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
//work_statusによって色を変更
if(Ws[j] == 0)
{
style[j].strokeColor = "red"; // 外周の色
style[j].fillColor = "red"; // 内側の色
}
else if(Ws[j] == 1)
{
style[j].strokeColor = "green"; // 外周の色
style[j].fillColor = "red"; // 内側の色
}
else if(Ws[j] == 2)
{
style[j].strokeColor = "blue"; // 外周の色
style[j].fillColor = "red"; // 内側の色
}
else if(Ws[j]== 3)
{
style[j].strokeColor = "pink"; // 外周の色
style[j].fillColor = "red"; // 内側の色
}
var pointFeature = new OpenLayers.Feature.Vector(point,null,style[j]);
// レイヤの追加と描画する図の指定
map.addLayer(vectorLayer[j]);
vectorLayer[j].addFeatures(pointFeature);
}
var styles = new OpenLayers.StyleMap({
"default": new OpenLayers.Style({
strokeColor: "#FF0000",
strokeWidth: 10,
strokeOpacity: 0.5
})
});
highlightLayer = new OpenLayers.Layer.Vector("選択道路", { styleMap: styles });
map.addLayer(highlightLayer);
control = new OpenLayers.Control.GetFeature({
protocol: OpenLayers.Protocol.WFS.fromWMSLayer(msLayer, {
featurePrefix: "ms",
maxFeatures: 3,
formatOptions: {
xy: false
}
}),
single: false
});
control.events.register("featuresselected", this, function(evt){
highlightLayer.destroyFeatures();
showInfo(evt.features);
// 地図の中心を取得
var center = map.getCenter();
//document.write(center.lon);
// 地図座標に変換
center.transform(new OpenLayers.Projection("EPSG:4326"));
document.sample.boxLon.value = center.lon;
document.sample.boxLat.value = center.lat;
if (evt.features && evt.features.length > 0) {
highlightLayer.addFeatures(evt.features);
highlightLayer.redraw();
}
});
control.events.register("clickout", this, function(evt){
highlightLayer.destroyFeatures();
showInfo(null);
});
map.addControl(control);
control.activate();
map.setCenter(new OpenLayers.LonLat(139.944,36.908),3);
//map.events.register('move',this, handleMapMove);
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.MouseDefaults());
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition());
map.addControl(new OpenLayers.Control.ScaleLine());
//map.addControl(new OpenLayers.Control.OverviewMap());
//map.addControl(new OpenLayers.Control.ZoomPanel());
var map_center = new OpenLayers.Geometry.Point(lon, lat);
map.setCenter(new OpenLayers.LonLat(map_center.x, map_center.y), 3);
//var center = map.getCenter();
//document.write(center);
/*
document.cookie = 'lat=' + encodeURIComponent( center.lat );
document.cookie = 'lon=' + encodeURIComponent( center.lon );
document.cookie = 'zoom=' + encodeURIComponent( 3 );
document.write(document.cookie);
*/
}
function onMouseMove() {
var lonLat = map.getCenter();
document.getElementById("lon").value = lonLat.lon;
document.getElementById("lat").value = lonLat.lat;
}
function deleteCookie() {
cName = "data="; // 削除するクッキー名
dTime = new Date();
dTime.setYear(dTime.getYear() - 1);
document.cookie = cName + ";expires=" + dTime.toGMTString();
}
function GetCookie(name)
{
var result = null;
var cookieName = name + '=';
var allcookies = document.cookie;
var position = allcookies.indexOf( cookieName );
if( position != -1 )
{
var startIndex = position + cookieName.length;
var endIndex = allcookies.indexOf( ';', startIndex );
if( endIndex == -1 )
{
endIndex = allcookies.length;
}
result = decodeURIComponent(
allcookies.substring( startIndex, endIndex ) );
}
return result;
}
var attributes = ["gid", "id", "namae", "joutai", "yuryo", "syubetsu", "kokubango", "fukuin", "hashi", "tonneru", "yukiooi"];
function showInfo(features) {
if (features == null || features.length == 0) {
document.getElementById("attributes").style.display = "none";
document.getElementById("message").style.display = "block";
return;
}
document.getElementById("attributes").style.display = "block";
document.getElementById("message").style.display = "none";
var table = document.getElementById("attributes");
while (table.childNodes.length > 2) {
table.removeChild(table.lastChild);
}
for (var i = 0, len = features.length; i < len; i++) {
var tr = document.createElement("tr");
for (var k = 0; k < attributes.length; k++) {
var td = document.createElement("td");
td.innerHTML = features[i].attributes[attributes[k]];
tr.appendChild(td);
}
table.appendChild(tr);
}
}
// -->
setTimeout(function(){
document.myForm.submit();
},10000);
function changeImg()
{
location.reload();
document.myForm.submit(index.php);
}
//;"setInterval('changeImg()',1000*5)"
</script>
</head>
<body onload="init()">
<center>
<!-- <div id="map" name="map" style="width:700px;height:1000px;"></div>-->
<div id="map" name="map"></div>
<div id="features">
<p id="message" style="display:none">表示するデータがありません。</p>
<table>
<tbody id="attributes" style="display:none">
<tr>
<th>gid</th>
<th>id</th>
<th>名前</th>
<th>状態</th>
<th>有料</th>
<th>種別</th>
<th>国道番号</th>
<th>幅員</th>
<th>橋</th>
<th>トンネル</th>
<th>雪覆い</th>
</tr>
</tbody>
</table>
</div>
</center>
<!--<div>経度:<input type="text" name="boxLon" />
緯度:<input type="text" name="boxLat" /></div>
-->
</body>
</html>