Example #1
0
 /**
  * creates dynamic layer based on text definition (map file syntax)
  * layer is then added to map object
  */
 protected function createDynLayer($layerName, $layerString)
 {
     //error_log($layerString);
     $dynLayer = ms_newLayerObj($this->map);
     $dynLayer->updateFromString($layerString);
     $this->setLayerParameters($dynLayer);
 }
Example #2
0
 private function url_createLayer()
 {
     if (!is_file($_SESSION['PM_TPL_MAP_FILE'])) {
         error_log("P.MAPPER ERROR: cannot find template map. Check INI settings for 'tplMapFile'");
         return false;
     }
     $tplMap = ms_newMapObj($_SESSION['PM_TPL_MAP_FILE']);
     $poiLayer = $tplMap->getLayerByName("poi");
     $txtLayer = ms_newLayerObj($this->map, $poiLayer);
     $txtLayer->set("name", "url_txtlayer");
     $txtLayer->set("type", 0);
     $txtLayer->set("status", MS_ON);
     $url_points = $_SESSION['url_points'];
     foreach ($url_points as $upnt) {
         // Create line, add xp point, create shape and add line and text, add shape to layer
         //$pointList = explode(",", $f);
         $px = $upnt[0];
         $py = $upnt[1];
         $txt = $upnt[2];
         $newLine = ms_newLineObj();
         $newLine->addXY($px, $py);
         $newShape = ms_newShapeObj(0);
         $newShape->add($newLine);
         $newShape->set("text", $txt);
         $txtLayer->addFeature($newShape);
     }
 }
