/** * Build the legend */ function build_legend($mapname, $layername) { // First, get layer styles $wms = get_wms_online_resource($mapname); $wms_base_call = $wms . 'VERSION=1.1.1&SERVICE=WMS&LAYERS=' . urlencode($layername) . '&REQUEST='; $styles = simplexml_load_file($wms_base_call . 'GetStyles'); if ($styles === false) { err500('Cannot fetch legend styles'); } $results = array(); // For each style, get legend string and image foreach ($styles->xpath('//se:Rule') as $rule) { $name = $rule->xpath('se:Name'); // FIXME: temporary workaround for http://hub.qgis.org/issues/9321 if ((string) $name[0]) { $filter = $rule->xpath('ogc:Filter/*'); if (count($filter)) { $filter = preg_replace('/>\\s+</', '><', str_replace(array("\n", 'ogc:'), '', (string) $filter[0]->asXML())); } else { $filter = ''; } $wms_image_call = $wms_base_call . 'GetLegendGraphic&FORMAT=image/png&RULE=' . urlencode((string) $name[0]); $image_data = file_get_contents($wms_image_call); if (!$image_data) { err500('Cannot fetch legend image'); } $results[] = array('name' => (string) $name[0], 'ogc_filter' => $filter, 'image' => base64_encode($image_data)); } } return $results; }
require_once dirname(__FILE__) . '/helpers.php'; // Params $map = get_map_path(@$_REQUEST['map']); // Name of the layer to query $layername = @$_REQUEST['layer']; // Field name from where unique values are read $field = @$_REQUEST['field']; if (!$field) { err500('field parameter missing'); } // Get project $project = get_project($map); // Get layer $layer = get_layer($layername, $project); try { $dbh = get_connection($layer, $project, $map); $ds_parms = get_layer_info($layer, $project); $_field = preg_replace('/[^A-z0-9_-]]/', '', $field); $stmt = $dbh->prepare("SELECT DISTINCT {$_field} FROM {$ds_parms['table']} ORDER BY {$_field}"); $stmt->execute(); while ($row = $stmt->fetchColumn()) { $result[] = $row; } $json_result = json_encode($result); header('Content-type: application/json'); header('Content-length: ' . strlen($json_result)); echo $json_result; exit; } catch (PDOException $e) { err500('db error: ' . $e->getMessage()); }
@copyright: 2013-2014 by Alessandro Pasotti - ItOpen (http://www.itopen.it) <*****@*****.**> @license: GNU AGPL, see COPYING for details. */ require_once dirname(__FILE__) . '/config.php'; require_once dirname(__FILE__) . '/helpers.php'; // Params $map = get_map_path(@$_REQUEST['map']); $layername = trim(@$_REQUEST['searchtable']); $result = "nogeom"; if ($layername != "null") { if (array_key_exists($layername, $searchlayers_config)) { $layer_config = $searchlayers_config[$layername]; } else { err500('layer not found or not searchable'); } // Get the search string $displaytext = trim(@$_REQUEST['displaytext']); // Get project $project = get_project($map); // Sanitize $displaytext = preg_replace('/[^A-z0-9_-]\\s/', '', $displaytext); // Get the search column from QS or default, sanitize $search_column = preg_replace('/[^A-z0-9_-]\\s/', '', @$_REQUEST['searchcolumn']); if (!$search_column) { $search_column = $layer_config['search_column']; } // Get layer $layer = get_layer($layername, $project); $ds_params = get_layer_info($layer, $project);