Example #1
0
 }
 if (isset($_layer['opacity'])) {
     $layer->opacity = intval($_layer['opacity']);
 }
 if (isset($_layer['labelitem']) && !empty($_layer['labelitem'])) {
     $layer->labelitem = $_layer['labelitem'];
 }
 if (isset($_layer['classitem']) && !empty($_layer['classitem'])) {
     $layer->classitem = $_layer['classitem'];
 }
 if (isset($_layer['class']) && is_array($_layer['class'])) {
     foreach ($_layer['class'] as $c => $_class) {
         try {
             $class = $layer->getClass($c);
         } catch (MapScriptException $e) {
             $class = new classObj($layer);
         }
         if (isset($_class['name']) && !empty($_class['name'])) {
             $class->name = $_class['name'];
         }
         if (isset($_class['expression']) && !empty($_class['expression'])) {
             $class->setExpression($_class['expression']);
         }
         if (isset($_class['style']) && is_array($_class['style'])) {
             foreach ($_class['style'] as $s => $_style) {
                 try {
                     $style = $class->getStyle($s);
                 } catch (MapScriptException $e) {
                     $style = new styleObj($class);
                 }
                 $_style['color'] = array_filter($_style['color'], function ($v) {
Example #2
0
         $l->classitem = $_POST['classitem'];
         $map->save($mapfile);
         header('Location: index.php');
         exit;
     } catch (MapFile\Exception $e) {
         $error = $e->getMessage();
     }
 } else {
     if ($mapscript && isset($_POST['action']) && $_POST['action'] == 'save-class') {
         try {
             $map = new mapObj($mapfile);
             $l = $map->getLayer(intval($_GET['layer']));
             if (isset($_POST['class'])) {
                 $c = $l->getClass(intval($_POST['class']));
             } else {
                 $c = new classObj($l);
             }
             $c->name = $_POST['name'];
             $c->setExpression($_POST['expression']);
             $c->free();
             unset($c);
             $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();
         }
function saveToMapFile($map, $layer, $field, $style, $breaks, $colors, $mapfile)
{
    $type = $style;
    //remove old classes for layer $layer
    while ($layer->numclasses > 0) {
        $layer->removeClass(0);
    }
    //create classObject (set Name(Layername), set Expression(filter for different styling))
    for ($i = 0; $i < count($breaks); $i++) {
        $class = new classObj($layer);
        if ($type == "cs") {
            $class->set("name", $breaks[$i]);
            $class->setExpression("('[{$field}]' = '{$breaks[$i]}')");
        } else {
            if ($type == "ss") {
                $class->set("name", $breaks[$i]);
            } else {
                $j = $i + 1;
                //check if it is the starting class
                if ($i == 0) {
                    $class->set("name", $breaks[$i] . " - " . $breaks[$j]);
                    $class->setExpression("(([{$field}] >= {$breaks[$i]}) AND ([{$field}] <= {$breaks[$j]}))");
                } else {
                    if ($i < count($breaks) - 1) {
                        $class->set("name", $breaks[$i] . " - " . $breaks[$j]);
                        $class->setExpression("(([{$field}] > {$breaks[$i]}) AND ([{$field}] <= {$breaks[$j]}))");
                    } else {
                        $class->set("name", 'No class');
                    }
                }
            }
        }
        //create styleObject
        $style = new styleObj($class);
        $style->color->setRGB($colors[$i][0], $colors[$i][1], $colors[$i][2]);
        if ($layer->type == 0) {
            //Point
            $style->size = 4;
            $style->outlinecolor->setRGB(0, 0, 0);
            $style->symbolname = "circle";
        } else {
            if ($layer->type == 1) {
                //Line
                $style->width = 2;
            } else {
                if ($layer->type == 2) {
                    //Polygon
                    $style->width = 0.5;
                    $style->outlinecolor->setRGB(0, 0, 0);
                }
            }
        }
    }
    //save map
    $map->save($mapfile);
}