Example #3
0
function gml2wkt($gml)
{
    // Parse GML file
    include "funcoes_gerais.php";
    $k = array_keys($_GET);
    session_name("i3GeoPHP");
    session_id($_GET[$k[0]]);
    session_start();
    //var_dump($_SESSION);exit;
    $nome = $_SESSION["dir_tmp"] . "/gml_" . nomeRandomico();
    $nomegml = $nome . ".gml";
    $nomemap = $_SESSION["map_file"];
    $gml = str_replace("xsi:schemaLocation", "erro", $gml);
    gravaDados(array($gml), $nomegml);
    $map = new mapObj($nomemap);
    $layer = ms_newLayerObj($map);
    $layer->setConnectionType(MS_OGR);
    $layer->set("connection", $nomegml);
    $layer->set("template", "none.html");
    $layer->set("type", MS_LAYER_POLYGON);
    $layer->set("name", $nome);
    $layer->set("status", MS_DEFAULT);
    $layer->setmetadata("tema", $nome);
    $classe = ms_newClassObj($layer);
    $novoestilo = ms_newStyleObj($classe);
    $ncor = $novoestilo->color;
    $ncor->setrgb(255, 255, 255);
    //$map->save($nomemap);
    //exit;
    $layer->queryByrect($map->extent);
    $sopen = $layer->open();
    $shape = $layer->getShape($layer->getResult(0));
    $wkt = $shape->towkt();
    return json_encode(array($wkt));
}
Example #4
0
function markerclusterMapfile()
{
    global $dir, $map_file, $layer, $base, $locaplic, $dir_tmp, $postgis_mapa;
    if (empty($map_file) && file_exists($dir . "/../../temas/{$layer}.map")) {
        $versao = versao();
        $versao = $versao["principal"];
        if (!isset($base) || $base == "") {
            if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
                $base = $locaplic . "/aplicmap/geral1windowsv" . $versao . ".map";
            } else {
                if ($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv' . $versao . '.map')) {
                    $base = "/var/www/i3geo/aplicmap/geral1debianv" . $versao . ".map";
                }
                if ($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                    $base = "/var/www/html/i3geo/aplicmap/geral1fedorav" . $versao . ".map";
                }
                if ($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                    $base = "/opt/www/html/i3geo/aplicmap/geral1v" . $versao . ".map";
                }
                if ($base == "") {
                    $base = $locaplic . "/aplicmap/geral1v" . $versao . ".map";
                }
            }
        }
        $map_file = $dir_tmp . "/" . nomeRandomico() . ".map";
        $mapa = ms_newMapObj($base);
        $tempMapa = ms_newMapObj($dir . "/../../temas/{$layer}.map");
        $layern = $tempMapa->getlayer(0);
        restauraConObj($mapa, $postgis_mapa);
        ms_newLayerObj($mapa, $layern);
        $mapa->save($map_file);
    }
    return $map_file;
}
Example #5
0
function draw_header($map, $img, $width, $height)
{
    /*
     * Draw the black bar at the top of the screen
     */
    $layer = ms_newLayerObj($map);
    $layer->set("status", MS_ON);
    $layer->set("type", MS_LAYER_POLYGON);
    $layer->set("transform", MS_OFF);
    $wkt = "POLYGON((0 0, 0 {$height}, {$width} {$height}, {$width} 0, 0 0))";
    $layer->addFeature(ms_shapeObjFromWkt($wkt));
    $layerc0 = ms_newClassObj($layer);
    $layerc0s0 = ms_newStyleObj($layerc0);
    $layerc0s0->color->setRGB(0, 0, 0);
    $layer->draw($img);
}
Example #6
0
function mktitle($map, $imgObj, $titlet, $subtitle = "", $width = 640)
{
    $height = $subtitle == "" ? 36 : 53;
    $layer = ms_newLayerObj($map);
    $layer->set("status", MS_ON);
    $layer->set("type", MS_LAYER_POLYGON);
    $layer->set("transform", MS_OFF);
    $wkt = "POLYGON((0 0, 0 {$height}, {$width} {$height}, {$width} 0, 0 0))";
    $layer->addFeature(ms_shapeObjFromWkt($wkt));
    $layerc0 = ms_newClassObj($layer);
    $layerc0s0 = ms_newStyleObj($layerc0);
    $layerc0s0->color->setRGB(0, 0, 0);
    $layer->draw($imgObj);
    $tlayer = $map->getLayerByName("iem_headerbar_title");
    $point = ms_newpointobj();
    $point->setXY(82, 22);
    $point->draw($map, $tlayer, $imgObj, 0, $titlet);
    if ($subtitle != "") {
        $point = ms_newpointobj();
        $point->setXY(82, 39);
        $point->draw($map, $tlayer, $imgObj, 1, $subtitle);
    }
}
Example #7
0
        if ($lcon == " " || $lcon == "" || in_array($lcon, array_keys($postgis_mapa))) {
            //
            //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição
            //
            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");
Example #8
0
 function __construct()
 {
     if (\app\inc\Input::getPath()->part(3) == "tilecache") {
         $postgisschema = \app\inc\Input::getPath()->part(4);
     } else {
         $postgisschema = \app\inc\Input::getPath()->part(3);
     }
     $db = \app\inc\Input::getPath()->part(2);
     $dbSplit = explode("@", $db);
     if (sizeof($dbSplit) == 2) {
         $db = $dbSplit[1];
     }
     $path = App::$param['path'] . "/app/wms/mapfiles/";
     $name = $db . "_" . $postgisschema . ".map";
     $oMap = new \mapObj($path . $name);
     $request = new \OWSRequestObj();
     if ($_SERVER['REQUEST_METHOD'] === 'GET') {
         foreach ($_GET as $k => $v) {
             if (strtolower($k) == "layers" || strtolower($k) == "layer" || strtolower($k) == "typename" || strtolower($k) == "typenames") {
                 $layers = $v;
             }
             $request->setParameter($k, $v);
         }
     } else {
         $request->loadParams();
     }
     if ($_SESSION['http_auth'] != $db) {
         \app\models\Database::setDb($db);
         $postgisObject = new \app\inc\Model();
         foreach (explode(",", $layers) as $layer) {
             $auth = $postgisObject->getGeometryColumns($layer, "authentication");
             $layerSplit = explode(".", $layer);
             $HTTP_FORM_VARS["TYPENAME"] = $layerSplit[1];
             if ($auth == "Read/write") {
                 include 'inc/http_basic_authen.php';
             } else {
                 include 'inc/http_basic_authen_subuser.php';
             }
         }
     }
     if ($_GET['sql_layer']) {
         include '../libs/functions.php';
         include '../conf/main.php';
         $postgisdb = "mydb";
         $request->setParameter("SLD_BODY", "<StyledLayerDescriptor version='1.1.0'><NamedLayer><Name>sql</Name><UserStyle><Title>xxx</Title><FeatureTypeStyle><Rule><LineSymbolizer><Stroke><CssParameter name='stroke'>#FFFF00</CssParameter><CssParameter name='stroke-width'>15</CssParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer></StyledLayerDescriptor>\n                ");
         $postgisObj = new postgis();
         $postgisObj2 = new postgis();
         $view = "public.hello";
         $sqlView = "CREATE VIEW {$view} as " . urldecode($_GET['sql_layer']);
         $postgisObj->connect();
         $postgisObj->execQuery($sqlView);
         $postgisObj->execQuery("CREATE SEQUENCE _serial START 1");
         $arrayWithFields = $postgisObj2->getMetaData($view);
         foreach ($arrayWithFields as $key => $arr) {
             if ($arr['type'] == "geometry") {
                 $fieldsArr[] = "transform(" . $key . ",900913) as the_geom";
             } else {
                 $fieldsArr[] = $key;
             }
         }
         $fieldsArr[] = "nextval('_serial') as _serial";
         $sql = implode(",", $fieldsArr);
         $sql = "SELECT {$sql} FROM {$view}";
         $request->setParameter("LAYERS", $_GET['LAYERS'] . ",sql");
         $layer = ms_newLayerObj($oMap);
         $layer->updateFromString("\n\tLAYER\n\t\tNAME 'sql'\n\t\tSTATUS off\n\t\tPROCESSING 'CLOSE_CONNECTION=DEFER'\n\t\tDATA \"the_geom from ({$sql}) as foo using unique _serial using srid=900913\"\n\t\tTYPE POLYGON\n\t\tCONNECTIONTYPE POSTGIS\n\t\tCONNECTION 'user=postgres dbname=mydb host=127.0.0.1'\n\t\tMETADATA\n\t\t  'wms_title'    'sql'\n\t\t  'wms_srs'    'EPSG:4326'\n\t\t  'wms_name'    'sql'\n\t\tEND\n\t\tPROJECTION\n\t\t  'init=epsg:900913'\n\t\tEND\n\t\tCLASS\n\t\t  NAME 'New style'\n\t\t  STYLE\n\t\t\tOUTLINECOLOR 255 0 0\n\t\t  END\n  \t\tEND\n  \tEND\n\t");
     }
     ms_ioinstallstdouttobuffer();
     $oMap->owsdispatch($request);
     if ($_GET['sql_layer']) {
         $sql = "DROP VIEW {$view}";
         $result = $postgisObj->execQuery($sql);
     }
     $contenttype = ms_iostripstdoutbuffercontenttype();
     if ($contenttype == 'image/png') {
         header('Content-type: image/png');
     } else {
         header('Content-type: text/xml');
     }
     ms_iogetStdoutBufferBytes();
     ms_ioresethandlers();
 }
Example #9
0
    $e_track = ms_newLayerObj($e_map);
    $e_track->set('name', 'temptrack');
    $e_track->set('status', MS_ON);
    $e_track->set('type', MS_LAYER_LINE);
    $e_track->addFeature($e_shape);
    $e_class = ms_newClassObj($e_track);
    $e_style = ms_newStyleObj($e_class);
    $e_style->color->setRGB(255, 255, 20);
    $e_style->set("size", 3);
    $e_style->set("symbolname", 'circle');
    $e_shapestart = ms_newShapeObj(MS_SHAPE_POINT);
    $e_line = ms_newLineObj();
    list($px, $py) = split(' ', $_SESSION['track'][0]);
    $e_line->addXY($px, $py);
    $e_shapestart->add($e_line);
    $e_track3 = ms_newLayerObj($e_map);
    $e_track3->set('name', 'temptrackstart');
    $e_track3->set('status', MS_ON);
    $e_track3->set('type', MS_LAYER_POINT);
    $e_track3->addFeature($e_shapestart);
    $e_class3 = ms_newClassObj($e_track3);
    $e_style3 = ms_newStyleObj($e_class3);
    $e_style3->set("symbolname", 'flag2');
}
$e_image = $e_map->draw();
$image = $e_image->saveWebImage();
$e_ref = $e_map->drawreferencemap();
$refsrc = $e_ref->saveWebImage('MS_PNG', 0, 0, -1);
// affichage l?gende
if ($e_map->scale < $minscaledispscan100legend) {
    $smarty->assign('booldisplegscan100', true);
Example #10
0
$ia511 = $map->getlayerbyname("ia511");
$c0 = $ia511->getClass(0);
$s0 = $c0->getStyle(0);
$s0->set("symbolname", "ia511-8bit");
if (!$metroview) {
    //$ia511->draw($img);
    $pt = ms_newPointObj();
    $pt->setXY(555, 160);
    //$pt->draw($map, $ia511, $img, 0, "");
}
$logokey2 = $map->getlayerbyname("colorkey");
$c1 = $logokey2->getClass(0);
$s1 = $c1->getStyle(0);
$s1->set("symbolname", "logokey-8bit");
$s1->set("size", 60);
$logokey = ms_newLayerObj($map);
$logokey->set("type", MS_SHP_POINT);
$logokey->set("transform", MS_FALSE);
$logokey->set("status", MS_ON);
$logokey->set("labelcache", MS_ON);
$logokey_c3 = ms_newClassObj($logokey);
$logokey_c3s0 = ms_newStyleObj($logokey_c3);
//$logokey_c3s0->set("symbolname", "iem");
//$logokey_c3s0->set("size", 45);
$l = $logokey_c3->addLabel(new labelObj());
$logokey_c3->getLabel(0)->set("buffer", 10);
$logokey_c3->getLabel(0)->set("type", MS_BITMAP);
$logokey_c3->getLabel(0)->set("size", MS_MEDIUM);
$logokey_c3->getLabel(0)->color->setRGB(0, 0, 0);
$bpt = ms_newpointobj();
$bpt->setXY(300, 300);
Example #11
0
function updateMapfile($layer_tablename,$hex_colors,$expressions,$classitem) {
  if (PHP_OS == "WINNT" || PHP_OS == "WIN32") {
	define( "MODULE", "php_mapscript.dll" );
	// load the mapscript module
	if (!extension_loaded("MapScript")) dl(MODULE);
  } else {
  		dl("php_mapscript.so");
  }
  $FILEPATH = $_SERVER['SCRIPT_FILENAME'];
  // remove the file name and append the new directory name
  if (PHP_OS == "WINNT" || PHP_OS == "WIN32") {
		$pos1 = strrpos($FILEPATH,'\\');
		$FILEPATH= substr($FILEPATH,0,$pos1)."\\choropleth\\";
  }else{
		$pos1 = strrpos($FILEPATH,'/');
		$FILEPATH= substr($FILEPATH,0,$pos1)."/choropleth/";
  }
  $base_path = base_path();
  global $user;
  $ret_file= array();

  //global $db_url;

  $layer_type ='';
  $query = "select layer_type from \"Meta_Layer\" where layer_tablename='".$layer_tablename."'";
  $result = db_query($query);
  if($obj = db_fetch_object($result)){
  	switch($obj->layer_type){
		case 'POLYGON':
		case 'MULTIPOLYGON':
				$layer_type = 'polygon';
			break;
		case 'LINESTRING':
		case 'MULTILINESTRING':
				$layer_type = 'line';
			break;
		case 'POINT':
		case 'MULTIPOINT':
				$layer_type = 'point';
				break;
	}
  }
  $mapfilename = $layer_tablename;

  // $dbpasswd = substr($db_url,$index2,$index2-$index1);
  // $dbuser = preg_replace('/pgsql:\/\/(.*)@[^@]*/','$1',$db_url);
  // $dbname = substr(strrchr($db_url,'/'),1);
  // if(strpos($dbuser,':') >= 0) {
    // list($dbuser,$dbpasswd) = split(":",$dbuser);
  // } else {
    // $dbpasswd = "";
  // }
  $name = $FILEPATH.$mapfilename.".map";
  /* create a file */
  $fh = fopen($name,"w");
  fwrite($fh,"map\n");
  fwrite($fh,"end");
  fclose($fh);

  /* create new map object and set the parameters */
  $map = ms_newMapObj($name);
  $map->setExtent(60,0,100,40);
  $map->setSize(725,800);
  $map->set("units",MS_DD);
  $map->setProjection("init=epsg:4326");
  $map->set("maxsize",4096);
  $map->selectOutputFormat('PNG');
  $map->outputformat->set("transparent", MS_ON);
  $map->outputformat->set("imagemode", "rgba");
  $map->outputformat->setOption("formatoption","INTERLACE=OFF");

  //web object
  $map->setMetaData("wms_srs","epsg:4326 epsg:2805 epsg:24600 epsg:54004 EPSG:900913");

  /* set layer specific parameters */
  $layer = ms_newLayerObj($map);
  $layer->set("name",$layer_tablename);

  switch($layer_type){
		case 'polygon':
				$layer->set("type", MS_LAYER_POLYGON);
				break;
		case 'line':
				$layer->set("type", MS_LAYER_LINE);
				break;
		case 'point':
				$layer->set("type", MS_LAYER_POINT);

  }

  $layer->set("status", MS_ON);
  $layer->set("connectiontype",MS_POSTGIS);

  $layer->set("connection", getDBConnectionString());

  /*
  if("" == $dbpasswd) {
     $layer->set("connection","user="******" dbname=".$dbname." host=localhost");
  } else {
     $layer->set("connection","user="******" password="******" dbname=".$dbname." host=localhost");
  }
  */

  $layer->set("data","__mlocate__topology from ".$layer_tablename . " using unique __mlocate__id");
  $layer->set("classitem",trim($classitem));
  $layer->set("transparency",65);
  $layer->set("template","template.html");
  $layer->setMetaData("wms_feature_info_mime_type","text/html");
  $layer->setMetaData("wms_include_items","all");
  // loop through the list of values and create the corresponding classes
  $len = count($expressions);
  for($i = 0;$i<$len;$i++) {
    $class = ms_newClassObj($layer);
    $class->set("status",MS_ON);
    $cat = str_replace(' COMMA ',',' ,$expressions[$i] );
    $class->set("name",urldecode($cat));
    $class->setExpression("$cat");

    $style = ms_newStyleObj($class);
    $rgb_color = hex2rgb($hex_colors[$i]);
    $style->color->setRGB($rgb_color[0],$rgb_color[1],$rgb_color[2]);
    $style->outlinecolor->setRGB(000,000,000);
    $style->set("angle",0);
  }
  /* set layer specific parameters for select layer*/
  $layer_select = ms_newLayerObj($map);
  $layer_select->set("name",$layer_tablename.'_select');
  switch($layer_type){
		case 'polygon':
				$layer_select->set("type", MS_LAYER_POLYGON);
				break;
		case 'line':
				$layer_select->set("type", MS_LAYER_LINE);
				break;
		case 'point':
				$layer_select->set("type", MS_LAYER_POINT);

  }
  $layer_select->set("status", MS_ON);
  //MS_LAYER_POLYGON
  $layer_select->set("connectiontype",MS_POSTGIS);

  $layer->set("connection", getDBConnectionString());

  /*
  if("" == $dbpasswd) {
     $layer_select->set("connection","user="******" dbname=".$dbname." host=localhost");
  } else {
     $layer_select->set("connection","user="******" password="******" dbname=".$dbname." host=localhost");
  }
  */
  $class_select = ms_newClassObj($layer_select);
  $style_select = ms_newStyleObj($class_select);
  $style_select->outlinecolor->setRGB(000,000,255);
  $style_select->set("width",3);
  $layer_select->setfilter("'__mlocate__id = %pid%'");
  $layer_select->set("data","__mlocate__topology from ".$layer_tablename . " using unique __mlocate__id");

 /* set layer specific parameters for Search layer*/
  $layer_search = ms_newLayerObj($map);
  $layer_search->set("name",$layer_tablename.'_search');

  switch($layer_type){
		case 'polygon':
				$layer_search->set("type", MS_LAYER_POLYGON);
				break;
		case 'line':
				$layer_search->set("type", MS_LAYER_LINE);
				break;
		case 'point':
				$layer_search->set("type", MS_LAYER_POINT);

  }
  $layer_search->set("status", MS_ON);
  $layer_search->set("connectiontype",MS_POSTGIS);

  $layer->set("connection", getDBConnectionString());

  /*
  if("" == $dbpasswd) {
     $layer_search->set("connection","user="******" dbname=".$dbname." host=localhost");
  } else {
     $layer_search->set("connection","user="******" password="******" dbname=".$dbname." host=localhost");
  }
  */

  $layer_search->set("transparency",65);
  $layer_search->set("template","template.html");
  $layer_search->setMetaData("wms_feature_info_mime_type","text/html");
  $layer_search->setMetaData("wms_include_items","all");

  $class_search = ms_newClassObj($layer_search);
  $style_search = ms_newStyleObj($class_search);
  $style_search->color->setRGB(228,245,205);
  $style_search->outlinecolor->setRGB(000,000,000);
  $style_search->set("width",3);
  $layer_search->setfilter("'__mlocate__id IN (%pid%)'");
  $layer_search->set("data","__mlocate__topology from ".$layer_tablename . " using unique __mlocate__id");


/* set layer specific parameters for Search BBOX layer*/
  $layer_searchBB = ms_newLayerObj($map);
  $layer_searchBB->set("name",$layer_tablename.'_searchBB');

  switch($layer_type){
		case 'polygon':
				$layer_searchBB->set("type", MS_LAYER_POLYGON);
				break;
		case 'line':
				$layer_searchBB->set("type", MS_LAYER_LINE);
				break;
		case 'point':
				$layer_searchBB->set("type", MS_LAYER_POINT);

  }
  $layer_searchBB->set("status", MS_ON);
  $layer_searchBB->set("connectiontype",MS_POSTGIS);

  $layer->set("connection", getDBConnectionString());



  $class_searchBB = ms_newClassObj($layer_searchBB);
  $style_searchBB = ms_newStyleObj($class_searchBB);
  $style_searchBB->outlinecolor->setRGB(000,000,255);
  $style_searchBB->set("width",3);
  $layer_searchBB->setfilter("'__mlocate__id IN (%pid%)'");
  $layer_searchBB->set("data","__mlocate__topology from ".$layer_tablename . " using unique __mlocate__id");


  $map->save($name);
}
     unlink($dirmap . "/" . $nomePrefixo . ".shx");
     unlink($dirmap . "/" . $nomePrefixo . ".dbf");
     unlink($dirmap . "/" . $nomePrefixo . ".shp");
     exit;
 }
 $arqshp = $dir_tmp . "/" . $nomePrefixo . ".shp";
 //pega os parametros de conexao
 include "classe_metaestat.php";
 $m = new Metaestat();
 $conexao = $m->listaConexao($_POST["i3GEOuploadcodigoconexao"], true);
 //array(5) { ["codigo_estat_conexao"]=> string(1) "1" ["bancodedados"]=> string(8) "geosaude" ["host"]=> string(9) "localhost" ["porta"]=> string(4) "5432" ["usuario"]=> string(8) "postgres" }
 //pega as colunas do shapefile
 $shapefileObj = ms_newShapefileObj($arqshp, -1);
 $numshapes = $shapefileObj->numshapes;
 $mapObj = ms_newMapObjFromString("MAP END");
 $layer = ms_newLayerObj($mapObj);
 $layer->set("data", $arqshp);
 if (file_exists($dir_tmp . "/" . $nomePrefixo . ".prj")) {
     $layer->setprojection("AUTO");
 }
 $layer->open();
 $colunasTemp = $layer->getItems();
 $colunas = array();
 foreach ($colunasTemp as $c) {
     //abaixo gid e forcado a entrar
     if (!is_numeric($c) && strtolower($c) != "gid") {
         $colunas[] = $c;
     }
 }
 echo "<br>Numshapes existentes no SHP: " . $numshapes;
 $tipo = $shapefileObj->type;
