예제 #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 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;
    }
}
예제 #4
0
             $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);
             $map->free();
예제 #5
0
 $map->legend->label->type = MS_TRUETYPE;
 $map->legend->label->font = $settings['font'];
 $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);
 if (isset($_POST['layers']) && is_array($_POST['layers'])) {
     foreach ($_POST['layers'] as $i => $_layer) {
         if (!isset($_layer['name']) || empty($_layer['name'])) {
             continue;
         }
         try {
             $layer = $map->getLayer($i);
         } catch (MapScriptException $e) {
             $layer = new layerObj($map);
         }
         if (isset($_layer['type'])) {
             $layer->type = intval($_layer['type']);
         }
         if (isset($_layer['name'])) {
             $layer->name = trim($_layer['name']);
         }
         if (isset($_POST['wms']) && $_POST['wms'] == 1) {
             /*if (empty($_layer['request'])) {
                 $layer->setMetadata('wms_enable_request', 'none');
               } else {
                 $r = '*';
                 if (!in_array('GetCapabilities', $_layer['request'])) $r.= ' !GetCapabilities';
예제 #6
0
 public function setUp()
 {
     $map_file = 'maps/labels.map';
     $map = new mapObj($map_file);
     $this->color = $map->getLayer(0)->getClass(0)->getLabel(0)->color;
 }
예제 #7
0
 $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) {
     $layer = $map->getLayer($k);
     $data = array();
     $data['name'] = $layer->name;
     $data['type'] = $layer->type;
     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 {