getMessage(); } $keywords = addslashes($keywords); # Execute the query $box = "POLYGON(($xmin $ymin,$xmin $ymax,$xmax $ymax,$xmax $ymin,$xmin $ymin))"; $sql = "select layer_name, layer_title, layer_abstract, onlineresource, version, server_url || '#' || layer_name as id from wms_server_layers,wms_servers where wms_servers.id = wms_server_layers.server_id and layer_bbox && geometryfromtext('$box',4326) and (layer_name ilike '%$keywords%' or layer_title ilike '% $keywords%' or layer_title ilike '$keywords%' or layer_abstract ilike '% $keywords%' )"; $result = $db->query($sql); if( DB::isError($db) ) { return "ERROR: " . $db->getMessage(); } # Fetch results from the database while ($row = $result->fetchRow()) { $layer = array( 'name' => $row[0], 'title' => $row[1], 'description' => $row[2], 'onlineresource' => $row[3], 'servertype' => 'WMS', 'serverversion' => $row[4], 'id' => $row[5] ); array_push($results,$layer); } return $results; } function printXML($rset) { $attrs = array( 'name', 'title', 'description', 'onlineresource', 'servertype', 'serverversion', 'id' ); print ""; print "\n"; foreach ( $rset as $r ) { print "\n "; foreach ( $attrs as $a ) { print "\n <$a>" . htmlspecialchars($r[$a]) . ""; } print "\n "; } print "\n"; } $keywords = $_GET["keywords"]; $xmin = $_GET["xmin"]; $ymin = $_GET["ymin"]; $xmax = $_GET["xmax"]; $ymax = $_GET["ymax"]; if ( $keywords && $xmin && $xmax && $ymin && $ymax ) { $results = findLayers($keywords, "WMS", $xmin, $ymin, $xmax, $ymax); if ( is_array($results) ) { header("Content-type: text/xml"); printXML($results); } else { header("Content-type: text/plain"); print $results; } } else { print "foo"; } ?>