Ejemplo n.º 1
0
function mapfile_getlayers($fname)
{
    if (extension_loaded('mapscript')) {
        $map = new mapObj($fname);
        $map_name = $map->name;
        $map_extent = array($map->extent->minx, $map->extent->miny, $map->extent->maxx, $map->extent->maxy);
        if (preg_match('/(epsg:[0-9]+)/i', $map->getProjection(), $_p)) {
            $map_projection = $_p[1];
        } else {
            $map_projection = 'epsg:3857';
        }
        $wms_enabled = strlen($map->getMetaData('wms_enable_request')) > 0;
        if ($wms_enabled) {
            $map_wmstitle = strlen($map->getMetaData('wms_title')) > 0 ? $map->getMetaData('wms_title') : NULL;
            $map_wmsabstract = strlen($map->getMetaData('wms_abstract')) > 0 ? $map->getMetaData('wms_abstract') : NULL;
        }
        $layers = $map->getAllLayerNames();
        $_layers = array();
        foreach ($layers as $k => $name) {
            $layer = $map->getLayer($k);
            $data = array();
            if ($wms_enabled) {
                $data['wms_title'] = strlen($layer->getMetaData('wms_title')) > 0 ? $layer->getMetaData('wms_title') : NULL;
                $data['wms_abstract'] = strlen($layer->getMetaData('wms_abstract')) > 0 ? $layer->getMetaData('wms_abstract') : NULL;
                $data['wms_include_items'] = strlen($layer->getMetaData('wms_include_items')) > 0 ? $layer->getMetaData('wms_include_items') : NULL;
                $data['wms_exclude_items'] = strlen($layer->getMetaData('wms_exclude_items')) > 0 ? $layer->getMetaData('wms_exclude_items') : NULL;
                $data['wms_attribution_title'] = strlen($layer->getMetaData('wms_attribution_title')) > 0 ? $layer->getMetaData('wms_attribution_title') : NULL;
                $data['wms_attribution_onlineresource'] = strlen($layer->getMetaData('wms_attribution_onlineresource')) > 0 ? $layer->getMetaData('wms_attribution_onlineresource') : NULL;
                $data['wms_enable_request'] = strlen($layer->getMetaData('wms_enable_request')) > 0 ? $layer->getMetaData('wms_enable_request') : NULL;
            }
            if (preg_match('/(epsg:[0-9]+)/i', $layer->getProjection(), $_p)) {
                $data['projection'] = $_p[1];
            } else {
                $data['projection'] = 'epsg:3857';
            }
            $data['name'] = $layer->name;
            $data['type'] = $layer->type;
            $data['connectiontype'] = $layer->connectiontype;
            $data['connection'] = $layer->connection;
            $data['data'] = $layer->data;
            $data['filteritem'] = $layer->filteritem;
            $data['filter'] = $layer->getFilterString();
            $data['group'] = $layer->group;
            $data['minscaledenom'] = $layer->minscaledenom != -1 ? $layer->minscaledenom : NULL;
            $data['maxscaledenom'] = $layer->maxscaledenom != -1 ? $layer->maxscaledenom : NULL;
            $data['opacity'] = $layer->opacity;
            $data['labelitem'] = $layer->labelitem;
            $data['classitem'] = $layer->classitem;
            $data['status'] = $layer->status;
            $data['class'] = array();
            for ($c = 0; $c < $layer->numclasses; $c++) {
                $class = $layer->getClass($c);
                $data['class'][$c]['name'] = $class->name;
                $data['class'][$c]['expression'] = $class->getExpressionString();
                $data['class'][$c]['style'] = array();
                if ($class->numstyles > 0) {
                    for ($s = 0; $s < $class->numstyles; $s++) {
                        $style = $class->getStyle($s);
                        $data['class'][$c]['style'][$s]['color'] = array('r' => $style->color->red, 'g' => $style->color->green, 'b' => $style->color->blue);
                        $data['class'][$c]['style'][$s]['outlinecolor'] = array('r' => $style->outlinecolor->red, 'g' => $style->outlinecolor->green, 'b' => $style->outlinecolor->blue);
                        $data['class'][$c]['style'][$s]['width'] = $style->width;
                        $data['class'][$c]['style'][$s]['symbolname'] = $style->symbolname;
                        $data['class'][$c]['style'][$s]['size'] = $style->size;
                        $data['class'][$c]['style'][$s]['pattern'] = $style->getPatternArray();
                    }
                }
                $data['class'][$c]['label'] = array();
                if ($class->numlabels > 0) {
                    for ($l = 0; $l < $class->numlabels; $l++) {
                        $label = $class->getLabel($l);
                        $data['class'][$c]['label'][$l]['size'] = $label->size;
                        $data['class'][$c]['label'][$l]['align'] = $label->align;
                        $data['class'][$c]['label'][$l]['position'] = $label->position;
                        $data['class'][$c]['label'][$l]['color'] = array('r' => $label->color->red, 'g' => $label->color->green, 'b' => $label->color->blue);
                        $data['class'][$c]['label'][$l]['outlinecolor'] = array('r' => $label->outlinecolor->red, 'g' => $label->outlinecolor->green, 'b' => $label->outlinecolor->blue);
                        $data['class'][$c]['label'][$l]['minscaledenom'] = $label->minscaledenom != -1 ? $label->minscaledenom : NULL;
                        $data['class'][$c]['label'][$l]['maxscaledenom'] = $label->maxscaledenom != -1 ? $label->maxscaledenom : NULL;
                    }
                }
            }
            $_layers[$k] = $data;
        }
        $map->free();
        unset($map);
    } else {
        $map = new MapFile\Map($fname);
        $map_name = $map->name;
        $map_extent = $map->extent;
        $map_projection = !is_null($map->projection) ? $map->projection : 'epsg:3857';
        $wms_enabled = $map->getMetadata('wms_enable_request') !== FALSE;
        if ($wms_enabled) {
            $map_wmstitle = $map->getMetadata('wms_title') !== FALSE ? $map->getMetadata('wms_title') : NULL;
            $map_wmsabstract = $map->getMetadata('wms_abstract') !== FALSE ? $map->getMetadata('wms_abstract') : NULL;
        }
        $layers = $map->getLayers();
        $_layers = array();
        foreach ($layers as $k => $layer) {
            $data = array();
            if ($wms_enabled) {
                $data['wms_title'] = $layer->getMetadata('wms_title') !== FALSE ? $layer->getMetadata('wms_title') : NULL;
                $data['wms_abstract'] = $layer->getMetadata('wms_abstract') !== FALSE ? $layer->getMetadata('wms_abstract') : NULL;
                $data['wms_include_items'] = $layer->getMetadata('wms_include_items') !== FALSE ? $layer->getMetadata('wms_include_items') : NULL;
                $data['wms_exclude_items'] = $layer->getMetadata('wms_exclude_items') !== FALSE ? $layer->getMetadata('wms_exclude_items') : NULL;
                $data['wms_attribution_title'] = $layer->getMetadata('wms_attribution_title') !== FALSE ? $layer->getMetadata('wms_attribution_title') : NULL;
                $data['wms_attribution_onlineresource'] = $layer->getMetadata('wms_attribution_onlineresource') !== FALSE ? $layer->getMetadata('wms_attribution_onlineresource') : NULL;
                $data['wms_enable_request'] = $layer->getMetadata('wms_enable_request') !== FALSE ? $layer->getMetadata('wms_enable_request') : NULL;
            }
            $data['name'] = $layer->name;
            $data['type'] = $layer->type;
            $data['projection'] = $layer->projection;
            $data['connectiontype'] = $layer->connectiontype;
            $data['connection'] = $layer->connection;
            $data['data'] = $layer->data;
            $data['filteritem'] = $layer->filteritem;
            $data['filter'] = $layer->filter;
            $data['group'] = $layer->group;
            $data['minscaledenom'] = $layer->minscaledenom;
            $data['maxscaledenom'] = $layer->maxscaledenom;
            $data['opacity'] = $layer->opacity;
            $data['labelitem'] = $layer->labelitem;
            $data['classitem'] = $layer->classitem;
            $data['status'] = $layer->status;
            $data['class'] = array();
            $_classes = $layer->getClasses();
            foreach ($_classes as $c => $class) {
                $data['class'][$c]['name'] = $class->name;
                $data['class'][$c]['expression'] = $class->expression;
                $data['class'][$c]['style'] = array();
                $_styles = $class->getStyles();
                foreach ($_styles as $s => $style) {
                    $data['class'][$c]['style'][$s]['color'] = $style->getColor();
                    $data['class'][$c]['style'][$s]['outlinecolor'] = $style->getOutlineColor();
                    $data['class'][$c]['style'][$s]['width'] = $style->width;
                    $data['class'][$c]['style'][$s]['symbolname'] = $style->symbolname;
                    $data['class'][$c]['style'][$s]['size'] = $style->size;
                    $data['class'][$c]['style'][$s]['pattern'] = $style->pattern;
                }
                $data['class'][$c]['label'] = array();
                $_labels = $class->getLabels();
                foreach ($_labels as $l => $label) {
                    $label = $class->getLabel(0);
                    if ($label) {
                        $data['class'][$c]['label'][$l]['size'] = $label->size;
                        $data['class'][$c]['label'][$l]['align'] = $label->align;
                        $data['class'][$c]['label'][$l]['position'] = $label->position;
                        $data['class'][$c]['label'][$l]['color'] = $label->getColor();
                        $data['class'][$c]['label'][$l]['outlinecolor'] = $label->getOutlineColor();
                        $data['class'][$c]['label'][$l]['minscaledenom'] = $label->minscaledenom != -1 ? $label->minscaledenom : NULL;
                        $data['class'][$c]['label'][$l]['maxscaledenom'] = $label->maxscaledenom != -1 ? $label->maxscaledenom : NULL;
                    }
                }
            }
            $_layers[$k] = $data;
        }
    }
    if (isset($_layers)) {
        return $_layers;
    } else {
        return FALSE;
    }
}
Ejemplo n.º 2
0
        $layer->setFilter($_POST['filter']);
        $layer->group = $_POST['group'];
        $layer->free();
        unset($layer);
        $map->save($mapfile);
        $map->free();
        unset($map);
        header('Location: index.php');
        exit;
    } catch (MapScriptException $e) {
        $error = $e->getMessage();
    }
} else {
    if (isset($_POST['action']) && $_POST['action'] == 'save') {
        try {
            $map = new MapFile\Map($mapfile);
            if (isset($_GET['layer'])) {
                $layer = $map->getLayer(intval($_GET['layer']));
            } else {
                $layer = new MapFile\Layer();
                $map->addLayer($layer);
            }
            $layer->type = intval($_POST['type']);
            $layer->name = trim($_POST['name']);
            $layer->projection = $_POST['projection'];
            $layer->connectiontype = $_POST['connectiontype'];
            $layer->connection = $_POST['connection'];
            $layer->data = $_POST['data'];
            $layer->filteritem = $_POST['filteritem'];
            $layer->filter = $_POST['filter'];
            $layer->group = $_POST['group'];
Ejemplo n.º 3
0
             }
         }
         $l->free();
         unset($l);
         $map->save($mapfile);
         $map->free();
         unset($map);
         header('Location: layer-class.php?layer=' . $_GET['layer']);
         exit;
     } catch (MapScriptException $e) {
         $error = $e->getMessage();
     }
 } else {
     if (isset($_GET['down']) || isset($_GET['up']) || isset($_GET['remove'])) {
         try {
             $map = new MapFile\Map($mapfile);
             $l = $map->getLayer(intval($_GET['layer']));
             if (isset($_GET['down'])) {
                 $l->moveClassDown(intval($_GET['down']));
             } else {
                 if (isset($_GET['up'])) {
                     $l->moveClassUp(intval($_GET['up']));
                 } else {
                     if (isset($_GET['remove'])) {
                         $l->removeClass(intval($_GET['remove']));
                     }
                 }
             }
             $map->save($mapfile);
             header('Location: layer-class.php?layer=' . $_GET['layer']);
             exit;
Ejemplo n.º 4
0
             $_map->setSize(500, 500);
             $_map->setFontSet($settings['fontset']);
             $_map->setSymbolSet($settings['symbolset']);
             $_map->legend->label->font = $settings['font'];
             $_map->scalebar->label->font = $settings['font'];
             $_map->scalebar->label->size = 8.0;
             $_map->scalebar->units = MapFile\Scalebar::UNITS_KILOMETERS;
             $_map->scalebar->setColor(0, 0, 0);
             $_map->scalebar->setOutlineColor(0, 0, 0);
             $_map->save($_SESSION['mapfile-generator']['mapfile']);
         } catch (MapFile\Exception $e) {
             $error = $e->getMessage();
         }
     }
 }
 $map = new MapFile\Map($_SESSION['mapfile-generator']['mapfile']);
 if (isset($_GET['up'])) {
     $map->moveLayerUp(intval($_GET['up']));
 } else {
     if (isset($_GET['down'])) {
         $map->moveLayerDown(intval($_GET['down']));
     } else {
         if (isset($_GET['remove'])) {
             $map->removeLayer(intval($_GET['remove']));
         } else {
             if (isset($_POST['action']) && $_POST['action'] == 'save') {
                 $map->name = trim($_POST['name']);
                 $map->projection = $_POST['projection'];
                 $map->setExtent($_POST['extentminx'], $_POST['extentminy'], $_POST['extentmaxx'], $_POST['extentmaxy']);
             }
         }