public function get_png() { $path = App::$param['path'] . "/app/wms/mapfiles/"; if (!\app\inc\Input::getPath()->part(6)) { $response['success'] = false; $response['message'] = "Need to specify schema when using PNG"; $response['code'] = 400; return $response; } if (\app\inc\Input::get("l")) { $layerNames = explode(";", \app\inc\Input::get("l")); $mapFile = \app\inc\Input::getPath()->part(5) . "_" . \app\inc\Input::getPath()->part(6) . ".map"; $map = ms_newMapobj($path . $mapFile); foreach ($layerNames as $layerName) { $layer = $map->getLayerByName($layerName); if ($layer) { $layer->status = MS_ON; } } } header('Content-type: image/png'); $legend = $map->drawLegend(); ob_start(); $legend->saveImage("", $map); $data = ob_get_clean(); exit($data); }
// if ($lcon == " " || $lcon == "") { $l->set("connection", $postgis_mapa); $l->setmetadata("CONEXAOORIGINAL", $lcon); } else { $l->set("connection", $postgis_mapa[$lcon]); $l->setmetadata("CONEXAOORIGINAL", $lcon); } } } } autoClasses($l, $oMap); ms_newLayerObj($oMap, $l); $oMap->save($nomeMapfileTmp); validaAcessoTemas($nomeMapfileTmp, true); $oMap = ms_newMapobj($nomeMapfileTmp); restauraCon($nomeMapfileTmp, $postgis_mapa); $layer = $oMap->getlayerbyname($tema); if ($layer == "") { echo "Layer nao encontrado"; exit; } $data = pegaDadosJ(); $format = $_GET["format"]; $jsonp = $_GET["jsonp"]; if ($format == "storymap") { //parametros via URL $storymap = $layer->getmetadata("storymap"); if ($storymap == "") { echo "Parametros nao definidos no METADATA storymap"; exit;
<table border=1> <?php ini_set("display_errors", "On"); error_reporting(3); include '../conf/main.php'; $map = ms_newMapobj($basePath . "/wms/mapfiles/" . $_GET['mapfile']); $layerArr = $map->getAllLayerNames(); //asort($layerArr); $i = 0; foreach ($layerArr as $layer) { $layerObj = $mapscriptObject->map->getlayerbyname($layer); if ($layerObj->getMetaData("appformap_loader") == "true") { echo "<tr><td>" . $layer . "</td><td>" . $layerObj->getMetaData("wms_title") . "</td></tr>\n"; } } ?> </table>
public function getMapImage(Request $request) { //tutti i parametri in minuscolo $getRequestParams = $request->query->all(); $requestParams = array(); foreach ($getRequestParams as $key => $val) { $requestParams[strtolower($key)] = $val; } //prendo il parametro layers, dove ci sono le linee da visualizzare in formato li_nr:str_li_var $layers = explode(',', $requestParams['layers']); if (count($layers) > 1 || $layers[0] != 'all') { $lines = array(); $whereClauses = array(); foreach ($layers as $layer) { if (!strpos($layer, ':')) { throw new Exception('Invalid layers parameter'); } list($line, $var) = explode(':', $layer); array_push($lines, (int) $line); if (!preg_match('/[0-9a-z]+/i', $var)) { throw new Exception('Invalid var paramter'); } array_push($whereClauses, "(rec_lid.li_nr = " . (int) $line . " and rec_lid.str_li_var = '{$var}')"); } } $sql = "select li_nr, li_r, li_g, li_b from vdv.line_attributes"; if (isset($lines)) { $sql .= " where li_nr in (" . implode(',', $lines) . ")"; } $res = $this->connection->query($sql); $classes = $res->fetchAll(\PDO::FETCH_ASSOC); /* $classes = array( array('li_nr'=>201, 'li_r'=>255, 'li_g'=>0, 'li_b'=>0), array('li_nr'=>211, 'li_r'=>0, 'li_g'=>255, 'li_b'=>0), ); */ $layerData = "the_geom FROM (SELECT rec_lid.li_nr, rec_lid.str_li_var, rec_lid.li_nr || ':' || rec_lid.str_li_var as gc_objid, ST_Collect(ort_edges.the_geom) AS the_geom FROM vdv.rec_lid INNER JOIN vdv.lid_verlauf ON rec_lid.li_nr=lid_verlauf.li_nr AND rec_lid.str_li_var=lid_verlauf.str_li_var INNER JOIN vdv.lid_verlauf next_verlauf ON rec_lid.li_nr=next_verlauf.li_nr AND rec_lid.str_li_var=next_verlauf.str_li_var AND lid_verlauf.li_lfd_nr+1=next_verlauf.li_lfd_nr LEFT JOIN vdv.ort_edges ON lid_verlauf.ort_nr=ort_edges.start_ort_nr AND lid_verlauf.onr_typ_nr=ort_edges.start_onr_typ_nr AND next_verlauf.ort_nr=ort_edges.end_ort_nr AND next_verlauf.onr_typ_nr=ort_edges.end_onr_typ_nr "; // $layerData = "the_geom from (select the_geom, li_nr, li_nr || ':' || str_li_var as gc_objid from vdv.rec_lid "; if (isset($whereClauses)) { $layerData .= "where " . implode(' OR ', $whereClauses); } $layerData .= "GROUP BY rec_lid.li_nr, rec_lid.str_li_var) AS foo USING UNIQUE gc_objid USING SRID=25832"; // echo $layerData; die(); //TODO: pescarlo da resources! $mapfilePath = __DIR__ . '/../../Resources/config/lines_mapfile.map'; $map = ms_newMapobj($mapfilePath); $layer = $map->getLayerByName('g_lines.line'); $layer->set('data', $layerData); foreach ($classes as $n => $classConfig) { $class = ms_newClassObj($layer); $class->set('name', 'dynamic_class_' . $n); $class->setExpression("('[li_nr]' eq '" . $classConfig['li_nr'] . "')"); $style = ms_newStyleObj($class); $style->color->setRGB($classConfig['li_r'], $classConfig['li_g'], $classConfig['li_b']); $style->outlinecolor->setRGB($classConfig['li_r'], $classConfig['li_g'], $classConfig['li_b']); $style->set('size', 3); $style->set('width', 3); //$style->width = 2; //$style->symbol = 'CIRCLE'; } $objRequest = ms_newOwsrequestObj(); $presetParams = array('layers' => 'g_lines.line', 'map' => null); foreach ($requestParams as $key => $value) { if (!is_string($key)) { continue; } if (!empty($presetParams[$key])) { $objRequest->setParameter($key, $presetParams[$key]); } else { $objRequest->setParameter($key, stripslashes($value)); } } ms_ioinstallstdouttobuffer(); $map->save('/tmp/debug.map'); $map->owsdispatch($objRequest); $contentType = ms_iostripstdoutbuffercontenttype(); //accrocchio, ma ms_iogetstdoutbufferstring() non funziona, mi da sempre una immagine vuota! ob_start(); ms_iogetStdoutBufferBytes(); $image = ob_get_contents(); ob_end_clean(); //die($image); ms_ioresethandlers(); return array($contentType, $image); }
$proto = "http" . (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" ? "s" : "") . "://"; $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; $or = $proto . $server . $_SERVER['PHP_SELF']; $or = $or . "?tema=" . $tema . "&"; $oMap->setmetadata("ows_onlineresource", $or); $oMap->setmetadata("wms_onlineresource", $or); $oMap->setmetadata("wms_attribution_onlineresource", $proto . $server . dirname($_SERVER['PHP_SELF'])); $oMap->setmetadata("ows_enable_request", "*"); //parametro mandatario if ($oMap->getmetadata("wms_srs") == "") { $oMap->setmetadata("wms_srs", "EPSG:4326"); } $e = $oMap->extent; $extensaoMap = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy; //gera o mapa $nmap = ms_newMapobj($tema); $nmap->setmetadata("ows_enable_request", "*"); $l = $nmap->getlayer(0); //$l->setmetadata("ows_title",pegaNome($l)); $l->setmetadata("ows_srs", $listaepsg); $l->set("group", ""); $l->setmetadata("gml_include_items", "all"); $l->set("template", "none.htm"); $l->set("dump", MS_TRUE); $l->setmetadata("WMS_INCLUDE_ITEMS", "all"); $l->setmetadata("WFS_INCLUDE_ITEMS", "all"); //inclui extensao geografica $extensao = $l->getmetadata("EXTENSAO"); if ($extensao == "") { $extensao = $extensaoMap; }
foreach ($lts as $t) { if (strtolower($t["ogc"]) == "sim") { $codigosTema[$t["tid"]] = array("tema" => $t["tid"], "fonte" => $t["link"]); } } } } } } } //echo "<pre>".var_dump($codigosTema);exit; foreach ($codigosTema as $c) { $codigoTema = $c["tema"]; if (file_exists($locaplic . "/temas/" . $codigoTema . ".map")) { if (@ms_newMapobj($locaplic . "/temas/" . $codigoTema . ".map")) { $nmap = ms_newMapobj($locaplic . "/temas/" . $codigoTema . ".map"); $nmap->setmetadata("ows_enable_request", "*"); $ts = $nmap->getalllayernames(); foreach ($ts as $t) { if ($oMap->getlayerbyname($t) == "") { $l = $nmap->getlayerbyname($t); $extensao = $l->getmetadata("EXTENSAO"); if ($extensao == "") { $extensao = $extensaoMap; } $l->setmetadata("wms_extent", $extensao); $l->setmetadata("ows_title", pegaNome($l)); $l->setmetadata("ows_srs", $listaepsg); $l->set("status", MS_OFF); $l->setmetadata("gml_include_items", "all"); $l->set("dump", MS_TRUE);