Пример #1
0
 public function testinsertremoveStyle()
 {
     $map = new mapObj('maps/labels.map');
     $layer = $map->getLayer(1);
     $classtmp = $layer->getClass(0);
     $style = $classtmp->removeStyle(0);
     $this->assertEquals(0, $this->class->insertStyle($style));
     $this->assertInstanceOf('styleObj', $this->class->removeStyle(0));
 }
 public function setUp()
 {
     $map_file = 'maps/labels-leader.map';
     $map = new mapObj($map_file);
     $layer = $map->getLayer(0);
     $class = $layer->getClass(0);
     $label = $class->getLabel(0);
     $this->labelleader = $class->leader;
 }
Пример #3
0
 function __construct()
 {
     if (\app\inc\Input::getPath()->part(3) == "tilecache") {
         $postgisschema = \app\inc\Input::getPath()->part(4);
     } else {
         $postgisschema = \app\inc\Input::getPath()->part(3);
     }
     $db = \app\inc\Input::getPath()->part(2);
     $dbSplit = explode("@", $db);
     if (sizeof($dbSplit) == 2) {
         $db = $dbSplit[1];
     }
     $path = App::$param['path'] . "/app/wms/mapfiles/";
     $name = $db . "_" . $postgisschema . ".map";
     $oMap = new \mapObj($path . $name);
     $request = new \OWSRequestObj();
     if ($_SERVER['REQUEST_METHOD'] === 'GET') {
         foreach ($_GET as $k => $v) {
             if (strtolower($k) == "layers" || strtolower($k) == "layer" || strtolower($k) == "typename" || strtolower($k) == "typenames") {
                 $layers = $v;
             }
             $request->setParameter($k, $v);
         }
     } else {
         $request->loadParams();
     }
     if ($_SESSION['http_auth'] != $db) {
         \app\models\Database::setDb($db);
         $postgisObject = new \app\inc\Model();
         foreach (explode(",", $layers) as $layer) {
             $auth = $postgisObject->getGeometryColumns($layer, "authentication");
             $layerSplit = explode(".", $layer);
             $HTTP_FORM_VARS["TYPENAME"] = $layerSplit[1];
             if ($auth == "Read/write") {
                 include 'inc/http_basic_authen.php';
             } else {
                 include 'inc/http_basic_authen_subuser.php';
             }
         }
     }
     ms_ioinstallstdouttobuffer();
     $oMap->owsdispatch($request);
     $contenttype = ms_iostripstdoutbuffercontenttype();
     if ($contenttype == 'image/png') {
         header('Content-type: image/png');
     } else {
         header('Content-type: text/xml');
     }
     ms_iogetStdoutBufferBytes();
     print "<!--\n";
     include "README";
     print "\n-->\n";
     ms_ioresethandlers();
 }
Пример #4
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;
    }
}
Пример #5
0
 public function testQueryByFilter()
 {
     $map_file = 'maps/filtermap.map';
     $map = new mapObj($map_file);
     $this->assertEquals(0, $map->queryByFilter("'[CTY_NAME]' = 'Itasca'"));
 }
