alert('Could not find wms: ".$wms_getmap."');"; } else { $map_img = file_get_contents($mapurl); $legend_img = file_get_contents($legendurl); // $rlp_4326_box = array(6.10988942079081,48.987785376052,8.58790010810365,50.9273496139233); $rlp_4326_box = array(6.05,48.9,8.6,50.96); $sql = "SELECT * FROM layer_epsg WHERE fkey_layer_id = $1 AND epsg = 'EPSG:4326'"; $v = array($layer_id); $t = array('i'); $res = db_prep_query($sql, $v, $t); $row = db_fetch_array($res); if ($row['minx'] && $row['miny'] && $row['maxx'] && $row['maxy']) { $extent_layer_id = $layer_id; $layer_4326_box = array($row['minx'], $row['miny'], $row['maxx'], $row['maxy']); } else { $sql = "SELECT * FROM (SELECT fkey_wms_id FROM layer WHERE layer_id = $1 LIMIT 1) AS w, layer_epsg AS e, layer AS l WHERE l.fkey_wms_id = w.fkey_wms_id AND l.layer_pos = 0 AND l.layer_id = e.fkey_layer_id AND e.epsg = 'EPSG:4326'"; $v = array($layer_id); $t = array('i'); $res = db_prep_query($sql, $v, $t); $row = db_fetch_array($res); if ($row['epsg'] && $row['minx'] && $row['miny'] && $row['maxx'] && $row['maxy']) { $layer_4326_box = array($row['minx'], $row['miny'], $row['maxx'], $row['maxy']); $extent_layer_id = $row['layer_id']; } else { $layer_4326_box = $rlp_4326_box; $extent_layer_id = $layer_id; } } if ($layer_4326_box[0] <= $rlp_4326_box[0] || $layer_4326_box[2] >= $rlp_4326_box[2] || $layer_4326_box[1] <= $rlp_4326_box[1] || $layer_4326_box[3] >= $rlp_4326_box[3]) { if ($layer_4326_box[0] < $rlp_4326_box[0]) { $rlp_4326_box[0] = $layer_4326_box[0]; } if ($layer_4326_box[2] > $rlp_4326_box[2]) { $rlp_4326_box[2] = $layer_4326_box[2]; } if ($layer_4326_box[1] < $rlp_4326_box[1]) { $rlp_4326_box[1] = $layer_4326_box[1]; } if ($layer_4326_box[3] > $rlp_4326_box[3]) { $rlp_4326_box[3] = $layer_4326_box[3]; } $d_x = $rlp_4326_box[2] - $rlp_4326_box[0]; $d_y = $rlp_4326_box[3] - $rlp_4326_box[1]; $new_minx = $rlp_4326_box[0] - 0.05*($d_x); $new_maxx = $rlp_4326_box[2] + 0.05*($d_x); $new_miny = $rlp_4326_box[1] - 0.05*($d_y); $new_maxy = $rlp_4326_box[3] + 0.05*($d_y); if ($new_minx < -180) $rlp_4326_box[0] = -180; else $rlp_4326_box[0] = $new_minx; if ($new_maxx > 180) $rlp_4326_box[2] = 180; else $rlp_4326_box[2] = $new_maxx; if ($new_miny < -90) $rlp_4326_box[1] = -90; else $rlp_4326_box[1] = $new_miny; if ($new_maxy > 90) $rlp_4326_box[3] = 90; else $rlp_4326_box[3] = $new_maxy; } // echo ""; $extent_img = file_get_contents("http://212.79.172.107/cgi-bin/mapserv?map=/data/umn/service_layer.map&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=rlp,ows_layer&STYLES=&SRS=EPSG:4326&BBOX=".$rlp_4326_box[0].",".$rlp_4326_box[1].",".$rlp_4326_box[2].",".$rlp_4326_box[3]."&WIDTH=120&HEIGHT=120&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage&layer_id=".$extent_layer_id); $sql = "SELECT * FROM layer_preview WHERE fkey_layer_id = $1"; $v = array($layer_id); $t = array('i'); $res = db_prep_query($sql, $v, $t); $row = db_fetch_array($res); if ($row['fkey_layer_id'] == $layer_id) { $sql = "UPDATE layer_preview SET layer_map_preview = $1, layer_extent_preview = $2, layer_legend_preview = $3 WHERE fkey_layer_id = $4"; $v = array( escByteA($map_img), escByteA($extent_img), escByteA($legend_img), $layer_id); $t = array('s', 's', 's', 'i'); } else { $sql = "INSERT INTO layer_preview (fkey_layer_id, layer_map_preview, layer_extent_preview, layer_legend_preview) VALUES ($1, $2, $3, $4)"; $v = array($layer_id, escByteA($map_img), escByteA($extent_img), escByteA($legend_img)); $t = array('i', 's', 's', 's'); } $res = db_prep_query($sql, $v, $t); if (db_error()) { echo ""; } else { echo ""; } } } ?>