コード例 #1
0
ファイル: Legend.php プロジェクト: ronaldoof/geocloud2
 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);
 }
コード例 #2
0
ファイル: json.php プロジェクト: edmarmoretti/i3geo
            //
            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;
コード例 #3
0
ファイル: ms_parser.php プロジェクト: valentijnvenus/geocloud
<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>
コード例 #4
0
ファイル: WmsHandler.php プロジェクト: ekospinach/realtimebus
 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);
 }
コード例 #5
0
ファイル: preview.php プロジェクト: edmarmoretti/i3geo
$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;
}
コード例 #6
0
ファイル: ogc.php プロジェクト: edmarmoretti/i3geo
                     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);