function get_index() { $postgisObject = new Model(); ob_start(); echo "[cache]\n"; echo "type=Disk\n"; echo "base=" . App::$param['path'] . "app/tmp/" . Connection::$param['postgisdb'] . "\n\n"; //echo "type=AWSS3\n"; //echo "access_key=*****\n"; //echo "secret_access_key=******\n"; //echo "db={$user}\n"; $sql = "SELECT * FROM settings.geometry_columns_view ORDER BY sort_id"; $result = $postgisObject->execQuery($sql); if ($postgisObject->PDOerror) { ob_get_clean(); return false; } $layerArr = array(); while ($row = $postgisObject->fetchRow($result)) { if ($row['f_table_schema'] != "sqlapi") { $layerArr[$row['f_table_schema']][] = $row['f_table_schema'] . "." . $row['f_table_name']; $def = json_decode($row['def']); $def->meta_tiles == true ? $meta_tiles = "yes" : ($meta_tiles = "no"); $meta_size = $def->meta_size ?: ($meta_size = 3); $meta_buffer = $def->meta_buffer ?: ($meta_buffer = 0); $def->ttl < 30 ? $expire = 30 : ($expire = $def->ttl); echo "[{$row['f_table_schema']}.{$row['f_table_name']}]\n"; // If raster then use WMS backend, because of bug in Python backend. if ($row['type'] == "RASTER") { $parts = explode(":", App::$param['host']); echo "type=WMS\n"; echo "url=" . "http://127.0.0.1" . "/wms/" . Connection::$param['postgisdb'] . "/{$row['f_table_schema']}/?"; } else { echo "type=MapServerLayer\n"; echo "mapfile=" . App::$param['path'] . "/app/wms/mapfiles/" . Connection::$param['postgisdb'] . "_" . $row['f_table_schema'] . ".map\n"; } echo "debug=no\n"; echo "extension=png\n"; echo "bbox=-20037508.3427892,-20037508.3427892,20037508.3427892,20037508.3427892\n"; echo "maxResolution=156543.0339\n"; echo "levels=22\n"; echo "metaBuffer={$meta_buffer}\n"; echo "metaTile={$meta_tiles}\n"; echo "metaSize={$meta_size},{$meta_size}\n"; echo "srs=EPSG:900913\n"; echo "tms=google\n"; echo "expire={$expire}\n\n"; } } foreach ($layerArr as $k => $v) { if (sizeof($v) > 0) { echo "[" . $k . "]\n"; echo "layers=" . implode(",", $v) . "\n"; echo "type=MapServerLayer\n"; echo "mapfile=" . App::$param['path'] . "/app/wms/mapfiles/" . Connection::$param['postgisdb'] . "_" . $k . ".map\n"; echo "extension=png\n"; echo "bbox=-20037508.3427892,-20037508.3427892,20037508.3427892,20037508.3427892\n"; echo "maxResolution=156543.0339\n"; echo "levels=21\n"; echo "metaBuffer=20\n"; echo "metaTile=yes\n"; echo "metaSize=5,5\n"; echo "srs=EPSG:900913\n"; echo "tms=google\n"; echo "expire=60\n\n"; } } $data = ob_get_clean(); $path = App::$param['path'] . "app/wms/cfgfiles/"; $name = Connection::$param['postgisdb'] . ".tilecache.cfg"; @unlink($path . $name); $fh = fopen($path . $name, 'w'); fwrite($fh, $data); fclose($fh); return array("success" => true, "message" => "Cfgfile written", "ch" => $path . $name); }
function get_index() { $postgisObject = new Model(); ob_start(); ?> <tinyows online_resource="<?php echo App::$param['protocol'] ?: "http"; ?> ://<?php echo $_SERVER['HTTP_HOST']; ?> /cgi/tinyows.cgi" schema_dir="/usr/tinyows/schema/"> <pg user="******" dbname="<?php echo Connection::$param['postgisdb']; ?> " <?php if (Connection::$param['postgishost']) { echo " host=\"" . Connection::$param['postgishost'] . "\""; } if (Connection::$param['postgisport']) { echo " port=\"" . Connection::$param['postgisport'] . "\""; } if (Connection::$param['postgispw']) { echo " password=\"" . Connection::$param['postgispw'] . "\""; } ?> /> <metadata name="TinyOWS Server" title="TinyOWS Server - Demo Service"/> <?php $sql = "SELECT * FROM settings.geometry_columns_view WHERE f_table_schema='" . Connection::$param['postgisschema'] . "'"; $result = $postgisObject->execQuery($sql); if ($postgisObject->PDOerror) { makeExceptionReport($postgisObject->PDOerror); } while ($row = $postgisObject->fetchRow($result)) { if ($row['f_table_schema'] != "sqlapi") { ?> <layer retrievable="1" writable="1" ns_prefix="<?php echo $_SESSION["screen_name"]; ?> " ns_uri="http://www.twitter.com" name="<?php echo $row["f_table_name"]; ?> " schema="<?php echo $row["f_table_schema"]; ?> " srid="4326,3857,900913" title="<?php echo $row['f_table_title'] ?: $row['f_table_name']; ?> "/> <?php } } echo "</tinyows>"; $data = ob_get_clean(); $path = App::$param['path'] . "/app/wms/mapfiles/"; $name = Connection::$param['postgisdb'] . "_" . Connection::$param['postgisschema'] . ".xml"; @unlink($path . $name); $fh = fopen($path . $name, 'w'); fwrite($fh, $data); fclose($fh); return array("success" => true, "message" => "Tinyows file written"); }