Пример #6
0
         } else {
             $c = new MapFile\LayerClass();
             $l->addClass($c);
         }
         $c->name = $_POST['name'];
         $c->expression = $_POST['expression'];
         $map->save($mapfile);
         header('Location: layer-class.php?layer=' . $_GET['layer']);
         exit;
     } catch (MapFile\Exception $e) {
         $error = $e->getMessage();
     }
 } else {
     if ($mapscript && (isset($_GET['down']) || isset($_GET['up']) || isset($_GET['remove']))) {
         try {
             $map = new mapObj($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']));
                     }
                 }
             }
             $l->free();
             unset($l);
             $map->save($mapfile);
Пример #7
0
<?php

session_start();
$settings = parse_ini_file('settings.ini');
$mapfile = $_SESSION['mapfile-generator']['mapfile'];
$map = new mapObj($mapfile);
if (isset($_POST['up']) || isset($_POST['down']) || isset($_POST['delete'])) {
    if (isset($_POST['up'])) {
        $map->moveLayerUp(intval($_POST['up']));
    } else {
        if (isset($_POST['down'])) {
            $map->moveLayerDown(intval($_POST['down']));
        } else {
            if (isset($_POST['delete'])) {
                $map->removeLayer(intval($_POST['delete']));
            }
        }
    }
} else {
    $map->setProjection($_POST['projection'], MS_TRUE);
    if (strlen($_POST['extentminx']) > 0 && strlen($_POST['extentminy']) > 0 && strlen($_POST['extentmaxx']) > 0 && strlen($_POST['extentmaxy']) > 0) {
        $map->setExtent($_POST['extentminx'], $_POST['extentminy'], $_POST['extentmaxx'], $_POST['extentmaxy']);
    }
    $map->setSize(500, 500);
    $map->setFontSet($settings['fontset']);
    $map->setSymbolSet($settings['symbolset']);
    if (!empty($_POST['name'])) {
        $map->name = trim($_POST['name']);
    }
    if (isset($_POST['wms']) && $_POST['wms'] == 1) {
        $map->setMetaData('wms_enable_request', '*');
Пример #8
0
<?php

session_start();
$mapscript = extension_loaded('mapscript');
if ($mapscript && isset($_SESSION['mapfile-generator']['mapfile'], $_GET['layer'])) {
    $_map = new mapObj($_SESSION['mapfile-generator']['mapfile']);
    header('Content-Type: text/xml');
    $l = $_map->getLayer(intval($_GET['layer']));
    $l->set('status', MS_ON);
    echo $_map->generateSLD();
}
exit;
Пример #9
0
 public function setUp()
 {
     $map = new mapObj('maps/labels.map');
     $this->symbol = $map->getSymbolObjectById($map->getSymbolByName("plant"));
 }
Пример #10
0
 public function setUp()
 {
     $map_file = 'maps/labels.map';
     $map = new mapObj($map_file);
     $this->color = $map->getLayer(0)->getClass(0)->getLabel(0)->color;
 }
Пример #11
0
    if (isset($_GET['map']) && file_exists($_GET['map'])) {
        $_SESSION['mapfile-generator']['source'] = $_GET['map'];
        try {
            $_map = new Map($_GET['map']);
            $_map->save($_SESSION['mapfile-generator']['mapfile']);
        } catch (Exception $e) {
            $error = $e->getMessage();
        }
    } else {
        unset($_SESSION['mapfile-generator']['source']);
        $_map = new Map();
        $_map->save($_SESSION['mapfile-generator']['mapfile']);
    }
}
if ($mapscript) {
    $map = new mapObj($_SESSION['mapfile-generator']['mapfile']);
    $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_json = array();
    foreach ($layers as $k => $name) {
Пример #12
0
function getStylesForClasses($mapFile, $layerName)
{
    $attr = "{'attributes':[";
    $map = new mapObj($mapFile);
    $layer = $map->getLayerByName($layerName);
    for ($i = 0; $i < $layer->numclasses; $i++) {
        $class = $layer->getClass($i);
        $className = $class->name;
        $index = 0;
        $patternString = "";
        for ($j = 0; $j < $class->numstyles; $j++) {
            $style = $class->getStyle($j);
            error_log($style->color->red);
            error_log($style->color->green);
            error_log($style->color->blue);
            if ($style->color->red > -1 && $style->color->green > -1 && $style->color->blue > -1) {
                $color = rgb2hex([$style->color->red, $style->color->green, $style->color->blue]);
            } else {
                $color = "";
            }
            if ($style->outlinecolor->red > -1 && $style->outlinecolor->green > -1 && $style->outlinecolor->blue > -1) {
                $outlineColor = rgb2hex([$style->outlinecolor->red, $style->outlinecolor->green, $style->outlinecolor->blue]);
            } else {
                $outlineColor = "";
            }
            $width = $style->width;
            $size = $style->size;
            $symbol = $style->symbolname;
            $angle = $style->angle;
            $pattern = $style->getPatternArray();
            foreach ($pattern as $value) {
                $patternString .= " " . $value;
            }
            $gap = $style->gap;
            $index++;
            $attr .= "{'color':'{$color}', 'outlinecolor':'{$outlineColor}', 'width':'{$width}', 'size':'{$size}', 'symbol':'{$symbol}', 'className':'{$className}', 'index':'{$index}', 'gap':'{$gap}', 'angle':'{$angle}', 'pattern':'{$patternString}'},";
        }
    }
    $attr .= "]}";
    return $attr;
}
Пример #13
0
             $_map->legend->label->size = 8.0;
             //$_map->scalebar->label->type = MS_TRUETYPE;
             $_map->scalebar->label->font = $settings['font'];
             $_map->scalebar->label->size = 8.0;
             $_map->scalebar->units = MS_KILOMETERS;
             $_map->scalebar->color->setRGB(0, 0, 0);
             $_map->scalebar->outlinecolor->setRGB(0, 0, 0);
             $_map->save($_SESSION['mapfile-generator']['mapfile']);
             $_map->free();
             unset($_map);
         } catch (MapScriptException $e) {
             $error = $e->getMessage();
         }
     }
 }
 $map = new mapObj($_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->setProjection($_POST['projection'], MS_FALSE);
                 $map->setExtent($_POST['extentminx'], $_POST['extentminy'], $_POST['extentmaxx'], $_POST['extentmaxy']);
                 if (isset($_POST['wms']) && $_POST['wms'] == 1) {
                     $map->setMetaData('wms_enable_request', '*');