Example #13
0
function sobeAnno($map_file)
{
    $mapa = ms_newMapObj($map_file);
    $numlayers = $mapa->numlayers;
    for ($i = 0; $i < $numlayers; ++$i) {
        $layer = $mapa->getlayer($i);
        if ($layer->type == 4) {
            $temp = ms_newLayerObj($mapa, $layer);
            $layer->set("status", MS_DELETE);
        }
    }
    $mapa->save($map_file);
}
Example #14
0
 function criaToponimia($item, $position, $partials, $offsetx, $offsety, $minfeaturesize, $mindistance, $force, $shadowcolor, $shadowsizex, $shadowsizey, $outlinecolor, $cor, $sombray, $sombrax, $sombra, $fundo, $angulo, $tamanho, $fonte, $tipo, $wrap, $novotema = "sim")
 {
     error_reporting(0);
     if (!$this->layer) {
         return "erro";
     }
     $this->removeToponimia();
     if (!isset($tipo)) {
         $tipo = "";
     }
     if ($item != "") {
         if ($novotema == "sim") {
             $nome = pegaNome($this->layer);
             $novolayer = ms_newLayerObj($this->mapa, $this->layer);
             $nomer = nomeRandomico();
             $novolayer->set("name", $nomer);
             $novolayer->set("group", "");
             $novolayer->set("type", $this->layer->type);
             $nclasses = $novolayer->numclasses;
             for ($i = 0; $i < $nclasses; ++$i) {
                 $c = $novolayer->getclass($i);
                 $c->set("status", MS_DELETE);
             }
             $novac = ms_newClassObj($novolayer);
             $novolayer->set("status", MS_DEFAULT);
             $novolayer->setmetadata("tema", "texto de " . $nome);
             $novolayer->setmetadata("tip", "");
             $novolayer->setmetadata("tiles", "nao");
             $novolayer->setmetadata("identifica", "nao");
             $novolayer->set("labelitem", $item);
         } else {
             $nomer = $this->layer->name;
             $novolayer = $this->mapa->getlayerbyname($nomer);
         }
         $novolayer->setmetadata("cache", "");
         $this->layer = $novolayer;
     } else {
         //$novac = $this->layer->getclass(0);
         $nomer = $this->layer->name;
     }
     if (!($this->vi >= 60200)) {
         $this->layer->set("labelitem", $item);
     }
     $nclasses = $this->layer->numclasses;
     for ($i = 0; $i < $nclasses; ++$i) {
         $novac = $this->layer->getclass($i);
         if ($this->vi >= 60200) {
             //$indiceLabel = $novac->addLabel(new labelObj());
             $s = "CLASS LABEL TEXT '[" . $item . "]' END END";
             $novac->updateFromString($s);
             $label = $novac->getLabel($indiceLabel);
         } else {
             $label = $novac->label;
         }
         if ($wrap != "") {
             $label->set("maxlength", 1);
             $s = $novac->getTextString;
             $s = "CLASS LABEL WRAP '{$wrap}' END END";
             $novac->updateFromString($s);
         }
         if ($this->vi >= 60200) {
             $label = $novac->getLabel($indiceLabel);
         } else {
             $label = $novac->label;
         }
         if ($fonte != "bitmap") {
             //$label->set("type",MS_TRUETYPE);
             $label->updatefromstring("LABEL TYPE TRUETYPE END");
             $label->set("font", $fonte);
             $label->set("size", $tamanho);
         } else {
             //$label->set("type",MS_BITMAP);
             $label->updatefromstring("LABEL TYPE BITMAP END");
             //$label->set("font",$fonte);
             $t = MS_TINY;
             if ($tamanho > 5) {
                 $t = MS_TINY;
             }
             if ($tamanho >= 7) {
                 $t = MS_SMALL;
             }
             if ($tamanho >= 10) {
                 $t = MS_MEDIUM;
             }
             if ($tamanho >= 12) {
                 $t = MS_LARGE;
             }
             if ($tamanho >= 14) {
                 $t = MS_GIANT;
             }
             $label->set("size", $t);
         }
         if ($angulo > 0) {
             $label->set("angle", $angulo);
         }
         if ($angulo == "AUTO") {
             $label->updatefromstring("LABEL ANGLE AUTO END");
         }
         if (strtoupper($angulo) == "CURVO" || strtoupper($angulo) == "FOLLOW") {
             $label->updatefromstring("LABEL ANGLE FOLLOW END");
         }
         corE($label, $cor, "color");
         corE($label, $fundo, "backgroundcolor");
         corE($label, $sombra, "backgroundshadowcolor", $sombrax, $sombray);
         //$label->set("backgroundshadowsizex",$sombrax);
         //$label->set("backgroundshadowsizey",$sombray);
         corE($label, $outlinecolor, "outlinecolor");
         corE($label, $shadowcolor, "shadowcolor");
         $label->set("shadowsizex", $shadowsizex);
         $label->set("shadowsizey", $shadowsizey);
         $label->set("force", $force);
         $label->set("mindistance", $mindistance);
         $label->set("minfeaturesize", $minfeaturesize);
         $label->set("offsetx", $offsetx);
         $label->set("offsety", $offsety);
         $label->set("partials", $partials);
         $p = array("MS_AUTO" => MS_AUTO, "MS_UL" => MS_UL, "MS_LR" => MS_LR, "MS_UR" => MS_UR, "MS_LL" => MS_LL, "MS_CR" => MS_CR, "MS_CL" => MS_CL, "MS_UC" => MS_UC, "MS_LC" => MS_LC, "MS_CC" => MS_CC);
         $label->set("position", $p[$position]);
     }
     if ($tipo == "teste") {
         $i = gravaImagemMapa($this->mapa);
         return $i["url"];
     } else {
         return $nomer;
     }
 }
