From 61448e4c2aabaf06cdae4160de77aaac8c7ad692 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 6 Dec 2008 07:23:29 +0000 Subject: added data.php --- data.php | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 data.php (limited to 'data.php') diff --git a/data.php b/data.php new file mode 100644 index 0000000..97e59b4 --- /dev/null +++ b/data.php @@ -0,0 +1,145 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +require_once("db.class.php"); +require_once("ipmatch.php"); +require_once("config.php"); + +header("Content-Type: text/xml"); +header("Cache-Control: no-cache, must-revalidate"); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); + +$db = new DB($conf['db']['user'], $conf['db']['password'], $conf['db']['host'], $conf['db']['database']); +$conf['acl']['auth'] = match_network($conf['acl']['range'],$_SERVER[REMOTE_ADDR]); + +$x_startpoint = 4080; +$lng_startpoint = 15.43844103813; +$dx_dLng = 50675.5176; +$y_startpoint = 4806; +$lat_startpoint= 47.07177327969; +$dy_dLat = 75505.521; + +$locations = array(); +$locids = array(); +$nodename = array(); +$links = array(); +$already = array(); +$count = array(); + +$db->query("SELECT ip, location.id as locid,location.name as locname, node.name as nodename FROM ip, node, location WHERE ip.node_id = node.id and node.location_id=location.id"); +while ($data = $db->getNextObject()) { + $locids[$data->ip]= $data->locid; + $nodename[$data->ip]= $data->nodename; +} + +if($conf['acl']['auth']) + $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location ORDER BY name ASC"); +else + $db->query("SELECT id as locid, name as locname, pixel_x, pixel_y, gallery_link, location.hastinc as hastinc FROM location WHERE location.hidden = 0 ORDER BY name ASC"); + +while ($data = $db->getNextObject()) { + if ($data->pixel_x == "0") + continue; + + $data->lng = $lng_startpoint + ($data->pixel_x - $x_startpoint) / $dx_dLng; + $data->lat = $lat_startpoint + ($y_startpoint - $data->pixel_y) / $dy_dLat; + $locations[$data->locid] = $data; +} + +$regmatch = '#\"(.+)\" -> \"(.+)\"\[label=\"([0-9]+.[0-9]+)\"]#'; +$lines = file($conf['topo']['file']); + +$linecnt=0; +$i =0; +foreach ($lines as $num => $line) +{ + $linecnt++; + preg_match($regmatch,$line,$matches); + list( , $ipfromLoc, $iptoLoc, $label) = $matches; + + if (empty($ipfromLoc) || empty($iptoLoc) || empty($label)) + continue; + + if(empty($locations[$locids[$ipfromLoc]]->locid) || empty($locations[$locids[$iptoLoc]]->locid)) + continue; + + if($locations[$locids[$ipfromLoc]]->locid == $locations[$locids[$iptoLoc]]->locid) + continue; + + if($already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used == true) { + $jot = $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i; + $links[$jot]->label = ($links[$jot]->label + $label)/2; + } + elseif($already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->used == true) { + $jot = $already[$locations[$locids[$iptoLoc]]->locid . '-' . $locations[$locids[$ipfromLoc]]->locid]->i; + $links[$jot]->label = ($links[$jot]->label + $label)/2; + } + else { + $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->used =true; + $already[$locations[$locids[$ipfromLoc]]->locid . '-' . $locations[$locids[$iptoLoc]]->locid]->i = $i; + + $links[$i]->ipfromLoc = $ipfromLoc; + $links[$i]->iptoLoc = $iptoLoc; + $links[$i]->label = $label; + $i++; + } +} + + +echo "\n"; +echo "\n"; + +echo "\n"; +foreach ($locations as $location) { + $data = $locations[$location->locid]; + printf("\t" . '' . "\n", + $data->locid, $data->locname, $data->lat, $data->lng, $data->pixel_x, $data->pixel_y, $data->gallery_link); +} +echo "\n"; + +echo "\n"; +foreach ($links as $link) +{ + if (($nodename[$link->ipfromLoc] == "tunnel" && $locations[$locids[$link->ipfromLoc]]->locname=="housing") || + ($nodename[$link->iptoLoc] == "tunnel" && $locations[$locids[$link->iptoLoc]]->locname=="housing" )) + $link->label = -1; + + if ($locations[$locids[$link->iptoLoc]]->hastinc && $locations[$locids[$link->ipfromLoc]]->hastinc) + $link->label = -1; + + $data1 = $locations[$locids[$link->ipfromLoc]]; + $data2 = $locations[$locids[$link->iptoLoc]]; + + $count[$data1->locid]=true; + $count[$data2->locid]=true; + + printf("\t" . '' . "\n", + $data1->locid, $data1->locname, $data1->lat,$data1->lng,$data2->locid, $data2->locname, $data2->lat, $data2->lng, $link->label); +} +echo "\n"; + +echo "\n"; +printf("\t" . '' . "\n"); +echo "\n"; + +echo ""; + +?> -- cgit v1.2.1