From 5b2896c513fb9a6a13c5310444429e71732032c6 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 11 Sep 2012 13:28:27 +0000 Subject: [PATCH] Inclusão do controle de acesso por grupos de usuários na definição dos mapfiles --- admin/admin.db | Bin 131072 -> 0 bytes admin/html/editormapfile.html | 2 ++ admin/js/arvore.js | 11 +++++++---- admin/php/classe_arvore.php | 78 ++++++++++++++++++++++++++++++++++++++++++++++++------------------------------ admin/php/editormapfile.php | 3 ++- admin/php/login.php | 8 +++++++- classesphp/classe_mapa.php | 3 +++ classesphp/funcoes_gerais.php | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ classesphp/mapa_controle.php | 24 +++++++----------------- classesphp/mapa_inicia.php | 8 ++++++++ ferramentas/loginusuario/index.js | 2 +- ms_criamapa.php | 3 ++- temas/acidmap.map | 4 ++-- temas/biomashp.map | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------- 14 files changed, 295 insertions(+), 169 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index bac08ff..b12c6e4 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/html/editormapfile.html b/admin/html/editormapfile.html index 5127684..5e4f925 100644 --- a/admin/html/editormapfile.html +++ b/admin/html/editormapfile.html @@ -74,6 +74,8 @@ body { as características de cada LAYER nas opções abaixo.
Para incluir o tema nos menus, edite a árvore de temas
+

Importante: a restrição ao tema por meio da definição de grupos de usuários não bloqueia o acesso por meio de download, WMS, KML, etc. + Para bloquear esse tipo de acesso é necessário alterar as opções específicas. Por padrão, esses serviços são habilitados para qualquer usuário, não sendo possível bloquear apenas para determinados grupos.

Mapfiles (arquivos .map existentes no diretório i3geo/temas):

diff --git a/admin/js/arvore.js b/admin/js/arvore.js index 56d53de..04e00e0 100644 --- a/admin/js/arvore.js +++ b/admin/js/arvore.js @@ -854,10 +854,13 @@ function gravaDados(tipo,id) } if(tipo == "raizmenu" || tipo == "raizgrupo") { - var texto = obj.options[obj.selectedIndex].text; - var no = tree.getNodeByProperty("id_raiz",id); - no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto; - no.html = no.getContentEl().innerHTML; + var obje = document.getElementById("Eid_tema"); + if(obje){ + var texto = obje.options[obje.selectedIndex].text; + var no = tree.getNodeByProperty("id_raiz",id); + no.getContentEl().getElementsByTagName("span")[0].innerHTML = texto; + no.html = no.getContentEl().innerHTML; + } } core_carregando("desativa"); } diff --git a/admin/php/classe_arvore.php b/admin/php/classe_arvore.php index 174f763..a2ece39 100644 --- a/admin/php/classe_arvore.php +++ b/admin/php/classe_arvore.php @@ -39,6 +39,8 @@ Classe utilizada para compor a árvore de temas ou obter dados espec&iacut */ class Arvore { + //temas com acesso restrito e que nao podem ser acessados pelo usuario que esta logado + public $temassindevidos; protected $locaplic; //subgrupos que tem pelo menos um tema //public $sql_subgrupos = "select i3geoadmin_subgrupos.nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from i3geoadmin_n2 LEFT JOIN i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; @@ -73,40 +75,36 @@ class Arvore if(!empty($esquemaadmin)){ $this->esquemaadmin = $esquemaadmin."."; } - if(!isset($convUTF)) - { + if(!isset($convUTF)){ $convUTF = true; } $this->convUTF = $convUTF; $this->dbh = $dbh; $this->idioma = $idioma; - if($idioma == "pt") - { + if($idioma == "pt"){ $coluna = "nome_grupo"; } - else - {$coluna = $idioma; + else{ + $coluna = $idioma; } $this->sql_grupos = "select i3geoadmin_grupos.$coluna as nome_grupo,id_n1,id_menu,i3geoadmin_n1.publicado,n1_perfil from ".$this->esquemaadmin."i3geoadmin_n1 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_grupos ON i3geoadmin_n1.id_grupo = i3geoadmin_grupos.id_grupo "; - if($idioma == "pt") - { + if($idioma == "pt"){ $coluna = "nome_subgrupo"; } - else - {$coluna = $idioma; + else{ + $coluna = $idioma; } $this->sql_subgrupos = "select i3geoadmin_subgrupos.$coluna as nome_subgrupo,i3geoadmin_n2.id_n2,i3geoadmin_n2.publicado,i3geoadmin_n2.n2_perfil from ".$this->esquemaadmin."i3geoadmin_n2 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_subgrupos ON i3geoadmin_n2.id_subgrupo = i3geoadmin_subgrupos.id_subgrupo "; - if($idioma == "pt") - { + if($idioma == "pt"){ $coluna = "nome_tema"; } - else - {$coluna = $idioma; + else{ + $coluna = $idioma; } - $this->sql_temasraiz = "select id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM ".$this->esquemaadmin."i3geoadmin_raiz LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema "; + $this->sql_temasraiz = "select codigo_tema,id_raiz,i3geoadmin_raiz.id_tema,$coluna as nome_tema,tipoa_tema,perfil FROM ".$this->esquemaadmin."i3geoadmin_raiz LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = i3geoadmin_raiz.id_tema "; $this->sql_temasSubgrupo = "select i3geoadmin_temas.tipoa_tema, i3geoadmin_temas.codigo_tema,i3geoadmin_temas.tags_tema,i3geoadmin_n3.id_n3,i3geoadmin_temas.$coluna as nome_tema,i3geoadmin_n3.publicado,i3geoadmin_n3.n3_perfil,i3geoadmin_n3.id_tema,i3geoadmin_temas.download_tema,i3geoadmin_temas.ogc_tema from ".$this->esquemaadmin."i3geoadmin_n3 LEFT JOIN ".$this->esquemaadmin."i3geoadmin_temas ON i3geoadmin_n3.id_tema = i3geoadmin_temas.id_tema "; //$this->sql_temas = "select kmz_tema,nacessos,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,$coluna as nome_tema,codigo_tema from i3geoadmin_temas "; @@ -120,10 +118,13 @@ class Arvore $this->editor = false; $this->editor = $this->verificaOperacaoSessao("admin/php/classe_arvore/editor"); $this->pubsql = " (publicado != 'NAO' or publicado isnull) and "; - if($this->editor) - { + if($this->editor){ $this->pubsql = ""; } + if(!function_exists("listaTemasIndevidos")){ + include_once(__DIR__."/../../classesphp/funcoes_gerais.php"); + } + $this->temasindevidos = listaTemasIndevidos(); } function __destruct() { @@ -131,6 +132,20 @@ class Arvore $this->dbhw = null; } /* + Function: validaTemas + + Remove de um array os temas que nao sao permitidos ao usuario atualmente logado + */ + function validaTemas($linhas,$id){ + $res = array(); + foreach($linhas as $l){ + if(!in_array($l[$id],$this->temasindevidos)){ + array_push($res,$l); + } + } + return $res; + } + /* Function: pegaListaDeMenus Retorna a lista de menus @@ -145,20 +160,20 @@ class Arvore */ function pegaListaDeMenus($perfil) { - if($this->idioma == "pt") - { + if($this->idioma == "pt"){ $coluna = "nome_menu"; } - else - {$coluna = $this->idioma; + else{ + $coluna = $this->idioma; } if($this->editor == true) { $perfil = ""; $sql = "SELECT publicado_menu,'' as perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus order by nome_menu"; } - else + else{ $sql = "SELECT publicado_menu,perfil_menu,aberto,desc_menu,id_menu,$coluna as nome_menu from ".$this->esquemaadmin."i3geoadmin_menus where publicado_menu != 'NAO' or publicado_menu isnull order by nome_menu"; + } $regs = $this->execSQL($sql); $resultado = array(); foreach($regs as $reg) @@ -460,10 +475,10 @@ class Arvore {array} */ - function pegaGruposMenu($id_menu) - { + function pegaGruposMenu($id_menu){ $grupos = $this->execSQL($this->sql_grupos."where ".$this->pubsql." id_menu='$id_menu' order by ordem"); $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.id_menu='$id_menu' and i3geoadmin_raiz.nivel = 0 order by ordem"); + $raiz = $this->validaTemas($raiz,"codigo_tema"); return array("raiz"=>$raiz,"grupos"=>$grupos); } /* @@ -485,6 +500,7 @@ class Arvore { $subgrupos = $this->execSQL($this->sql_subgrupos."where ".$this->pubsql." i3geoadmin_n2.id_n1='$id_n1' order by ordem"); $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); + $raiz = $this->validaTemas($raiz,"codigo_tema"); return array("raiz"=>$raiz,"subgrupos"=>$subgrupos); } /* @@ -504,7 +520,9 @@ class Arvore */ function pegaTemasRaizGrupo($id_menu,$id_n1) { - return $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); + $raiz = $this->execSQL($this->sql_temasraiz."where i3geoadmin_raiz.nivel = 1 and i3geoadmin_raiz.id_nivel = $id_n1 order by ordem"); + $raiz = $this->validaTemas($raiz,"codigo_tema"); + return $raiz; } /* Function: pegaTema @@ -548,7 +566,9 @@ class Arvore */ function pegaTemasSubGrupo($id_n2) { - return $this->execSQL($this->sql_temasSubgrupo."where ".$this->pubsql." i3geoadmin_n3.id_n2='$id_n2' order by ordem"); + $temas = $this->execSQL($this->sql_temasSubgrupo."where ".$this->pubsql." i3geoadmin_n3.id_n2='$id_n2' order by ordem"); + $temas = $this->validaTemas($temas,"codigo_tema"); + return $temas; } /* Function: formataGruposMenu @@ -573,12 +593,10 @@ class Arvore $dados = $this->pegaGruposMenu($id_menu); $resultado = array(); $temasraiz = array(); - foreach($dados["raiz"] as $temar) - { + foreach($dados["raiz"] as $temar){ $temasraiz[] = $this->formataTema($temar["id_tema"]); } - if(count($dados["grupos"]) == 0) - { + if(count($dados["grupos"]) == 0){ $grupos[] = array(); } foreach($dados["grupos"] as $grupo) diff --git a/admin/php/editormapfile.php b/admin/php/editormapfile.php index 4ed242e..161eed6 100644 --- a/admin/php/editormapfile.php +++ b/admin/php/editormapfile.php @@ -1080,6 +1080,7 @@ function refazerLayer() $nl = ms_newLayerObj($mapatema,$layernovo); $nl->set("name",$codigomap); $nl->setmetadata("nomeoriginal",""); + $nl->setmetadata("temaoriginal",""); $nl->setmetadata("olopacity",""); $nl->setmetadata("olstatus",""); $nl->setmetadata("gmopacity",""); @@ -1283,7 +1284,7 @@ function adicionaGrupoUsrTema(){ if($q){ $teste = $q->fetchAll(); if(count($teste) == 0){ - $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupotema (id_tema,id_grupo) VALUES ($id_tema,$id_grupo)"); + $dbhw->query("INSERT INTO ".$esquemaadmin."i3geousr_grupotema (id_tema,id_grupo) VALUES ($id_tema , $id_grupo)"); } } return "ok"; diff --git a/admin/php/login.php b/admin/php/login.php index 8686a15..1053527 100644 --- a/admin/php/login.php +++ b/admin/php/login.php @@ -106,6 +106,7 @@ switch (strtoupper($funcao)) $_SESSION["senha"] = $senha; $_SESSION["papeis"] = $teste["papeis"]; $_SESSION["operacoes"] = $teste["operacoes"]; + $_SESSION["gruposusr"] = $teste["gruposusr"]; $fingerprint = 'I3GEOLOGIN' . $_SERVER['HTTP_USER_AGENT']; //var_dump($_SESSION["operacoes"]);exit; $_SESSION['fingerprint'] = md5($fingerprint . session_id()); @@ -238,6 +239,7 @@ function autenticaUsuario($usuario,$senha){ if(count($dados) > 0){ $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario where id_usuario = ".$dados[0]["id_usuario"],$locaplic); $op = pegadados("SELECT O.codigo, PU.id_usuario FROM ".$esquemaadmin."i3geousr_operacoes AS O JOIN ".$esquemaadmin."i3geousr_operacoespapeis AS OP ON O.id_operacao = OP.id_operacao JOIN ".$esquemaadmin."i3geousr_papelusuario AS PU ON OP.id_papel = PU.id_papel WHERE id_usuario = ".$dados[0]["id_usuario"],$locaplic); + $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupousuario where id_usuario = ".$dados[0]["id_usuario"]); $operacoes = array(); foreach($op as $o){ $operacoes[$o["codigo"]] = true; @@ -246,7 +248,11 @@ function autenticaUsuario($usuario,$senha){ foreach($pa as $p){ $papeis[] = $p["id_papel"]; } - $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes); + $gruposusr = array(); + foreach($gr as $p){ + $gruposusr[] = $p["id_grupo"]; + } + $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes,"gruposusr"=>$gruposusr); return $r; } else{ diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php index ff2477d..6bc5d5e 100644 --- a/classesphp/classe_mapa.php +++ b/classesphp/classe_mapa.php @@ -927,6 +927,8 @@ Ao ser adicionado, todos os layers do arquivo indicado serão acrescentado Os layers que formam grupos também são processados, tendo seus nomes alterados de acordo. Cada novo layer receberá um novo nome, definido de forma aleatória. Os nomes dos temas podem conter o caminho completo do mapfile. +O nome original do LAYER (NAME) sera armazenado no metadata nomeoriginal +O nome do tema (mapfile) original sera armazenado no metadata temaoriginal Parametros: @@ -984,6 +986,7 @@ $random - indica se os nomes dos novos layers serão modificados ou nao autoClasses($nlayer,$this->mapa); $nlayer->set("status",MS_DEFAULT); $nlayer->setmetadata("nomeoriginal",$nlayer->name); + $nlayer->setmetadata("temaoriginal",str_replace(".map","",basename($nomemap))); $nlayer->set("name",$nomeunico[$n]); //altera o nome do grupo se existir if ($nlayer->group != " " && $nlayer->group != "" ) diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 894281b..a8ad682 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -3049,4 +3049,109 @@ function permissoesarquivo($arquivo){ return $info; } +/* +Function: validaAcessoTemas + +Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios +*/ +function validaAcessoTemas($map_file){ + $indevidos = listaLayersIndevidos($map_file); + if(count($indevidos) > 0){ + $m = ms_newMapObj($map_file); + foreach($indevidos as $i){ + $l = $m->getlayerbyname($i); + $l->set("status",MS_DELETE); + } + $m->save($map_file); + } + return; +} +/* +Function: listaTemasRestritos + +Lista os temas que possuem restricao de acesso para apenas alguns grupos de usuarios + +O retorno e um array com a chave sendo o codigo do tema e o valor um array com a lista de ids de grupos que podem acessar +*/ +function listaTemasRestritos(){ + include_once(__DIR__."/../admin/php/admin.php"); + $res = pegaDados("select id_grupo,codigo_tema from ".$esquemaadmin."i3geousr_grupotema as gt,".$esquemaadmin."i3geoadmin_temas as te where gt.id_tema = te.id_tema"); + $restritos = array(); + foreach ($res as $r){ + if($restritos[$r["codigo_tema"]]){ + array_push($restritos[$r["codigo_tema"]],$r["id_grupo"]); + } + else{ + $restritos[$r["codigo_tema"]] = array($r["id_grupo"]); + } + } + return $restritos; +} +/* +Function: listaLayersIndevidos + +Lista os layers de um mapfile que sao restritos e que nao sao permitidos ao usuario logado +*/ +function listaLayersIndevidos($map_file){ + $indevidos = array(); + $restritos = listaTemasRestritos(); + if(count($restritos) > 0){ + $gruposusr = listaGruposUsrLogin(); + $m = ms_newMapObj($map_file); + $c = $m->numlayers; + for ($i=0;$i < $c;++$i) { + $layer = $m->getlayer($i); + $meta = $layer->getmetadata("temaoriginal"); + if($meta != ""){ + $t = $restritos[$meta]; + if(!in_array($t,$gruposusr)){ + array_push($indevidos,$layer->name); + } + } + } + } + return $indevidos; +} +/* + Function: listaTemasIndevidos + +Lista os temas que sao restritos e que nao sao permitidos ao usuario logado +*/ +function listaTemasIndevidos(){ + $indevidos = array(); + $restritos = listaTemasRestritos(); + if(count($restritos) > 0){ + $gruposusr = listaGruposUsrLogin(); + $c = count($gruposusr); + reset($restritos); + while (list($key, $val) = each($restritos)) { + //var_dump($val);var_dump($gruposusr);exit; + if(array_search($gruposusr,$val) === true || $c == 0){ + array_push($indevidos,$key); + } + } + } + return $indevidos; +} +/* + Function: listaGruposUsrLogin + +Lista os os grupos ao qual pertence o usuario atualmente logado +*/ +function listaGruposUsrLogin(){ + if(empty($_COOKIE["i3geocodigologin"])){ + return array(); + } + session_write_close(); + $nameatual = session_name(); + $idatual = session_id(); + session_name("i3GeoLogin"); + session_id($_COOKIE["i3geocodigologin"]); + session_start(); + $res = $_SESSION["gruposusr"]; + session_name("$nameatual"); + session_id($idatual); + session_start(); + return $res; +} ?> diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index 5ee0c88..b7c173f 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -159,7 +159,9 @@ if (isset($debug) && strtolower($debug) == "sim") //se as extensões já estiverem carregadas no PHP, vc pode comentar essa linha para que o processamento fique mais rápido // include_once ("carrega_ext.php"); -include_once("funcoes_gerais.php"); +if(!function_exists("sobeAnno")){ + include_once("funcoes_gerais.php"); +} if ($funcao == "criaMapa") { session_name("i3GeoPHP"); @@ -182,6 +184,8 @@ if ($funcao == "criaMapa") include_once("ms_criamapa.php"); $_SESSION["interface"] = $interfaceTemp; cpjson(session_id()); + //ver funcoes_gerais.php + validaAcessoTemas($_SESSION("map_file")); return; } if (!isset($map_file)) @@ -249,20 +253,6 @@ Inicia o mapa, pegando os parâmetros necessários para a montagem in iniciaMapa(); break; /* -Valor: MONTAFLAMINGO - -Gera o arquivo xml de configuração para a interface Flamingo. - -O arquivo xml é gravado no diretório temporário do mapserver e contém a string de conexão com o gerador de webservices classesphp/flamingoogc.php -Esse gerador, recebe como parâmetro o id da seção atual e transforma o mapfile atual em um webservcie capaz de ser entendido pelo flamingo. - - -*/ - case "MONTAFLAMINGO": - include("flamingo.inc"); - $retorno = $host."/ms_tmp/".basename(dirname($map_file))."/flamingo.xml"; - break; -/* Valor: OPENLAYERS Prepara o mapa atual para funcionar na interface openlayers. @@ -1055,11 +1045,11 @@ Adiciona um novo tema ao mapa. copiaSeguranca($map_file); $m = new Mapa($map_file); $salvar = $m->adicionaTema($temas,$locaplic); - if($salvar) - { + if($salvar){ $m->salva(); $_SESSION["contadorsalva"]++; } + validaAcessoTemas($map_file); $retorno = "ok"; /* if($interface != "openlayers"){ diff --git a/classesphp/mapa_inicia.php b/classesphp/mapa_inicia.php index 2171037..1b00af0 100644 --- a/classesphp/mapa_inicia.php +++ b/classesphp/mapa_inicia.php @@ -103,6 +103,14 @@ Retorno: function iniciaMapa() { global $emailInstituicao,$openid,$interfacePadrao,$mensagemInicia,$kmlurl,$tituloInstituicao,$tempo,$navegadoresLocais,$locaplic,$embedLegenda,$map_file,$mapext,$w,$h,$R_path,$locmapserv,$utilizacgi,$expoeMapfile,$interface; + // + //verifica se algum tema e restrito a determinado usuario + //as funcoes de validacao encontram-se em funcoes_gerais.php + // + if(!function_exists("validaAcessoTemas")){ + include_once("funcoes_gerais.php"); + } + validaAcessoTemas($_SESSION["map_file"]); if(!isset($kmlurl)) {$kmlurl = "";} error_reporting(0); diff --git a/ferramentas/loginusuario/index.js b/ferramentas/loginusuario/index.js index 8a50f10..5fa114b 100644 --- a/ferramentas/loginusuario/index.js +++ b/ferramentas/loginusuario/index.js @@ -113,7 +113,7 @@ i3GEOF.loginusuario = { '
' + '

 ' + '

'+$trad("x32")+'

' + - '

'+$trad("x52")+'

'; + '

'+$trad("x52")+'


'; return ins; }, /* diff --git a/ms_criamapa.php b/ms_criamapa.php index 88d41ad..d64291f 100644 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -647,7 +647,8 @@ function incluiTemasIniciais() {$existeraster = true;} if ($layern->name == "estadosl") {$layern->set("data",$locaplic."/aplicmap/dados/estados.shp");} - $layern->setmetadata("NOMEORIGINAL",$layern->name); + $layern->setmetadata("nomeoriginal",$layern->name); + $layern->setmetadata("temaoriginal",str_replace(".map","",basename($arqtemp))); autoClasses($layern,$mapn); // //necessário para não alterar a extensão do mapa por esse parâmetro diff --git a/temas/acidmap.map b/temas/acidmap.map index cc38e29..d27ebd3 100644 --- a/temas/acidmap.map +++ b/temas/acidmap.map @@ -1,8 +1,8 @@ MAP - FONTSET "c:\ms4w\apache\htdocs\i3geo/symbols/fontes.txt" - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo/symbols/simbolos.sym" + FONTSET "../symbols/fontes.txt" + SYMBOLSET "../symbols/simbolos.sym" LAYER CONNECTION "http://localhost:8080/geoserver/wms?VALUE_COLUMN=VALOR&SERVICE=AMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&FORMAT=image/png&EXCEPTIONS=application/vnd.ogc.se_inimage&TILED=true&TRANSPARENT=FALSE&VALUE_COLUMN=value&SIMPLIFY_METHOD=1&SIMPLIFY_SIZE=400&INTERVALS[]=10,20,45,70,100&INTERVALS_COLORS[]=0xffffff00,0xffb2,0xff00b2,0xffff00b2,0xff0000b2&RENDERER_TYPE=2&INTERPOLATION_STRATEGY=2&RADIUS=32" CONNECTIONTYPE WMS diff --git a/temas/biomashp.map b/temas/biomashp.map index 4b956b9..bd537fe 100644 --- a/temas/biomashp.map +++ b/temas/biomashp.map @@ -1,114 +1,103 @@ MAP - FONTSET "c:\ms4w\apache\htdocs\i3geo\symbols\fontes.txt" - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo\symbols\simbolos.sym" - LAYER - CONNECTION "" - DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\biomas.shp" - FOOTER "teste.htm" - GROUP "biomashp" - HEADER "teste.htm" - METADATA - "ltempoitemimagem" "" - "cache" "SIM" - "CLASSE" "SIM" - "ltempoitemdescricao" "" - "palletestep" "" - "ltempoiteminicio" "" - "permitekmz" "sim" - "ltempoitemtip" "" - "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png" - "description_template" "" - "ltempoitemtitulo" "" - "ltempoitemlink" "" - "palletefile" "" - "extensao" "-44 -23 -39 -21" - "NOMEORIGINAL" "" - "permitedownload" "sim" - "ltempoformatodata" "" - "ltempoitemicone" "" - "download" "SIM" - "permitekml" "sim" - "permiteogc" "" - "convcaracter" "" - "TEMA" "bioma shp" - "identifica" "NAO" - "editorsql" "" - "ltempoitemfim" "" - END - NAME "biomashp" - STATUS OFF - TEMPLATE "none.htm" - OPACITY 50 - TYPE POLYGON + FONTSET "../symbols/fontes.txt" + SYMBOLSET "../symbols/simbolos.sym" + LAYER + CONNECTION "" + DATA "/var/www/geodados/brasil/vegetacao/biomas.shp" + FOOTER "teste.htm" + GROUP "biomashp" + HEADER "teste.htm" + METADATA + "cache" "SIM" + "ltempoitemimagem" "" + "ltempoitemdescricao" "" + "CLASSE" "SIM" + "ltempoiteminicio" "" + "palletestep" "" + "ltempoitemtip" "" + "permitekmz" "sim" + "ltempoitemtitulo" "" + "description_template" "" + "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png" + "ltempoitemlink" "" + "extensao" "-44 -23 -39 -21" + "palletefile" "" + "NOMEORIGINAL" "" + "ltempoformatodata" "" + "permitedownload" "sim" + "ltempoitemicone" "" + "download" "SIM" + "permiteogc" "" + "permitekml" "sim" + "TEMA" "Biomas shapefile" + "convcaracter" "" + "editorsql" "" + "identifica" "NAO" + "ltempoitemfim" "" + END # METADATA + NAME "biomashp" + PROCESSING "ITEMS=CD_LEGENDA" + STATUS OFF + TEMPLATE "none.htm" + TILEITEM "location" + OPACITY 50 + TYPE POLYGON UNITS METERS - PROCESSING "ITEMS=CD_LEGENDA" - CLASS - NAME "CAATINGA" - EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') - STYLE - ANGLE 360 - COLOR 21 44 114 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - CLASS - NAME "PAMPA" - EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') - STYLE - ANGLE 360 - COLOR 225 189 199 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - CLASS - NAME "CERRADO" - EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') - STYLE - ANGLE 360 - COLOR 17 235 39 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - CLASS - NAME "PANTANAL" - EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') - STYLE - ANGLE 360 - COLOR 242 192 145 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - CLASS - NAME "AMAZONIA" - EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') - STYLE - ANGLE 360 - COLOR 149 120 37 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - CLASS - NAME "MATA ATLANTICA" - EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') - STYLE - ANGLE 360 - COLOR 208 160 125 - SYMBOL 0 - WIDTH 1 - END - TITLE "" - END - END - -END - + CLASS + NAME "CAATINGA" + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') + STYLE + COLOR 21 44 114 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + CLASS + NAME "PAMPA" + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') + STYLE + COLOR 225 189 199 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + CLASS + NAME "CERRADO" + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') + STYLE + COLOR 17 235 39 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + CLASS + NAME "PANTANAL" + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') + STYLE + COLOR 242 192 145 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + CLASS + NAME "AMAZONIA" + EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') + STYLE + COLOR 149 120 37 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + CLASS + NAME "MATA ATLANTICA" + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') + STYLE + COLOR 208 160 125 + OFFSET 0 0 + END # STYLE + TITLE "" + END # CLASS + END # LAYER + +END # MAP + -- libgit2 0.21.2