} 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) {
$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); }