Example #15
0
 function pontoEmPoligono($temaPt, $temasPo, $locaplic)
 {
     set_time_limit(3000);
     if ($this->dbaseExiste == false) {
         include_once dirname(__FILE__) . "/../pacotes/phpxbase/api_conversion.php";
     }
     $layerPt = $this->mapa->getlayerbyname($temaPt);
     $layerPt->set("template", "none.htm");
     $layerPt->set("tolerance", 0);
     // define o nome do novo shapefile que ser&aacute; criado
     $nomefinal = nomeRandomico();
     $nomeshp = $this->diretorio . "/" . $nomefinal;
     //
     $spts = retornaShapesSelecionados($layerPt, $this->arquivo, $this->mapa);
     if (count($spts) == 0) {
         $spts = retornaShapesMapext($layerPt, $this->mapa);
     }
     //
     $itemspt = pegaItens($layerPt);
     // gera o novo arquivo shape file
     // cria o dbf
     $def = $this->criaDefDb($itemspt, false);
     // pega os itens dos temas poligonais
     $layersPol = array();
     $temas = explode(",", $temasPo);
     $layers = array();
     $nomesitens = array();
     // guarda os nomes dos temas e seus itens
     $conta = 0;
     $listaItens = array();
     foreach ($temas as $tema) {
         $layer = $this->mapa->getlayerbyname($tema);
         $layer->set("template", "none.htm");
         $layer->set("status", MS_DEFAULT);
         $items = pegaItens($layer);
         if ($layer->type == MS_LAYER_RASTER) {
             $lineo = $spts[0]->line(0);
             $pt = $lineo->point(0);
             $layer->queryByPoint($pt, 0, 0);
         }
         $layers[] = $layer;
         if (!$items) {
             return "erro ao obter a lista de itens do tema {$layer->name}";
         }
         $listaItens[$layer->name] = $items;
         foreach ($items as $ni) {
             $def[] = array("I" . $conta, "C", "254");
             $nomesitens[] = "Tema: " . $layer->name . ", Item: " . $ni . " Novo: I" . $conta . "<br>";
             $conta = $conta + 1;
         }
     }
     if ($this->dbaseExiste == false) {
         $db = xbase_create($nomeshp . ".dbf", $def);
         xbase_close($db);
     } else {
         $db = dbase_create($nomeshp . ".dbf", $def);
         dbase_close($db);
     }
     // acrescenta os pontos no novo shapefile
     $dbname = $nomeshp . ".dbf";
     if ($this->dbaseExiste == false) {
         $db = xbase_open($dbname, 2);
     } else {
         $db = dbase_open($dbname, 2);
     }
     // cria o shapefile
     $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POINT);
     foreach ($spts as $spt) {
         foreach ($itemspt as $ni) {
             $reg[] = $this->truncaS($spt->values[$ni]);
         }
         $novoshpf->addShape($spt);
         $lineo = $spt->line(0);
         $pt = $lineo->point(0);
         // faz a pesquisa
         // error_reporting(0);
         foreach ($layers as $layer) {
             $layer->set("template", "none.htm");
             $layer->set("toleranceunits", MS_PIXELS);
             $layer->set("tolerance", 1);
             $ident = @$layer->queryByPoint($pt, 0, 0);
             if ($ident == "MS_SUCCESS") {
                 $itens = $listaItens[$layer->name];
                 $sopen = $layer->open();
                 if ($sopen == MS_FAILURE) {
                     return "erro";
                 }
                 if ($layer->getResult(0) !== FALSE) {
                     if ($this->v >= 6) {
                         $shape = $layer->getShape($layer->getResult(0));
                     } else {
                         $result = $layer->getResult(0);
                         $shp_index = $result->shapeindex;
                         $shape = $layer->getfeature($shp_index, -1);
                     }
                     foreach ($itens as $item) {
                         $p = $this->truncaS($shape->values[$item]);
                         if (empty($p)) {
                             $p = "-";
                         }
                         $reg[] = $p;
                     }
                 } else {
                     foreach ($itens as $item) {
                         $reg[] = "???";
                     }
                 }
             } else {
                 foreach ($itens as $item) {
                     $reg[] = "???";
                 }
             }
             $layer->close();
         }
         if ($this->dbaseExiste == false) {
             xbase_add_record($db, $reg);
         } else {
             dbase_add_record($db, $reg);
         }
         $reg = array();
     }
     if ($this->dbaseExiste == false) {
         xbase_close($db);
     } else {
         dbase_close($db);
     }
     $novolayer = ms_newLayerObj($this->mapa, $layerPt);
     $novolayer->set("data", $nomeshp . ".shp");
     $novolayer->set("name", $nomefinal);
     $novolayer->setmetadata("TEMA", "Cruzamento (" . $nomefinal . ")");
     $novolayer->setmetadata("TEMALOCAL", "SIM");
     $novolayer->setmetadata("DOWNLOAD", "SIM");
     $novolayer->setmetadata("ITENS", "");
     $novolayer->setmetadata("ITENSDESC", "");
     $novolayer->setmetadata("CACHE", "");
     if (ms_GetVersionInt() > 50201) {
         $novolayer->setconnectiontype(MS_SHAPEFILE);
     } else {
         $novolayer->set("connectiontype", MS_SHAPEFILE);
     }
     if (file_exists($this->qyfile)) {
         unlink($this->qyfile);
     }
     return implode(" ", $nomesitens);
 }
Example #16
0
 /**
  * Complementa um mapfile resumido inserindo seus layers em um mapfile completo, contendo todos os elementos necessarios para uso
  * Usado na geracao de WMS e outros servicos
  * @param mapfile resumido
  * @return nome do arquivo com o mapfile completo
  */
 function mapfileCompleto($mapfile)
 {
     $f = $this->base;
     if ($f == "") {
         include_once $this->locaplic . "/classesphp/funcoes_gerais.php";
         $versao = versao();
         $versao = $versao["principal"];
         $f = "";
         if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
             $f = $this->locaplic . "/aplicmap/geral1windowsv" . $versao . ".map";
         } else {
             if ($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv' . $versao . '.map')) {
                 $f = "/var/www/i3geo/aplicmap/geral1debianv" . $versao . ".map";
             }
             if ($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                 $f = "/var/www/html/i3geo/aplicmap/geral1fedorav" . $versao . ".map";
             }
             if ($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                 $f = "/opt/www/html/i3geo/aplicmap/geral1v" . $versao . ".map";
             }
             if ($f == "") {
                 $f = $this->locaplic . "/aplicmap/geral1v" . $versao . ".map";
             }
         }
     }
     $mapa = ms_newMapObj($f);
     $n = $mapa->numlayers;
     for ($i = 0; $i < $n; $i++) {
         $l = $mapa->getlayer($i);
         $l->set("status", MS_DELETE);
     }
     $mapatemp = ms_newMapObj($mapfile);
     $l = $mapatemp->getlayer(0);
     $l->set("status", MS_DEFAULT);
     $novonome = str_replace(".map", "completo.map", $mapfile);
     //necessario para o kml
     $mapa->setmetadata("ows_enable_request", "*");
     $listaepsg = "EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185";
     $l->setmetadata("ows_srs", $listaepsg);
     $temp = ms_newLayerObj($mapa, $l);
     $mapa->save($novonome);
     return $novonome;
 }
