} 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) { $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; }
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; } }
function getLayers($mapFile) { $attr = "{'attributes':["; $map = new mapObj($mapFile); $layers = $map->getAllLayerNames(); foreach ($layers as $layerName) { $layer = $map->getLayerByName($layerName); $name = $layer->name; $type = $layer->type; $minx = $layer->getExtent()->minx; $miny = $layer->getExtent()->miny; $maxx = $layer->getExtent()->maxx; $maxy = $layer->getExtent()->maxy; switch ($type) { case '0': $typeString = "Point"; break; case '1': $typeString = "Line"; break; case '2': $typeString = "Polygon"; break; default: break; } $dataSource = $layer->data; $attr .= "{'id':'{$name}', 'layerName':'{$name}', 'type':'{$typeString}', 'datasource':'{$dataSource}', 'extent':{'minx':{$minx},'miny':{$miny},'maxx':{$maxx},'maxy':{$maxy}}}, "; } $attr .= "]}"; return $attr; }