Example #17
0
 /**
  * Load the map and create the map instance
  */
 function load_map()
 {
     if (!file_exists($this->map) && is_readable($this->map)) {
         $this->set_error('Cannot read mapfile ' . $this->map);
     } else {
         $protocolo = explode("/", $_SERVER['SERVER_PROTOCOL']);
         $servidor = strtolower($protocolo[0]) . "://" . $_SERVER['HTTP_HOST'];
         $temp = $this->map;
         if (file_exists(dirname(__FILE__) . "/ms_configura.php")) {
             include dirname(__FILE__) . "/ms_configura.php";
         }
         if (file_exists(dirname(__FILE__) . "/../../ms_configura.php")) {
             include dirname(__FILE__) . "/../../ms_configura.php";
         }
         if (file_exists(dirname(__FILE__) . "/../../../ms_configura.php")) {
             include dirname(__FILE__) . "/../../../ms_configura.php";
         }
         if (!file_exists($this->map)) {
             $maptemp = ms_newMapObj($locaplic . "/temas/" . $this->map . ".map");
             //if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
             //{$this->map = $locaplic."/aplicmap/geral1windows.map";}
             //else
             //{$this->map = $locaplic."/aplicmap/geral1.map";}
             $versao = $this->versao();
             $versao = $versao["principal"];
             if (!isset($base) || $base == "") {
                 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
                     $base = $locaplic . "/aplicmap/geral1windowsv" . $versao . ".map";
                 } else {
                     if ($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv' . $versao . '.map')) {
                         $base = "/var/www/i3geo/aplicmap/geral1debianv" . $versao . ".map";
                     }
                     if ($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                         $base = "/var/www/html/i3geo/aplicmap/geral1fedorav" . $versao . ".map";
                     }
                     if ($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                         $base = "/opt/www/html/i3geo/aplicmap/geral1v" . $versao . ".map";
                     }
                     if ($base == "") {
                         $base = $locaplic . "/aplicmap/geral1v" . $versao . ".map";
                     }
                 }
             }
             $this->map = $base;
             $this->map_object = ms_newMapObj($this->map);
             if (!$this->_zipped) {
                 $this->map_object->setmetadata('wms_onlineresource', $servidor . ":80/i3geo/ogc.php?tema=" . $temp . "&width=1500&height=1500&TRANSPARENT=true&FORMAT=image/png&");
                 $this->map_object->setmetadata("ows_enable_request", "*");
             }
             $n = $this->map_object->numlayers;
             for ($i = 0; $i < $n; $i++) {
                 $l = $this->map_object->getlayer($i);
                 $l->set("status", MS_DELETE);
                 $l->set("name", "");
             }
             for ($i = 0; $i < $maptemp->numlayers; $i++) {
                 $l = $maptemp->getlayer($i);
                 $l->set("status", MS_DEFAULT);
                 if (!$this->_zipped) {
                     $l->set("type", MS_LAYER_RASTER);
                     $l->setmetadata('wms_onlineresource', "../../ogc.php?tema=" . $temp . "&width=1500&height=1500&TRANSPARENT=true&FORMAT=image/png&");
                     $l->setmetadata("ows_enable_request", "*");
                 }
                 ms_newLayerObj($this->map_object, $l);
             }
         } else {
             $this->map_object = ms_newMapObj($this->map);
             //$w = $this->map_object->web;
             //$w->set("template","none.htm");
             if (!$this->_zipped) {
                 //$this->map_object->setmetadata('wms_onlineresource',$servidor.":80".$locmapserv."?map=".$temp."&width=1500&height=1500&");
                 $this->map_object->setmetadata('wms_onlineresource', "../../ogc.php?tema=" . $temp . "&width=1500&height=1500&TRANSPARENT=true&FORMAT=image/png&");
                 $this->map_object->setmetadata("ows_enable_request", "*");
             }
             $n = $this->map_object->numlayers;
             for ($i = 0; $i < $n; $i++) {
                 $l = $this->map_object->getlayer($i);
                 $l->set("status", MS_DEFAULT);
                 if (!$this->_zipped) {
                     $l->set("type", MS_LAYER_RASTER);
                 }
                 //$l->setmetadata('wms_onlineresource',"../../ogc.php?tema=".$temp."&width=500&height=500&");
                 //ms_newLayerObj($this->map_object, $l);
             }
         }
         if (!$this->map_object) {
             $this->set_error('Cannot load mapfile ' . $this->map);
         }
     }
 }
Example #18
0
<?php

include_once dirname(__FILE__) . "/../safe.php";
verificaBlFerramentas(basename(dirname(__FILE__)), $i3geoBlFerramentas, false);
$retorno = "";
//string que ser&aacute; retornada ao browser via JSON
$url = $_GET["url"];
switch (strtoupper($funcao)) {
    case "CRIALAYER":
        $mapa = ms_newMapObj($map_file);
        $novolayer = ms_newLayerObj($mapa);
        $novolayer->set("name", $url);
        $novolayer->setmetadata("TEMA", $url);
        $novolayer->setmetadata("CLASSE", "SIM");
        $novolayer->setmetadata("PLUGINI3GEO", '{"plugin":"layerkml","parametros":{"url":"' . $url . '"}}');
        $novolayer->set("type", MS_LAYER_POINT);
        $classe = ms_newClassObj($novolayer);
        $classe->set("name", "");
        $novolayer->set("status", MS_DEFAULT);
        $novolayer->set("template", "none.htm");
        $salvo = $mapa->save(str_replace(".map", "", $map_file) . ".map");
        $retorno = "ok";
        break;
}
if (isset($map_file) && isset($postgis_mapa) && $map_file != "") {
    restauraCon($map_file, $postgis_mapa);
}
cpjson($retorno);
Example #19
0
$db_ts = gmstrftime("%Y-%m-%d %H:%M+00", $ts);
$year = date("Y", $ts);
$c0->set("data", "geom from " . " (select significance, phenomena, geom, random() as oid from sbw_{$year} " . " WHERE polygon_end > '{$db_ts}' and polygon_begin <= '{$db_ts}' and " . " issue <= '{$db_ts}' " . " and significance = 'W' ORDER by phenomena ASC) as foo " . " using unique oid using SRID=4326");
$radar = $map->getlayerbyname("nexrad_n0q");
$radar->set("status", MS_ON);
$fp = "/mesonet/ARCHIVE/data/" . gmdate('Y/m/d/', $radts) . "GIS/uscomp/n0r_" . gmdate('YmdHi', $radts) . ".png";
if (file_exists($fp)) {
    $radar->set("data", $fp);
    $title = "RADAR";
    $y = 10;
} else {
    $radar->set("status", MS_OFF);
    $title = "RADAR Unavailable\n";
    $y = 20;
}
$cp = ms_newLayerObj($map);
$cp->set("type", MS_SHAPE_POINT);
$cp->set("status", MS_ON);
$cp->set("labelcache", MS_ON);
$cl = ms_newClassObj($cp);
$lbl = new labelObj();
$cl->addLabel($lbl);
$cl->getLabel(0)->set("type", MS_TRUETYPE);
$cl->getLabel(0)->set("size", 10);
$cl->getLabel(0)->set("position", MS_CR);
$cl->getLabel(0)->set("font", "liberation-bold");
$cl->getLabel(0)->set("force", MS_ON);
$cl->getLabel(0)->set("offsetx", 6);
$cl->getLabel(0)->set("offsety", 0);
$cl->getLabel(0)->outlinecolor->setRGB(255, 255, 255);
$cl->getLabel(0)->color->setRGB(0, 0, 0);
Example #20
0
 function graficotema($lista, $tamanho = "50", $tipo = "PIE", $outlinecolor = "", $offset = 0, $mesmoTema = false)
 {
     if (!$this->layer) {
         return "erro";
     }
     $nome = pegaNome($this->layer);
     $novolayer = ms_newLayerObj($this->mapa, $this->layer);
     $nomer = nomeRandomico();
     $novolayer->set("name", $nomer);
     $novolayer->set("group", "");
     $novolayer->setmetadata("cache", "nao");
     $novolayer->set("type", MS_LAYER_CHART);
     $novolayer->setprocessing("CHART_TYPE={$tipo}");
     $novolayer->setprocessing("CHART_SIZE={$tamanho}");
     $nclasses = $novolayer->numclasses;
     for ($i = 0; $i < $nclasses; ++$i) {
         $c = $novolayer->getclass($i);
         $c->set("status", MS_DELETE);
     }
     $novolayer->set("status", MS_DEFAULT);
     $novolayer->setmetadata("tema", "grafico de " . $nome);
     $lista = explode("*", $lista);
     foreach ($lista as $l) {
         $ll = explode(",", $l);
         $novac = ms_newClassObj($novolayer);
         $novac->set("name", $ll[0]);
         $novoestilo = ms_newStyleObj($novac);
         $novoestilo->setBinding(MS_STYLE_BINDING_SIZE, $ll[0]);
         $cor = $novoestilo->color;
         $cor->setrgb($ll[1], $ll[2], $ll[3]);
         if ($outlinecolor != "") {
             $o = explode(",", $outlinecolor);
             $corl = $novoestilo->outlinecolor;
             $corl->setrgb($o[0], $o[1], $o[2]);
         }
         if ($tipo == "PIE") {
             $novoestilo->set("offsetx", $offset);
         }
     }
     if ($mesmoTema == true) {
         $this->layer->set("status", MS_DELETE);
         $novolayer->set("name", $this->layer->name);
         $novolayer->setmetadata("tema", $this->layer->getmetadata("tema"));
     }
 }
Example #21
0
function inserePoligonosUrl()
{
    global $tamanhosimbolo, $simbolo, $corsimbolo, $poligonos, $nometemapoligonos, $dir_tmp, $imgdir, $tmpfname, $locaplic;
    include_once "pacotes/phpxbase/api_conversion.php";
    if (!isset($nometemapoligonos)) {
        $nometemapoligonos = "Poligonos";
    }
    if ($nometemapoligonos == "") {
        $nometemapoligonos = "Poligonos";
    }
    //
    //cria o shape file
    //
    $tipol = MS_SHP_POLYGON;
    $nomeshp = $dir_tmp . "/" . $imgdir . "/poligonosins";
    // cria o dbf
    $def = array();
    $items = array("COORD");
    foreach ($items as $ni) {
        $def[] = array($ni, "C", "254");
    }
    if (!function_exists(dbase_create)) {
        xbase_create($nomeshp . ".dbf", $def);
    } else {
        dbase_create($nomeshp . ".dbf", $def);
    }
    $dbname = $nomeshp . ".dbf";
    $db = xbase_open($dbname, 2);
    $novoshpf = ms_newShapefileObj($nomeshp, $tipol);
    $linhas = explode(",", trim($poligonos));
    $pontosLinhas = array();
    //guarda os pontos de cada linha em arrays
    foreach ($linhas as $l) {
        $tempPTs = explode(" ", trim($l));
        $temp = array();
        foreach ($tempPTs as $p) {
            if (is_numeric($p)) {
                $temp[] = $p;
            }
        }
        $pontosLinhas[] = $temp;
    }
    foreach ($pontosLinhas as $ptsl) {
        $linhas = $ptsl;
        $shape = ms_newShapeObj($tipol);
        $linha = ms_newLineObj();
        $reg = array();
        $reg[] = "";
        for ($ci = 0; $ci < count($linhas); $ci = $ci + 2) {
            $linha->addXY($linhas[$ci], $linhas[$ci + 1]);
        }
        $shape->add($linha);
        $novoshpf->addShape($shape);
        xbase_add_record($db, $reg);
    }
    $novoshpf->free();
    xbase_close($db);
    //adiciona o layer
    $mapa = ms_newMapObj($tmpfname);
    $layer = ms_newLayerObj($mapa);
    $layer->set("name", "linhains");
    $layer->set("data", $nomeshp . ".shp");
    $layer->setmetadata("DOWNLOAD", "sim");
    $layer->setmetadata("temalocal", "sim");
    $layer->setmetadata("tema", $nometemapoligonos);
    $layer->setmetadata("classe", "sim");
    $layer->setmetadata("ATLAS", "nao");
    $layer->set("type", MS_LAYER_POLYGON);
    $layer->set("opacity", "50");
    $layer->set("status", MS_DEFAULT);
    $classe = ms_newClassObj($layer);
    $classe->set("name", " ");
    $estilo = ms_newStyleObj($classe);
    $cor = $estilo->color;
    if (!isset($corsimbolo)) {
        $corsimbolo = "255,0,0";
    }
    $corsimbolo = str_replace(" ", ",", $corsimbolo);
    $corsimbolo = explode(",", $corsimbolo);
    $cor->setRGB($corsimbolo[0], $corsimbolo[1], $corsimbolo[2]);
    $salvo = $mapa->save($tmpfname);
    erroCriacao();
}
Example #22
0
function verificaMiniatura($map, $tipo, $admin = false)
{
    global $locaplic, $versao, $base, $postgis_mapa;
    if ($versao == "") {
        $versao = versao();
        $versao = $versao["principal"];
    }
    ms_ResetErrorList();
    $tema = "";
    $map = str_replace("\\", "/", $map);
    $map = basename($map);
    $extensao = ".map";
    if (file_exists($locaplic . '/temas/' . $map)) {
        $tema = $locaplic . '/temas/' . $map;
    } else {
        if (file_exists($locaplic . '/temas/' . $map . '.gvp')) {
            $extensao = ".gvp";
        }
        $tema = $locaplic . '/temas/' . $map . $extensao;
    }
    if ($tema != "") {
        if (isset($base) && $base != "") {
            if (file_exists($base)) {
                $f = $base;
            } else {
                $f = $locaplic . "/aplicmap/" . $base . ".map";
            }
            if (!file_exists($base)) {
                echo "<div class='alert alert-danger'>ARQUIVO {$base} N&Acirc;O FOI ENCONTRADO. CORRIJA ISSO EM ms_configura.php";
                exit;
            }
        } else {
            $f = "";
            if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
                $f = $locaplic . "/aplicmap/geral1windowsv" . $versao . ".map";
            } else {
                if ($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv' . $versao . '.map')) {
                    $f = "/var/www/i3geo/aplicmap/geral1debianv" . $versao . ".map";
                }
                if ($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                    $f = "/var/www/html/i3geo/aplicmap/geral1fedorav" . $versao . ".map";
                }
                if ($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) {
                    $f = "/opt/www/html/i3geo/aplicmap/geral1v" . $versao . ".map";
                }
                if ($f == "") {
                    $f = $locaplic . "/aplicmap/geral1v" . $versao . ".map";
                }
            }
        }
        $mapa = ms_newMapObj($f);
        if ($extensao == ".map") {
            if (@ms_newMapObj($tema)) {
                $nmapa = ms_newMapObj($tema);
            } else {
                echo "<div class='alert alert-danger'>erro no arquivo {$tema} </div>";
                return;
            }
            $dados = "";
            $numlayers = $nmapa->numlayers;
            for ($i = 0; $i < $numlayers; $i++) {
                $layern = $nmapa->getlayer($i);
                $layern->set("status", MS_DEFAULT);
                cloneInlineSymbol($layern, $nmapa, $mapa);
                ms_newLayerObj($mapa, $layern);
                autoClasses($layern, $mapa, $locaplic);
                if ($layern->data == "") {
                    $dados = $layern->connection;
                } else {
                    $dados = $layern->data;
                }
                $pegarext = $teman->name;
            }
            if (isset($postgis_mapa)) {
                if ($postgis_mapa != "") {
                    $numlayers = $mapa->numlayers;
                    for ($i = 0; $i < $numlayers; $i++) {
                        $layern = $mapa->getlayer($i);
                        if (!empty($postgis_mapa)) {
                            if ($layern->connectiontype == MS_POSTGIS) {
                                $lcon = $layern->connection;
                                if ($lcon == " " || $lcon == "" || in_array($lcon, array_keys($postgis_mapa))) {
                                    if ($lcon == " " || $lcon == "") {
                                        $layern->set("connection", $postgis_mapa);
                                    } else {
                                        $layern->set("connection", $postgis_mapa[$lcon]);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            zoomTemaMiniatura($pegarext, $mapa);
        }
        if ($extensao == ".gvp") {
            include_once $locaplic . "/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php";
            $gm = new gvsig2mapfile($tema);
            $gvsigview = $gm->getViewsNames();
            foreach ($gvsigview as $v) {
                $dataView = $gm->getViewData($v);
                $mapa = $gm->addLayers($mapa, $v, $dataView["layerNames"]);
            }
            $next = $dataView["extent"];
            $ext = $mapa->extent;
            $ext->setextent($next[0], $next[1], $next[2], $next[3]);
        }
        if ($tipo == "mini" || $tipo == "todos") {
            $mapa->setsize(50, 50);
            $sca = $mapa->scalebar;
            $sca->set("status", MS_OFF);
            $objImagemM = @$mapa->draw();
            //if ($objImagemM == "" || $objImagemM == MS_FAILURE)
            //{echo "Problemas ao gerar o mapa<br>";return;}
            $weboM = $mapa->web;
            $urlM = $weboM->imageurl . "/" . $map;
        }
        if ($tipo == "grande" || $tipo == "todos") {
            $mapa->setsize(300, 300);
            $sca = $mapa->scalebar;
            $sca->set("status", MS_OFF);
            $objImagemG = @$mapa->draw();
            //if ($objImagemG == "" || $objImagemG == MS_FAILURE)
            //{echo "Problemas ao gerar o mapa<br>";return;}
            $weboG = $mapa->web;
            $urlG = $weboG->imageurl . "/" . $map;
        }
        if ($tipo == "mini" || $tipo == "todos") {
            if (!$objImagemM) {
                echo "Problemas ao gerar o mapa<br>";
                $error = "";
                $error = ms_GetErrorObj();
                while ($error && $error->code != MS_NOERR) {
                    echo "<div class='alert alert-danger'>Error in %s: %s</div>", $error->routine, $error->message;
                    $error = $error->next();
                }
                return;
            }
            if ($objImagemM->imagepath == "") {
                echo "<div class='alert alert-danger'>Erro IMAGEPATH vazio</div>";
                return;
            }
            $nomecM = $objImagemM->imagepath . $map . ".mini.png";
            $objImagemM->saveImage($nomecM);
        }
        if ($tipo == "grande" || $tipo == "todos") {
            if (!$objImagemG) {
                echo "<div class='alert alert-danger'>Problemas ao gerar o mapa</div>";
                $error = "";
                $error = ms_GetErrorObj();
                while ($error && $error->code != MS_NOERR) {
                    echo "<div class='alert alert-danger'>Error in %s: %s</div>", $error->routine, $error->message;
                    $error = $error->next();
                }
                return;
            }
            if ($objImagemG->imagepath == "") {
                echo "<div class='alert alert-danger'>Erro IMAGEPATH vazio</div>";
                return;
            }
            $nomecG = $objImagemG->imagepath . $map . ".grande.png";
            $objImagemG->saveImage($nomecG);
        }
        if ($admin === false) {
            if ($tipo == "mini" || $tipo == "todos") {
                echo "<img class='img-thumbnail' src='" . $urlM . ".mini.png' />";
            }
            if ($tipo == "grande" || $tipo == "todos") {
                echo "<img class='img-thumbnail' src='" . $urlG . ".grande.png' />";
            }
        }
        //
        //copia a imagem
        //
        if ($admin === true) {
            $dir = $locaplic . "/temas/miniaturas";
            $mini = $dir . "/" . $map . ".map.mini.png";
            $grande = $dir . "/" . $map . ".map.grande.png";
            if (file_exists($mini)) {
                unlink($mini);
            }
            if (file_exists($grande)) {
                unlink($grande);
            }
            copy($objImagemG->imagepath . $map . ".grande.png", $grande);
            copy($objImagemM->imagepath . $map . ".mini.png", $mini);
        }
    }
}
Example #23
0
                //
                //ajusta parametros que o usuario pode ter modificado
                //
                if ($layert->status == 2) {
                    $layero->set("status", MS_DEFAULT);
                } else {
                    $layero->set("status", MS_OFF);
                }
                $layero->set("opacity", $layert->opacity);
                $layero->setmetadata("TEMA", $layert->getmetadata("TEMA"));
                //
                //adiciona o layer ao mapa atual
                //
                ms_newLayerObj($map, $layero);
            } elseif ($layert->connectiontype == MS_INLINE || $layert->connectiontype == MS_WMS || $layert->connectiontype == MS_GRATICULE) {
                ms_newLayerObj($map, $layert);
            }
        }
        $map->save($map_file);
        validaAcessoTemas($map_file);
        echo "<p class='paragrafo' >Ok. redesenhando.";
        echo "<script>window.parent.i3GEO.atualiza();</script>";
        //echo "<script>window.parent.i3GEO.navega.zoomExt(window.parent.i3GEO.configura.locaplic,window.parent.i3GEO.configura.sid,'nenhum','".$extatual."');</script>";
    } else {
        echo "<p class='paragrafo' >Erro ao enviar o arquivo.";
    }
} else {
    echo "<p class='paragrafo' >Erro ao enviar o arquivo.";
}
paraAguarde();
function paraAguarde()
Example #24
0
 /**
  * Create dynamic layers based on its definition from the metadata record
  */
 protected function createDynLayer($layerName, $layerString)
 {
     //error_log("createDynLayer: " . $layerName . "-" . $layerString);
     $newLayer = ms_newLayerObj($this->map);
     $newLayer->updateFromString($layerString);
     $dataSpecs = $_SESSION['catalogueDataSpecs'][$layerName];
     $connectionType = $dataSpecs['connParams']['type'];
     if ($connectionType == "generic") {
         $newLayer->set("data", $this->data_path_prefix . $dataSpecs['path']);
     } else {
         $connTypeList['POSTGIS'] = MS_POSTGIS;
         $connTypeList['OGR'] = MS_OGR;
         $connTypeList['WMS'] = MS_WMS;
         $connTypeList['ORACLESPATIAL'] = MS_ORACLESPATIAL;
         $newLayer->setConnectiontype($connTypeList[$connectionType]);
         $newLayer->set("connection", $dataSpecs['connParams']['connection']);
         if ($connectionType == "POSTGIS") {
             $geom = $dataSpecs['connParams']['geom'];
             $table = $dataSpecs['connParams']['schema'] . "." . $dataSpecs['connParams']['layer'];
             $uniqueFid = $dataSpecs['connParams']['uniqueFid'];
             $epsg = $dataSpecs['srscode'];
             $newLayer->set("data", "{$geom} FROM {$table} USING UNIQUE {$uniqueFid} USING SRID={$epsg}");
         } else {
             $newLayer->set("data", $dataSpecs['path']);
         }
     }
     $newLayer->set("name", $dataSpecs['uuid']);
     $newLayer->setMetaData("DESCRIPTION", $dataSpecs['title']);
     $newLayer->setMetaData("UUID", $dataSpecs['uuid']);
     if (isset($dataSpecs['feature_catalogue_url'])) {
         $newLayer->setMetaData("FEATURE_CATALOGUE_URL", $dataSpecs['feature_catalogue_url']);
     }
     $newLayer->setMetaData("CATEGORY", $this->config['layer_category']);
     // Move layer to configured index
     $newLayerCurrentIdx = $newLayer->index;
     $newLayerTargetIdx = $this->config['layeridx'];
     $newDrawingOrder = $this->getNewDrawingOrder($this->map->getLayersDrawingOrder(), $newLayerCurrentIdx, $newLayerTargetIdx);
     $this->map->setLayersDrawingOrder($newDrawingOrder);
     // Set projections and extent
     $projStr = "init=" . $dataSpecs['epsg'];
     $newLayer->setProjection($projStr);
     $this->map->setProjection($projStr, 1);
     $_SESSION['DYNLAYERCAT_PROJ'] = $projStr;
     $le = $dataSpecs['mapext'];
     $this->map->setExtent($le['minx'], $le['miny'], $le['maxx'], $le['maxy']);
     if (!empty($this->config['mapfile_dir'])) {
         $this->map->save($this->config['mapfile_dir'] . $layerName . '.map');
     }
 }
Example #25
0
function addLayer($szValue)
{
    global $mapName;
    global $gwmsServiceTitle;
    $szReturn->addedLayer = false;
    // adding a layer from the atlas
    if ($_REQUEST["layertype"] == 'atlas') {
        $oMap = ms_newMapObj($_SESSION['maps'][$mapName]);
        $oCatalogMapFile = ms_newMapObj(APP_LAYER_CATALOG);
        for ($i = 0; $i < $oCatalogMapFile->numlayers; $i++) {
            $oLayer = $oCatalogMapFile->getLayer($i);
            if ($oLayer->name == $_REQUEST["layername"] && $oLayer->group == $_REQUEST["group"]) {
                //found layer clone it.
                ms_newLayerObj($oMap, $oLayer);
                $szReturn->addedLayer = true;
            }
        }
        // save map file.
        $oMap->save($_SESSION['maps'][$mapName]);
    }
    // adding a layer from a wms server
    if ($_REQUEST["layertype"] == 'wms') {
        $oMap = ms_newMapObj($_SESSION['maps'][$mapName]);
        $oLayer = ms_newLayerObj($oMap);
        if ($_REQUEST["metadataurl"]) {
            $metadataurl = $_REQUEST["metadataurl"];
        } else {
            $join = strpos($_REQUEST["servername"], "?") ? "&" : "?";
            $metadataurl = $_REQUEST["servername"] . $join . "request=GetCapabilities&service=WMS&version=1.1.1";
        }
        $oLayer->set("name", $_REQUEST["layername"]);
        $oLayer->set("status", MS_ON);
        //$oLayer->set("connectiontype",MS_WMS);
        // in mapserver 5.4 we need to set the connection type with the method "setConnectionType"
        $oLayer->setConnectionType(MS_WMS);
        $oLayer->set("connection", $_REQUEST["servername"]);
        $oLayer->set("type", MS_LAYER_RASTER);
        $oLayer->setMetaData("legendLabel", $_REQUEST["owstitle"]);
        $aSRS = explode(" ", $_REQUEST["srs"]);
        $oLayer->setMetaData("ows_name", $_REQUEST["layername"]);
        $oLayer->setMetaData("ows_format", $_REQUEST["imageFormat"]);
        $oLayer->setMetaData("ows_server_version", "1.1.1");
        $oLayer->setMetaData("ows_srs", $aSRS[0]);
        $oLayer->setMetaData("wms_metadataurl_href", $metadataurl);
        $oLayer->setMetaData("selectable", $_REQUEST["queryable"] == '1' ? 'true' : 'false');
        $oLayer->setprojection("+init=" . strtolower($aSRS[0]));
        $oMap->save($_SESSION['maps'][$mapName]);
        $szReturn->wms_connection = $_REQUEST["servername"];
        $szReturn->wms_format = $_REQUEST["imageFormat"];
        $szReturn->wms_name = $_REQUEST["layername"];
        $szReturn->wms_title = $_REQUEST["owstitle"];
        $szReturn->wms_version = "1.1.1";
        $szReturn->wms_srs = $aSRS[0];
        $szReturn->wmsservicetitle = $gwmsServiceTitle;
        $szReturn->addedLayer = true;
    }
    return $szReturn;
}
Example #26
0
$map->setExtent($extentArray[0], $extentArray[1], $extentArray[2], $extentArray[3]);
// Construct layer objects based on requested layers
$phplayers = getLayersForTokenWithPROJ4($token);
for ($i = 1; $i < count($phplayers); $i++) {
    $skipThisLayer = 1;
    for ($j = 0; $j < count($layers); $j++) {
        if (strtolower($phplayers[$i]['name']) == strtolower($layers[$j])) {
            $skipThisLayer = 0;
            break;
        }
    }
    //print_r($phplayers[$i]);
    if ($skipThisLayer) {
        continue;
    }
    $layer = ms_newLayerObj($map);
    $layer->set("status", MS_ON);
    $layer->set("opacity", 100);
    $layer->set("name", $phplayers[$i]['name']);
    $layer->setMetaData("wms_title", $phplayers[$i]['name']);
    //$layer->setConnectionType(MS_POSTGIS);
    $layer->set("connectiontype", MS_POSTGIS);
    $layer->set("connection", "user={$postgis_user} dbname={$postgis_dbname} host={$postgis_host} port={$postgis_port} password={$postgis_pass}");
    $layer->set("data", $phplayers[$i]['geometry_name'] . " FROM " . $phplayers[$i]['name']);
    // If the layer does not have a projection, set the projection to WGS84.
    if ($phplayers[$i]['PROJ4'] == NULL) {
        $layer->setProjection("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs");
    } else {
        $layer->setProjection($phplayers[$i]['PROJ4']);
    }
    // Construct a class object, with style
Example #27
0
apesar de ser gerada dentro do ms_tmp (vc pode verificar se as imagens do mapa est&atilde;o sendo criadas no ms_tmp apos 

rodar o testainstal.php).Para solucionar esse problema, vc pode criar um link simb&oacute;lico (nos sistemas linux),

no mesmo local onde est&aacute; instalado o i3geo, apontando para o local f&iacute;sico onde est&aacute; o ms_tmp.

O nome do link simbolico deve ser o mesmo que estiver definido em aplicmap/geral1.map ou geral1debian.map na linha IMAGEURL. 

Esse nome por default &eacute; definido como ms_tmp. No wiki do portal do software p&uacute;blico vc poder&aacute; encontrar mais detalhes sobre isso.</h4>
HTML;
for ($i = 0; $i < $maptemp->numlayers; $i++) {
    $layern = $maptemp->getLayer($i);
    if ($layern->name == "estadosl") {
        $layern->set("data", $locaplic . "/aplicmap/dados/estados.shp");
    }
    ms_newLayerObj($mapa, $layern);
}
$imgo = @$mapa->draw();
if (!$imgo) {
    echo "Problemas ao gerar o mapa<br>";
    $error = "";
    $error = ms_GetErrorObj();
    while ($error && $error->code != MS_NOERR) {
        echo "<div class='alert alert-danger' role='alert'>Error in %s: %s</div>", $error->routine, $error->message;
        $error = $error->next();
    }
}
if ($imgo->imagepath == "") {
    echo "<div class='alert alert-danger' role='alert'>Erro IMAGEPATH vazio</div>";
}
$nome = $imgo->imagepath . "teste1.png";
Example #28
0
 $wc = ms_newLayerObj($map);
 $wc->setConnectionType(MS_POSTGIS);
 $wc->set("connection", $_DATABASES["postgis"]);
 $wc->set("status", MS_ON);
 $sql = sprintf("geom from (select oid, geom from sbw_{$year} WHERE oid = " . $oid0 . ") as foo using unique oid using SRID=4326");
 $wc->set("data", $sql);
 $wc->set("type", MS_LAYER_LINE);
 $wc->setProjection("init=epsg:4326");
 $wcc0 = ms_newClassObj($wc);
 $wcc0s0 = ms_newStyleObj($wcc0);
 $wcc0s0->color->setRGB(255, 255, 255);
 $wcc0s0->set("width", 2);
 $wcc0s0->set("symbol", 'circle');
 $wc->draw($img);
 $map->drawLabelCache($img);
 $wc = ms_newLayerObj($map);
 $wc->setConnectionType(MS_POSTGIS);
 $wc->set("connection", $_DATABASES["postgis"]);
 $wc->set("status", MS_ON);
 $sql = sprintf("geom from (select oid, geom from sbw_{$year} WHERE oid = " . $row["oid"] . ") as foo using unique oid using SRID=4326");
 $wc->set("data", $sql);
 $wc->set("type", MS_LAYER_LINE);
 $wc->setProjection("init=epsg:4326");
 $wcc0 = ms_newClassObj($wc);
 $wcc0->set("name", $row["area"] . " sq km [" . intval($row["area"] / $sz0 * 100) . "%]");
 $wcc0s0 = ms_newStyleObj($wcc0);
 $wcc0s0->color->setRGB(255, 0, 0);
 $wcc0s0->set("width", 3);
 $wcc0s0->set("symbol", 'circle');
 $wc->draw($img);
 $map->drawLabelCache($img);
Example #29
0
 function adicionaTemaGeoJson($servico, $dir_tmp, $locaplic)
 {
     $servico = str_replace("|", "?", $servico);
     $servico = str_replace("#", "&", $servico);
     $tipos = array("pontos", "linhas", "poligonos");
     foreach ($tipos as $tipo) {
         $novolayer = ms_newLayerObj($this->mapa);
         $novolayer->set("connection", $servico);
         if (ms_GetVersionInt() > 50201) {
             $novolayer->setconnectiontype(MS_OGR);
         } else {
             $novolayer->set("connectiontype", MS_OGR);
         }
         $nome = nomeRandomico(10) . "geoJson";
         $novolayer->set("name", $nome . $tipo);
         $novolayer->setmetadata("TEMA", "GeoJson " . $nome . " " . $tipo);
         $novolayer->setmetadata("DOWNLOAD", "SIM");
         $novolayer->setmetadata("CLASSE", "SIM");
         if ($tipo == "pontos") {
             $novolayer->set("type", MS_LAYER_POINT);
         }
         if ($tipo == "linhas") {
             $novolayer->set("type", MS_LAYER_LINE);
         }
         if ($tipo == "poligonos") {
             $novolayer->set("type", MS_LAYER_POLYGON);
         }
         $novolayer->set("type", $tipo);
         $novolayer->set("data", "OGRGeoJSON");
         $novolayer->setfilter("");
         $classe = ms_newClassObj($novolayer);
         $classe->set("name", "");
         $estilo = ms_newStyleObj($classe);
         if ($tipo == "pontos") {
             $estilo->set("symbolname", "ponto");
             $estilo->set("size", 10);
         }
         $estilo->color->setrgb(200, 50, 0);
         $estilo->outlinecolor->setrgb(0, 0, 0);
         // le os itens
         $novolayer->set("status", MS_DEFAULT);
         $novolayer->set("template", "none.htm");
     }
     return "ok";
 }
Example #30
0
 function listaSimbolos($tipo, $dir_tmp, $imgdir, $onclick, $tamanho = 8, $width = 1, $forca = false)
 {
     $versao = versao();
     $versao = $versao["principal"];
     error_reporting(0);
     if ($tipo == 3) {
         $tipo = 2;
     }
     //tipo raster
     if ($imgdir == "") {
         $dir = $dir_tmp;
     } else {
         $dir = $dir_tmp . "/" . $imgdir;
     }
     if ($forca == true) {
         unlink($dir . "/simbolos" . $tipo . ".inc");
     }
     $ins = "";
     //pega imagens que podem ser usadas como simbolos
     if ($tipo == 0) {
         if (!isset($locaplic)) {
             include dirname(__FILE__) . "/../ms_configura.php";
         }
         //veja esse codigo tambem em ferramentas/uploadsimbolo/exec.php
         $pasta = $locaplic . "/temas";
         $url = "../temas";
         if ($customDir != "interface") {
             $teste = $locaplic . "/" . $customDir;
             if (file_exists($teste)) {
                 $pasta = $teste;
                 $url = "../" . $customDir;
             }
             $teste = $locaplic . "/" . $customDir . "/images";
             if (file_exists($teste)) {
                 $pasta = $teste;
                 $url = "../" . $customDir . "/images";
             }
             $teste = $locaplic . "/" . $customDir . "/imagens";
             if (file_exists($teste)) {
                 $pasta = $teste;
                 $url = "../" . $customDir . "/imagens";
             }
         }
         if (file_exists($pasta)) {
             $lista = listaArquivos($pasta, true, array("png", "PNG"));
             //var_dump($lista);exit;
             $n = count($lista["nomes"]);
             for ($i = 0; $i < $n; $i++) {
                 $ins .= "<img src='" . $url . "/" . $lista["nomes"][$i] . "' style='max-width: 80px;cursor:pointer;border: 5px solid #FFFFFF' title=" . $pasta . "/" . $lista["nomes"][$i] . " onclick='" . $onclick . "'>";
             }
         }
     }
     if (!file_exists($dir . "/simbolos" . $tipo . ".inc")) {
         $f = fopen($dir . "/simbolos" . $tipo . ".inc", "w");
         if ($tipo == 2) {
             $t = "simpolv" . $versao . ".map";
         }
         if ($tipo == 0) {
             $t = "simptv" . $versao . ".map";
         }
         if ($tipo == 1) {
             $t = "simlinv" . $versao . ".map";
             $tamanho = $tamanho / 4;
         }
         if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
             $mapatemp = ms_newMapObj($this->localaplicacao . "\\aplicmap\\" . $t);
         } else {
             $mapatemp = ms_newMapObj($this->localaplicacao . "/aplicmap/" . $t);
         }
         $l = $mapatemp->getlayer(0);
         if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
             $novoss = dirname($this->mapa->symbolsetfilename) . "\\" . basename($mapatemp->symbolsetfilename);
         } else {
             $novoss = dirname($this->mapa->symbolsetfilename) . "/" . basename($mapatemp->symbolsetfilename);
         }
         $this->mapa->setsymbolset($novoss);
         $ns = $this->mapa->getnumsymbols();
         $inis = 0;
         //na versao 7 nao tem o simbolo 0
         if ($this->v >= 7) {
             $inis = 1;
             //se for versao 7 inclui um primeiro simbolo com valor 0 e imagem
             $oSymbol = $this->mapa->getSymbolObjectById(1);
             $adiciona = ms_newLayerObj($this->mapa, $l);
             $nomel = $l->name;
             $tematemp = $this->mapa->getlayerbyname($nomel);
             $c = $tematemp->getClass(0);
             $e = $c->getstyle(0);
             $e->set("size", 1);
             $e->set("width", 1);
             $ico = $c->createLegendIcon(40, 40);
             $nimg = $ico->saveWebImage();
             $pat = $this->mapa->web->imageurl;
             $ins .= "<img src='" . $nimg . "' style='cursor:pointer;border: 5px solid #FFFFFF' title='0' onclick='" . $onclick . "'>";
         }
         for ($i = $inis; $i < $ns; ++$i) {
             $oSymbol = $this->mapa->getSymbolObjectById($i);
             $nomes = $oSymbol->name;
             if ($nomes == "") {
                 $nomes = $i;
             }
             $adiciona = ms_newLayerObj($this->mapa, $l);
             $nomel = $l->name;
             $tematemp = $this->mapa->getlayerbyname($nomel);
             $c = $tematemp->getClass(0);
             $e = $c->getstyle(0);
             $e->set("symbolname", $nomes);
             $e->set("size", $tamanho);
             $e->set("width", $width);
             $ico = $c->createLegendIcon(40, 40);
             $nimg = $ico->saveWebImage();
             $pat = $this->mapa->web->imageurl;
             $ins .= "<img src='" . $nimg . "' style='cursor:pointer;border: 5px solid #FFFFFF' title=" . $nomes . " onclick='" . $onclick . "'>";
         }
         fwrite($f, "<?php \$res = \"" . $ins . "\";?>");
         fclose($f);
         //copy ($dir."/simbolos".$tipo.".inc",$dir_tmp."/comum/simbolos".$tipo.".inc");
         return $ins;
     } else {
         $res = "";
         include_once $dir . "/simbolos" . $tipo . ".inc";
         return $res;
     }
 }