From 105dd6cf74b54b611bf6ee9ee485b2fa088230c7 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 3 Aug 2016 19:47:54 -0300 Subject: [PATCH] Atualização do código --- admin/admin.db | Bin 340992 -> 0 bytes classesphp/mapa_controle.php | 5222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- classesphp/sani_request.php | 68 +++++++++++++++++++++++++++++++++++--------------------------------- 3 files changed, 2708 insertions(+), 2582 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 6f251f3..b3aca35 100755 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index ca6da6e..e6a793e 100755 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -1,2565 +1,2689 @@ - - -pega as variáveis da seção-> - -verifica se o debug deve ser ativado-> - -carrega as extensões do PHP-> - -cria o objeto cpaint-> - -carrega as funções de uso mais comuns-> - -faz uma cópia de segurança do map_file-> - -roda a função desejada-> - -retorna os valores obtidos - -Licenca: - -GPL2 - -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet - -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com - -Este programa é software livre; você pode redistribuí-lo -e/ou modificá-lo sob os termos da Licença Pública Geral -GNU conforme publicada pela Free Software Foundation; - -Este programa é distribuído na expectativa -de que seja útil, -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. -Consulte a Licença Pública Geral do GNU para mais detalhes. -Você deve ter recebido uma c�pia da Licença Pública Geral do - GNU junto com este programa; se não, escreva para a -Free Software Foundation, Inc., no endereço -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. - -Arquivo: - -i3geo/classesphp/mapa_controle.php - -Parametros: - -funcao - opção que será executada (veja abaixo a lista de Valores que esse parâmetro pode assumir). - -Retorno: - -O resultado da operação será retornado em um objeto CPAINT. - -A construção da string JSON é feita preferencialmente pelas funções nativas do PHP. -Para efeitos de compatibilidade, uma vez que até a versão 4.2 a string JSON era construida pelo CPAINT, -o objeto CPAINT ainda é definido, porém, a função cpjson verifica se as funções nativas do PHPO (json) -estão instaladas, se estiverem, utiliza-se a função nativa, se não, utiliza-se o CPAINT para gerar o JSON. - -Exemplo de chamada CPAINT (Ajax) do lado do cliente (javascript): - -var p = "classesphp/mapa_controle.php?funcao=crialente&resolucao=1.5&g_sid="+g_sid - -var cp = new cpaint() - -cp.set_response_type("JSON") - -cp.call(p,"lente",ajaxabrelente) - -Variáveis de Seção: - -dir_tmp - diretório, no servidor, temporário utilizado pelo I3Geo, exemplo: c:/ms4w/tmp/ms_tmp -locmapserv - localização, no servidor, do CGI, exemplo: /cgi-bin/mapserv.exe -locaplic - localização, no servidor, do I3Geo, exemplo: c:/ms4w/apache/htdocs/i3geo -R_path - localização, no servidor, do executável do pacote R, exemplo: c:/ms4w/apache/htdocs/i3geo/pacotes/r/win/bin/R.exe -imgurl - url das imagens geradas pelo mapa, exemplo: http://localhost/ms_tmp/imgTVHbdijFMk/ -tmpurl - url do diretório temporário, exemplo: http://localhost/ms_tmp/ -map_file - endereço, no servidor, do mapfile atual, exemplo: c:/ms4w/tmp/ms_tmp/TVHbdijFMk/TVHbdijFMk.map -mapext - extensão geográfica do mapa atual, exemplo: -76.5125927 -39.3925675209 -29.5851853 9.49014852081 -perfil - nome do perfil para controlar os temas que serão visíveis na lista de temas. -mapdir - localização, no servidor, do diretório com o mapfile temporário do mapa atual. -imgdir - localização, no servidor, das imagens temporárias do mapa atual. -debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL - contadorsalva - indica quantas vezes o mapa já foi salvo. Permite que uma aplicação verifique se o mapa foi alterado ou não. - */ -error_reporting(0); - -//sleep(5); - -// -//pega as variaveis passadas com get ou post -// -$tempo = microtime(1); - -include_once("pega_variaveis.php"); - -$interfaceTemp = $interface; -// -//inicializa a sessao -//algumas funcoes sao utilizadas por outros aplicativos e por isso -//nao passam por essa critica -//TEMA2SLD e usado por datadownload.htm -//PEGAMAPAS e utilizado em varias funcoes -// -if ($funcao != "pegaTodosTemas" && $funcao != "download3" && $funcao != "listainterfaces" && $funcao != "pegalistadetemas" && $funcao != "pegalistadeSubgrupos" && $funcao != "procurartemasestrela" && $funcao != "pegalistadegrupos" && $funcao != "pegalistademenus" && $funcao != "criaMapa" && strtoupper($funcao) != "TEMA2SLD" && strtoupper($funcao) != "PEGAMAPAS"){ - session_name("i3GeoPHP"); - if (isset($g_sid) && $g_sid != ""){ - session_id($g_sid); - } - session_start(); - $statusFerramentas = $_SESSION["statusFerramentas"]; - $imgurl = $_SESSION["imgurl"]; - $tmpurl = $_SESSION["tmpurl"]; - $map_file = $_SESSION["map_file"]; - $mapext = $_SESSION["mapext"]; - $dir_tmp = $_SESSION["dir_tmp"] ; - $cachedir = $_SESSION["cachedir"]; - $emailInstituicao = $_SESSION["emailInstituicao"]; - $locmapserv = $_SESSION["locmapserv"]; - $locaplic = $_SESSION["locaplic"]; - $R_path = $_SESSION["R_path"]; - $mapext = $_SESSION["mapext"]; - $debug = $_SESSION["debug"]; - $ler_extensoes = $_SESSION["ler_extensoes"]; - $postgis_mapa = $_SESSION["postgis_mapa"]; - $perfil = $_SESSION["perfil"]; - $navegadoresLocais = $_SESSION["navegadoresLocais"]; - $utilizacgi = $_SESSION["utilizacgi"]; - $tituloInstituicao = $_SESSION["tituloInstituicao"]; - $expoeMapfile = $_SESSION["expoeMapfile"]; - $googleApiKey = $_SESSION["googleApiKey"]; - $mensagemInicia = $_SESSION["mensagemInicia"]; - $interfacePadrao = $_SESSION["interfacePadrao"]; - $interface = $_SESSION["interface"]; - $kmlurl = $_SESSION["kmlurl"]; - $mapdir = $_SESSION["mapdir"]; - $imgdir = $_SESSION["imgdir"]; - $contadorsalva = $_SESSION["contadorsalva"]; - $i3georendermode = $_SESSION["i3georendermode"]; - $saikuUrl = $_SESSION["saikuUrl"]; - //sao arrays - $postgis_mapa = $_SESSION["postgis_mapa"]; - $statusFerramentas = $_SESSION["statusFerramentas"]; - if(isset($_SESSION['fingerprint'])) { - $f = explode(",",$_SESSION['fingerprint']); - if($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())){ - include_once("funcoes_gerais.php"); - cpjson(". Tentativa de acesso nao permitida. Inicie um novo mapa."); - return; - } - } -} -// -//isso é necessário pois a variável "interface" pode ser utilizada como parâmetro em algumas funções ajax -//nesses casos, é necessário recuperar o valor correto e não da sessão -// -if(isset($interfaceTemp) && $interfaceTemp != ""){ - $_SESSION["interface"] = $interfaceTemp; - $interface = $interfaceTemp; -} -error_reporting(0); -// -//teste de timeout -// -//for($i==0;$i<5000000000;++$i){} -// -//ativa o php mapscript e as extensões necessárias -//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"); -if(!function_exists("sobeAnno")){ - include_once("funcoes_gerais.php"); -} -if($funcao == "criaMapa"){ - session_name("i3GeoPHP"); - unset($GLOBALS); - session_destroy(); - $_COOKIE = array(); - // - //primeiro é necessário carregar o ms_configura.php para pegar a variável $locaplic - // - $d = ""; - include_once(dirname(__FILE__)."/../ms_configura.php"); - // - //é necessário mudar o diretório em função dos includes que são feitos pelo ms_criamapa.php - // - //chdir($locaplic); - $interfaceTemp = $interface; - $interface = "mashup"; - include_once(dirname(__FILE__)."/../ms_criamapa.php"); - $_SESSION["interface"] = $interfaceTemp; - $temp = $_SESSION["map_file"]; - $id = session_id(); - session_write_close(); - //ver funcoes_gerais.php - validaAcessoTemas($temp); - cpjson($id); - return; -} -if (!isset($map_file)) -{ - //nesse caso é necessário criar o diretório temporário e iniciar o mapa - //$cp->set_data(array("erro"=>"linkquebrado")); - //$cp->return_data(); - //cpjson(array("erro"=>"linkquebrado")); - ilegal(); - exit; -} -include_once("classe_vermultilayer.php"); -include_once("classe_estatistica.php"); -error_reporting(0); -// -//identifica qual a url do i3geo -// - -$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); -$protocolo = strtolower($protocolo[0]) . '://'.$_SERVER['HTTP_HOST'];//$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; -$urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); -// -//inserido na versão 4.6 -// -if(!isset($locaplic)){ - include_once(dirname(__FILE__)."/../ms_configura.php"); -} -// -//substitui a string de conexão -// - -if($funcao != "recuperamapa" && $funcao != "TEMA2SLD") -{ - if(!substituiCon($map_file,$postgis_mapa)) - { - //$cp->set_data("erro"); - //$cp->return_data(); - cpjson("erro",$cp); - return; - } -} -// -//faz a busca da função que deve ser executada -// -$retorno = ""; //string que será retornada ao browser via JSON -switch (strtoupper($funcao)) -{ - /* - Section: Inicialização - - Inicia o mapa. - */ - /* - Valor: INICIA - - Inicia o mapa, pegando os parâmetros necessários para a montagem inicial. - - - */ - case "INICIA": - include_once("mapa_inicia.php"); - //include(dirname(__FILE__)."/../ms_configura.php"); - iniciaMapa(); - break; - /* - Valor: OPENLAYERS - - Prepara o mapa atual para funcionar na interface openlayers. - */ - case "OPENLAYERS": - $interface = "openlayers"; - include_once("mapa_inicia.php"); - iniciaMapa(); - break; - /* - Valor: GOOGLEMAPS - - Prepara o mapa atual para funcionar na interface googlemaps. - */ - case "GOOGLEMAPS": - $interface = "googlemaps"; - include_once("mapa_inicia.php"); - iniciaMapa(); - break; - /* - Valor: GOOGLEEARTH - - Prepara o mapa atual para funcionar na interface googleearth. - */ - case "GOOGLEEARTH": - $interface = "googleearth"; - include_once("mapa_inicia.php"); - iniciaMapa(); - break; - /* - Valor: CONVERTE2OPENLAYERS - - Prepara o mapa atual que estava usando outra interface - */ - case "CONVERTE2OPENLAYERS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->converteInterfacePara("openlayers"); - break; - /* - Valor: CONVERTE2GOOGLEMAPS - - Prepara o mapa atual que estava usando outra interface - */ - case "CONVERTE2GOOGLEMAPS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->converteInterfacePara("googlemaps"); - break; - /* - Section: Análise - - Análise de dados. - - - */ - /* - Valor: INCMAPAGEOMETRIAS - - Inclui geometrias, armazenadas no formato I3Geo, como um tema no mapa atual. - - O mapfile é alterado e salvo novamente com os novos layers. - - incmapageometrias> - */ - case "INCMAPAGEOMETRIAS": - include_once("classe_analise.php"); - $m = new Analise($map_file,""); - $retorno = $m->incmapageometrias($dir_tmp,$imgdir,$lista); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: FUNCOESGEOMETRIAS - - Processa geometrias, armazenadas no formato i3Geo, gerando uma nova geometria. - União, intersecção, etc. - - funcoesGeometrias> - */ - case "FUNCOESGEOMETRIAS": - include_once("classe_analise.php"); - $m = new Analise($map_file,""); - $retorno = $m->funcoesGeometrias($dir_tmp,$imgdir,$lista,$operacao); - if($recalcareaper == "true"){ - $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"area"); - $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"perimetro"); - } - break; - /* - Valor: FUNCOESGEOMETRIASWKT - - Processa geometrias recebidas como WKT gerando uma nova geometria. - União, intersecção, etc. - - A lista de WKTs deve usar o separador | - - funcoesGeometriasWKT> - */ - case "FUNCOESGEOMETRIASWKT": - include_once("classe_analise.php"); - $m = new Analise($map_file,""); - $retorno = $m->aplicaFuncaoListaWKT(explode("|",$geometrias),$operacao,$dir_tmp,$imgdir); - break; - /* - Valor: CALCULAGEOMETRIAS - - Processa geometrias, armazenadas no formato I3Geo, gerando cálculos. - Área, perímetro, etc. - - calculaGeometrias> - */ - case "CALCULAGEOMETRIAS": - include_once("classe_analise.php"); - $m = new Analise($map_file,""); - $retorno = $m->calculaGeometrias($dir_tmp,$imgdir,$lista,$operacao); - break; - /* - Valor: LISTAGEOMETRIAS - - Gera a lista de geometrias disponíveis para o mapa atual. - - As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. - - listaGeometrias> - */ - case "LISTAGEOMETRIAS": - include_once("classe_temas.php"); - if(!isset($tema)){ - $tema = ""; - } - $m = new Temas($map_file,$tema); - $retorno = $m->listaGeometrias($dir_tmp,$imgdir); - break; - /* - Valor: CAPTURAGEOMETRIAS - - Gera um arquivo de geometrias, no formato I3Geo, para um tema, considerando os elementos selecionados. - - As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. - - capturaGeometrias> - */ - case "CAPTURAGEOMETRIAS": - include_once("classe_temas.php"); - $m = new Temas($map_file,$tema); - $retorno = $m->capturaGeometrias($dir_tmp,$imgdir,$nome); - break; - /* - Section: Mapa - - - */ - /* - Valor: PEGAMENSAGENS - - Pega as mensagens do metadata 'mensagem'. - - pegaMensagens> - */ - case "PEGAMENSAGENS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->pegaMensagens(); - break; - /* - Valor: REINICIAMAPA - - Reinicia um mapa restaurando a c�pia de segurança. - */ - case "REINICIAMAPA": - $qyfile = str_replace(".map",".qy",$map_file); - if (file_exists($qyfile)) - { - unlink ($qyfile); - } - unlink($map_file); - copy(str_replace(".map","reinc.map",$map_file),$map_file); - $retorno = "ok"; - $_SESSION["contadorsalva"]++; - break; - /* - Valor: RECUPERAMAPA - - Recupera o mapfile de segurança. - */ - case "RECUPERAMAPA": - $qyfile = str_replace(".map",".qy",$map_file); - if (file_exists($qyfile)) - { - unlink ($qyfile); - } - unlink($map_file); - $nmf = str_replace(".map","seguranca.map",$map_file); - if(file_exists($nmf)) - { - copy($nmf,$map_file); - } - else - { - $nmf = str_replace(".map","reinc.map",$map_file); - copy($nmf,$map_file); - } - $retorno = "ok"; - $_SESSION["contadorsalva"]++; - break; - /* - Valor: ATIVALOGO - - Ativa ou desativa a marca de logo no mapa. - - ativalogo> - */ - case "ATIVALOGO": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $m->ativalogo(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: ATIVALEGENDA - - Ativa ou desativa a legenda inserida no mapa. - - ativalegenda> - */ - case "ATIVALEGENDA": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $m->ativalegenda(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: CONVERTEWS - - Converte o mapa atual em um wms. - - converteWS> - */ - case "CONVERTEWS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - if(!isset($h)){ - $h = ""; - } - $retorno = $m->converteWS($locaplic,$h); - break; - /* - Valor: QUERYMAPCOR - - Altera a cor de seleção. - - corQM> - */ - case "QUERYMAPCOR": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $m->corQM($cor); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: CORPO - - Redesenha o mapa. - */ - case "CORPO": - redesenhaMapa(); - break; - /* - Valor: CORPOENTORNO - - Desenha as imagens do entorno do mapa. - - redesenhaEntorno> - */ - case "CORPOENTORNO": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->redesenhaEntorno(); - break; - /* - Valor: ADICIONATEMASHP - - Adiciona um tema baseado em um arquivo shape file. - - adicionaTemaSHP> - */ - case "ADICIONATEMASHP": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $retorno = $m->adicionaTemaSHP($arq); - if ($retorno != "erro") - { - $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); - } - else - { - $retorno = "erro.Nenhum dado espacializado foi encontrado."; - } - break; - /* - Valor: ADICIONATEMAIMG - - Adiciona um tema baseado em um arquivo de imagem. - - adicionaTemaIMG> - */ - case "ADICIONATEMAIMG": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $retorno = $m->adicionaTemaIMG($arq); - if ($retorno != "erro") - { - $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); - } - else - { - $retorno = "erro.Nenhum dado espacializado foi encontrado."; - } - break; - /* - Valor: LISTATEMAS - - Lista os temas existentes em um mapa. - - listaTemas> - */ - case "LISTATEMAS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->listaTemas($tipo); - $retorno = array_reverse($retorno); - break; - /* - Valor: LISTATEMASLOCAIS - - Lista os temas existentes no diretório temporário do mapa atual. - - listaTemasLocais> - */ - case "LISTATEMASLOCAIS": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->listaTemasLocais(); - break; - /* - Valor: LISTATEMASTIPO - - Lista os temas existentes por tipo. - - listaTemasTipo> - */ - case "LISTATEMASTIPO": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - if(!isset($selecao) || $selecao == ""){ - $selecao = "nao"; - } - $retorno = $m->listaTemasTipo($tipo,$selecao); - break; - /* - Valor: LISTATEMASCOMSEL - - Lista os temas que possuem seleção. - - listaTemasComSel> - */ - case "LISTATEMASCOMSEL": - include_once("classe_mapa.php"); - $m = new Mapa($map_file); - $retorno = $m->listaTemasComSel(); - break; - /* - Valor: LIGATEMAS - - Liga e desliga temas no mapa atual. - - ligaDesligaTemas> - */ - case "LIGATEMAS": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file,$locaplic); - $retorno = $m->ligaDesligaTemas($ligar,$desligar,$adicionar); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: LIGATEMASBEACON - - Liga e desliga temas no mapa atual partindo de uma chamada via tag IMG - - Retorna um c�digo de erro para indicar o fim do retorno. - - Veja no livro "Javascript de Alto Desempenho", de Nicholas C. Zakas pg. 162 - - ligaDesligaTemas> - */ - case "LIGATEMASBEACON": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file,$locaplic); - $retorno = $m->ligaDesligaTemas($ligar,$desligar,$adicionar); - $m->salva(); - $_SESSION["contadorsalva"]++; - ob_start(); - header("HTTP/1.1 204 Not Content"); - header("Status: 204 Not Content"); - ob_end_flush(); - break; - /* - Valor: ADTEMA - - Adiciona um novo tema ao mapa. - - adicionaTema> - */ - case "ADTEMA": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $salvar = $m->adicionaTema($temas,$locaplic); - if($salvar){ - $m->salva(); - $_SESSION["contadorsalva"]++; - } - validaAcessoTemas($map_file); - $retorno = "ok"; - /* - if($interface != "openlayers"){ - $teste = testaMapa($map_file,$postgis_mapa); - if ($teste == "ok") - {$retorno = "ok";$_SESSION["contadorsalva"]++;} - else - {$retorno = array("erro"=>"A camada nao pode ser adicionada. ".$teste);} - } - */ - break; - /* - Valor: EXCLUITEMA - - Exclui um tema do mapa. - - excluiTemas> - */ - case "EXCLUITEMA": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $m->excluiTemas($temas); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: ADICIONATEMAWMS - - Acrescenta um novo tema em um arquivo map file tendo como fonte um WMS. - - adicionatemawms> - */ - case "ADICIONATEMAWMS": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $m->adicionatemawms($tema,$servico,$nome,$proj,$formato,$locaplic,$tipo,$versao,$nomecamada,$dir_tmp,$imgdir,$imgurl,$tiporep,$suportasld,$formatosinfo,$time,$tile); - $teste = "ok";//testaMapa($map_file,$postgis_mapa); - if ($teste == "ok") - { - $retorno = "ok";$_SESSION["contadorsalva"]++; - } - else - {$retorno = array("erro"=>"A camada nao pode ser adicionada. ".$teste); - } - break; - /* - Valor: REFERENCIA - - Gera a imagem do mapa de referência. - */ - case "REFERENCIA": - $objMapa = ms_newMapObj($map_file); - $nomeImagem = nomeRandomico(); - if(!isset($ext)) - { - $ext = ""; - } - $retorno = retornaReferencia($ext); - break; - /* - Valor: REFERENCIADINAMICA - - Gera a imagem do mapa de referência de forma dinâmica, variando com a escala do mapa atual. - */ - case "REFERENCIADINAMICA": - //$objMapa = ms_newMapObj($map_file); - $nomeImagem = nomeRandomico(); - if(!isset($ext)) - { - $ext = ""; - } - $retorno = retornaReferenciaDinamica($ext,$w,$h); - break; - /* - Valor: MUDAOUTPUTFORMAT - - Muda o OUTPUTFORMAT. - - mudaoutputformat> - */ - case "MUDAOUTPUTFORMAT": - include_once("classe_mapa.php"); - copiaSeguranca($map_file); - $m = new Mapa($map_file); - $res = $m->mudaoutputformat($tipo); - if($res != 1) - { - $m->salva();$_SESSION["contadorsalva"]++; - } - else - {$res = "erro"; - } - $retorno = $res; - break; - /* - Section: Temas - - Processa os layers do mapa. - - - */ - /* - Valor: PEGANOMELAYER - - Obtém o nome de um layer e de seu arquivo mapfile original. - - peganomelayer> - */ - case "PEGANOMELAYER": - include_once("classe_temas.php"); - $m = new Temas($map_file,$tema); - $retorno = $m->peganomelayer(); - break; + + +pega as variáveis da seção-> + +verifica se o debug deve ser ativado-> + +carrega as extensões do PHP-> + +cria o objeto cpaint-> + +carrega as funções de uso mais comuns-> + +faz uma cópia de segurança do map_file-> + +roda a função desejada-> + +retorna os valores obtidos + +Licenca: + +GPL2 + +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet + +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com + +Este programa é software livre; você pode redistribuí-lo +e/ou modificá-lo sob os termos da Licença Pública Geral +GNU conforme publicada pela Free Software Foundation; + +Este programa é distribuído na expectativa +de que seja útil, +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. +Consulte a Licença Pública Geral do GNU para mais detalhes. +Você deve ter recebido uma c�pia da Licença Pública Geral do + GNU junto com este programa; se não, escreva para a +Free Software Foundation, Inc., no endereço +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. + +Arquivo: + +i3geo/classesphp/mapa_controle.php + +Parametros: + +funcao - opção que será executada (veja abaixo a lista de Valores que esse parâmetro pode assumir). + +Retorno: + +O resultado da operação será retornado em um objeto CPAINT. + +A construção da string JSON é feita preferencialmente pelas funções nativas do PHP. +Para efeitos de compatibilidade, uma vez que até a versão 4.2 a string JSON era construida pelo CPAINT, +o objeto CPAINT ainda é definido, porém, a função cpjson verifica se as funções nativas do PHPO (json) +estão instaladas, se estiverem, utiliza-se a função nativa, se não, utiliza-se o CPAINT para gerar o JSON. + +Exemplo de chamada CPAINT (Ajax) do lado do cliente (javascript): + +var p = "classesphp/mapa_controle.php?funcao=crialente&resolucao=1.5&g_sid="+g_sid + +var cp = new cpaint() + +cp.set_response_type("JSON") + +cp.call(p,"lente",ajaxabrelente) + +Variáveis de Seção: + +dir_tmp - diretório, no servidor, temporário utilizado pelo I3Geo, exemplo: c:/ms4w/tmp/ms_tmp +locmapserv - localização, no servidor, do CGI, exemplo: /cgi-bin/mapserv.exe +locaplic - localização, no servidor, do I3Geo, exemplo: c:/ms4w/apache/htdocs/i3geo +R_path - localização, no servidor, do executável do pacote R, exemplo: c:/ms4w/apache/htdocs/i3geo/pacotes/r/win/bin/R.exe +imgurl - url das imagens geradas pelo mapa, exemplo: http://localhost/ms_tmp/imgTVHbdijFMk/ +tmpurl - url do diretório temporário, exemplo: http://localhost/ms_tmp/ +map_file - endereço, no servidor, do mapfile atual, exemplo: c:/ms4w/tmp/ms_tmp/TVHbdijFMk/TVHbdijFMk.map +mapext - extensão geográfica do mapa atual, exemplo: -76.5125927 -39.3925675209 -29.5851853 9.49014852081 +perfil - nome do perfil para controlar os temas que serão visíveis na lista de temas. +mapdir - localização, no servidor, do diretório com o mapfile temporário do mapa atual. +imgdir - localização, no servidor, das imagens temporárias do mapa atual. +debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL + contadorsalva - indica quantas vezes o mapa já foi salvo. Permite que uma aplicação verifique se o mapa foi alterado ou não. + */ +error_reporting(0); + +//sleep(5); + +// +//pega as variaveis passadas com get ou post +// +$tempo = microtime(1); + +include_once("sani_request.php"); +$_pg = array_merge($_GET,$_POST); +$interface = $_pg["interface"]; +$funcao = $_pg["funcao"]; +$g_sid = $_pg["g_sid"]; +$interfaceTemp = $interface; +// +//inicializa a sessao +//algumas funcoes sao utilizadas por outros aplicativos e por isso +//nao passam por essa critica +//TEMA2SLD e usado por datadownload.htm +//PEGAMAPAS e utilizado em varias funcoes +// +if ($funcao != "pegaTodosTemas" && $funcao != "download3" && $funcao != "listainterfaces" && $funcao != "pegalistadetemas" && $funcao != "pegalistadeSubgrupos" && $funcao != "procurartemasestrela" && $funcao != "pegalistadegrupos" && $funcao != "pegalistademenus" && $funcao != "criaMapa" && strtoupper($funcao) != "TEMA2SLD" && strtoupper($funcao) != "PEGAMAPAS"){ + session_name("i3GeoPHP"); + if (isset($g_sid) && $g_sid != ""){ + session_id($g_sid); + } + session_start(); + $statusFerramentas = $_SESSION["statusFerramentas"]; + $imgurl = $_SESSION["imgurl"]; + $tmpurl = $_SESSION["tmpurl"]; + $map_file = $_SESSION["map_file"]; + $mapext = $_SESSION["mapext"]; + $dir_tmp = $_SESSION["dir_tmp"] ; + $cachedir = $_SESSION["cachedir"]; + $emailInstituicao = $_SESSION["emailInstituicao"]; + $locmapserv = $_SESSION["locmapserv"]; + $locaplic = $_SESSION["locaplic"]; + $R_path = $_SESSION["R_path"]; + $mapext = $_SESSION["mapext"]; + $debug = $_SESSION["debug"]; + $ler_extensoes = $_SESSION["ler_extensoes"]; + $postgis_mapa = $_SESSION["postgis_mapa"]; + $perfil = $_SESSION["perfil"]; + $navegadoresLocais = $_SESSION["navegadoresLocais"]; + $utilizacgi = $_SESSION["utilizacgi"]; + $tituloInstituicao = $_SESSION["tituloInstituicao"]; + $expoeMapfile = $_SESSION["expoeMapfile"]; + $googleApiKey = $_SESSION["googleApiKey"]; + $mensagemInicia = $_SESSION["mensagemInicia"]; + $interfacePadrao = $_SESSION["interfacePadrao"]; + $interface = $_SESSION["interface"]; + $kmlurl = $_SESSION["kmlurl"]; + $mapdir = $_SESSION["mapdir"]; + $imgdir = $_SESSION["imgdir"]; + $contadorsalva = $_SESSION["contadorsalva"]; + $i3georendermode = $_SESSION["i3georendermode"]; + $saikuUrl = $_SESSION["saikuUrl"]; + //sao arrays + $postgis_mapa = $_SESSION["postgis_mapa"]; + $statusFerramentas = $_SESSION["statusFerramentas"]; + if(isset($_SESSION['fingerprint'])) { + $f = explode(",",$_SESSION['fingerprint']); + if($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())){ + include_once("funcoes_gerais.php"); + cpjson(". Tentativa de acesso nao permitida. Inicie um novo mapa."); + return; + } + } +} +else{ + $map_file = ""; +} +// +//isso é necessário pois a variável "interface" pode ser utilizada como parâmetro em algumas funções ajax +//nesses casos, é necessário recuperar o valor correto e não da sessão +// +if(isset($interfaceTemp) && $interfaceTemp != ""){ + $_SESSION["interface"] = $interfaceTemp; + $interface = $interfaceTemp; +} +error_reporting(0); +// +//teste de timeout +// +//for($i==0;$i<5000000000;++$i){} +// +//ativa o php mapscript e as extensões necessárias +//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"); +if(!function_exists("sobeAnno")){ + include_once("funcoes_gerais.php"); +} +if($funcao == "criaMapa"){ + session_name("i3GeoPHP"); + unset($GLOBALS); + session_destroy(); + $_COOKIE = array(); + // + //primeiro é necessário carregar o ms_configura.php para pegar a variável $locaplic + // + $d = ""; + include_once(dirname(__FILE__)."/../ms_configura.php"); + // + //é necessário mudar o diretório em função dos includes que são feitos pelo ms_criamapa.php + // + //chdir($locaplic); + $interfaceTemp = $interface; + $interface = "mashup"; + include_once(dirname(__FILE__)."/../ms_criamapa.php"); + $_SESSION["interface"] = $interfaceTemp; + $temp = $_SESSION["map_file"]; + $id = session_id(); + session_write_close(); + //ver funcoes_gerais.php + validaAcessoTemas($temp); + cpjson($id); + return; +} +if (!isset($map_file)) +{ + //nesse caso é necessário criar o diretório temporário e iniciar o mapa + //$cp->set_data(array("erro"=>"linkquebrado")); + //$cp->return_data(); + //cpjson(array("erro"=>"linkquebrado")); + ilegal(); + exit; +} +include_once("classe_vermultilayer.php"); +include_once("classe_estatistica.php"); +error_reporting(0); +// +//identifica qual a url do i3geo +// + +$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); +$protocolo = strtolower($protocolo[0]) . '://'.$_SERVER['HTTP_HOST'];//$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT']; +$urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); +// +//inserido na versão 4.6 +// +if(!isset($locaplic)){ + include_once(dirname(__FILE__)."/../ms_configura.php"); +} +// +//substitui a string de conexão +// + +if($funcao != "recuperamapa" && $funcao != "TEMA2SLD") +{ + if(!substituiCon($map_file,$postgis_mapa)) + { + cpjson("erro",$cp); + return; + } +} +// +//faz a busca da função que deve ser executada +// +$retorno = ""; //string que será retornada ao browser via JSON +switch (strtoupper($funcao)) +{ + /* + Section: Inicialização + + Inicia o mapa. + */ + /* + Valor: INICIA + + Inicia o mapa, pegando os parâmetros necessários para a montagem inicial. + + + */ + case "INICIA": + include_once("mapa_inicia.php"); + $kmlurl = $_pg["kmlurl"]; + $embedLegenda = $_pg["embedLegenda"]; + $w = $_pg["w"]; + $h = $_pg["h"]; + iniciaMapa(); + break; + /* + Valor: OPENLAYERS + + Prepara o mapa atual para funcionar na interface openlayers. + */ + case "OPENLAYERS": + $interface = "openlayers"; + include_once("mapa_inicia.php"); + iniciaMapa(); + break; + /* + Valor: GOOGLEMAPS + + Prepara o mapa atual para funcionar na interface googlemaps. + */ + case "GOOGLEMAPS": + $interface = "googlemaps"; + include_once("mapa_inicia.php"); + iniciaMapa(); + break; + /* + Valor: GOOGLEEARTH + + Prepara o mapa atual para funcionar na interface googleearth. + */ + case "GOOGLEEARTH": + $interface = "googleearth"; + include_once("mapa_inicia.php"); + iniciaMapa(); + break; + /* + Valor: CONVERTE2OPENLAYERS + + Prepara o mapa atual que estava usando outra interface + */ + case "CONVERTE2OPENLAYERS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->converteInterfacePara("openlayers"); + break; + /* + Valor: CONVERTE2GOOGLEMAPS + + Prepara o mapa atual que estava usando outra interface + */ + case "CONVERTE2GOOGLEMAPS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->converteInterfacePara("googlemaps"); + break; + /* + Section: Análise + + Análise de dados. + + + */ + /* + Valor: INCMAPAGEOMETRIAS + + Inclui geometrias, armazenadas no formato I3Geo, como um tema no mapa atual. + + O mapfile é alterado e salvo novamente com os novos layers. + + incmapageometrias> + */ + case "INCMAPAGEOMETRIAS": + include_once("classe_analise.php"); + $m = new Analise($map_file,""); + $retorno = $m->incmapageometrias($dir_tmp,$imgdir,$_pg["lista"]); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: FUNCOESGEOMETRIAS + + Processa geometrias, armazenadas no formato i3Geo, gerando uma nova geometria. + União, intersecção, etc. + + funcoesGeometrias> + */ + case "FUNCOESGEOMETRIAS": + include_once("classe_analise.php"); + $m = new Analise($map_file,""); + $retorno = $m->funcoesGeometrias($dir_tmp,$imgdir,$_pg["lista"],$_pg["operacao"]); + if($_pg["recalcareaper"] == "true"){ + $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"area"); + $m->calculaGeometrias($dir_tmp,$imgdir,basename($retorno),"perimetro"); + } + break; + /* + Valor: FUNCOESGEOMETRIASWKT + + Processa geometrias recebidas como WKT gerando uma nova geometria. + União, intersecção, etc. + + A lista de WKTs deve usar o separador | + + funcoesGeometriasWKT> + */ + case "FUNCOESGEOMETRIASWKT": + include_once("classe_analise.php"); + $m = new Analise($map_file,""); + $retorno = $m->aplicaFuncaoListaWKT(explode("|",$_pg["geometrias"]),$_pg["operacao"],$dir_tmp,$imgdir); + break; + /* + Valor: CALCULAGEOMETRIAS + + Processa geometrias, armazenadas no formato I3Geo, gerando cálculos. + Área, perímetro, etc. + + calculaGeometrias> + */ + case "CALCULAGEOMETRIAS": + include_once("classe_analise.php"); + $m = new Analise($map_file,""); + $retorno = $m->calculaGeometrias($dir_tmp,$imgdir,$_pg["lista"],$_pg["operacao"]); + break; + /* + Valor: LISTAGEOMETRIAS + + Gera a lista de geometrias disponíveis para o mapa atual. + + As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. + + listaGeometrias> + */ + case "LISTAGEOMETRIAS": + include_once("classe_temas.php"); + if(!isset($_pg["tema"])){ + $tema = ""; + } + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->listaGeometrias($dir_tmp,$imgdir); + break; + /* + Valor: CAPTURAGEOMETRIAS + + Gera um arquivo de geometrias, no formato I3Geo, para um tema, considerando os elementos selecionados. + + As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. + + capturaGeometrias> + */ + case "CAPTURAGEOMETRIAS": + include_once("classe_temas.php"); + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->capturaGeometrias($dir_tmp,$imgdir,$_pg["nome"]); + break; + /* + Section: Mapa + + + */ + /* + Valor: PEGAMENSAGENS + + Pega as mensagens do metadata 'mensagem'. + + pegaMensagens> + */ + case "PEGAMENSAGENS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->pegaMensagens(); + break; + /* + Valor: REINICIAMAPA + + Reinicia um mapa restaurando a c�pia de segurança. + */ + case "REINICIAMAPA": + $qyfile = str_replace(".map",".qy",$map_file); + if (file_exists($qyfile)) + { + unlink ($qyfile); + } + unlink($map_file); + copy(str_replace(".map","reinc.map",$map_file),$map_file); + $retorno = "ok"; + $_SESSION["contadorsalva"]++; + break; + /* + Valor: RECUPERAMAPA + + Recupera o mapfile de segurança. + */ + case "RECUPERAMAPA": + $qyfile = str_replace(".map",".qy",$map_file); + if (file_exists($qyfile)) + { + unlink ($qyfile); + } + unlink($map_file); + $nmf = str_replace(".map","seguranca.map",$map_file); + if(file_exists($nmf)) + { + copy($nmf,$map_file); + } + else + { + $nmf = str_replace(".map","reinc.map",$map_file); + copy($nmf,$map_file); + } + $retorno = "ok"; + $_SESSION["contadorsalva"]++; + break; + /* + Valor: ATIVALOGO + + Ativa ou desativa a marca de logo no mapa. + + ativalogo> + */ + case "ATIVALOGO": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $m->ativalogo(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: ATIVALEGENDA + + Ativa ou desativa a legenda inserida no mapa. + + ativalegenda> + */ + case "ATIVALEGENDA": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $m->ativalegenda(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: CONVERTEWS + + Converte o mapa atual em um wms. + + converteWS> + */ + case "CONVERTEWS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + if(!isset($_pg["h"])){ + $_pg["h"] = ""; + } + $retorno = $m->converteWS($locaplic,$_pg["h"]); + break; + /* + Valor: QUERYMAPCOR + + Altera a cor de seleção. + + corQM> + */ + case "QUERYMAPCOR": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $m->corQM($_pg["cor"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: CORPO + + Redesenha o mapa. + */ + case "CORPO": + redesenhaMapa(); + break; + /* + Valor: CORPOENTORNO + + Desenha as imagens do entorno do mapa. + + redesenhaEntorno> + */ + case "CORPOENTORNO": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->redesenhaEntorno(); + break; + /* + Valor: ADICIONATEMASHP + + Adiciona um tema baseado em um arquivo shape file. + + adicionaTemaSHP> + */ + case "ADICIONATEMASHP": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $retorno = $m->adicionaTemaSHP($_pg["arq"]); + if ($retorno != "erro") + { + $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); + } + else + { + $retorno = "erro.Nenhum dado espacializado foi encontrado."; + } + break; + /* + Valor: ADICIONATEMAIMG + + Adiciona um tema baseado em um arquivo de imagem. + + adicionaTemaIMG> + */ + case "ADICIONATEMAIMG": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $retorno = $m->adicionaTemaIMG($_pg["arq"]); + if ($retorno != "erro") + { + $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); + } + else + { + $retorno = "erro.Nenhum dado espacializado foi encontrado."; + } + break; + /* + Valor: LISTATEMAS + + Lista os temas existentes em um mapa. + + listaTemas> + */ + case "LISTATEMAS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->listaTemas($_pg["tipo"]); + $retorno = array_reverse($retorno); + break; + /* + Valor: LISTATEMASLOCAIS + + Lista os temas existentes no diretório temporário do mapa atual. + + listaTemasLocais> + */ + case "LISTATEMASLOCAIS": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->listaTemasLocais(); + break; + /* + Valor: LISTATEMASTIPO + + Lista os temas existentes por tipo. + + listaTemasTipo> + */ + case "LISTATEMASTIPO": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + if(!isset($_pg["selecao"]) || $_pg["selecao"] == ""){ + $_pg["selecao"] = "nao"; + } + $retorno = $m->listaTemasTipo($_pg["tipo"],$_pg["selecao"]); + break; + /* + Valor: LISTATEMASCOMSEL + + Lista os temas que possuem seleção. + + listaTemasComSel> + */ + case "LISTATEMASCOMSEL": + include_once("classe_mapa.php"); + $m = new Mapa($map_file); + $retorno = $m->listaTemasComSel(); + break; + /* + Valor: LIGATEMAS + + Liga e desliga temas no mapa atual. + + ligaDesligaTemas> + */ + case "LIGATEMAS": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file,$locaplic); + $retorno = $m->ligaDesligaTemas($_pg["ligar"],$_pg["desligar"],$_pg["adicionar"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: LIGATEMASBEACON + + Liga e desliga temas no mapa atual partindo de uma chamada via tag IMG + + Retorna um c�digo de erro para indicar o fim do retorno. + + Veja no livro "Javascript de Alto Desempenho", de Nicholas C. Zakas pg. 162 + + ligaDesligaTemas> + */ + case "LIGATEMASBEACON": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file,$locaplic); + $retorno = $m->ligaDesligaTemas($_pg["ligar"],$_pg["desligar"],$_pg["adicionar"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + ob_start(); + header("HTTP/1.1 204 Not Content"); + header("Status: 204 Not Content"); + ob_end_flush(); + break; + /* + Valor: ADTEMA + + Adiciona um novo tema ao mapa. + + adicionaTema> + */ + case "ADTEMA": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $salvar = $m->adicionaTema($_pg["temas"],$locaplic); + if($salvar){ + $m->salva(); + $_SESSION["contadorsalva"]++; + } + validaAcessoTemas($map_file); + $retorno = "ok"; + /* + if($interface != "openlayers"){ + $teste = testaMapa($map_file,$postgis_mapa); + if ($teste == "ok") + {$retorno = "ok";$_SESSION["contadorsalva"]++;} + else + {$retorno = array("erro"=>"A camada nao pode ser adicionada. ".$teste);} + } + */ + break; + /* + Valor: EXCLUITEMA + + Exclui um tema do mapa. + + excluiTemas> + */ + case "EXCLUITEMA": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $m->excluiTemas($_pg["temas"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: ADICIONATEMAWMS + + Acrescenta um novo tema em um arquivo map file tendo como fonte um WMS. + + adicionatemawms> + */ + case "ADICIONATEMAWMS": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $m->adicionatemawms($_pg["tema"],$_pg["servico"],$_pg["nome"],$_pg["proj"],$_pg["formato"],$locaplic,$_pg["tipo"],$_pg["versao"],$_pg["nomecamada"],$dir_tmp,$imgdir,$imgurl,$_pg["tiporep"],$_pg["suportasld"],$_pg["formatosinfo"],$_pg["time"],$_pg["tile"]); + $teste = "ok";//testaMapa($map_file,$postgis_mapa); + if ($teste == "ok") + { + $retorno = "ok";$_SESSION["contadorsalva"]++; + } + else + {$retorno = array("erro"=>"A camada nao pode ser adicionada. ".$teste); + } + break; + /* + Valor: REFERENCIA + + Gera a imagem do mapa de referência. + */ + case "REFERENCIA": + $objMapa = ms_newMapObj($map_file); + $nomeImagem = nomeRandomico(); + $ext = $_pg["ext"]; + if(!isset($ext)) + { + $ext = ""; + } + $retorno = retornaReferencia($ext); + break; + /* + Valor: REFERENCIADINAMICA + + Gera a imagem do mapa de referência de forma dinâmica, variando com a escala do mapa atual. + */ + case "REFERENCIADINAMICA": + //$objMapa = ms_newMapObj($map_file); + $nomeImagem = nomeRandomico(); + $ext = $_pg["ext"]; + if(!isset($ext)) + { + $ext = ""; + } + $retorno = retornaReferenciaDinamica($ext,$_pg["w"],$_pg["h"]); + break; + /* + Valor: MUDAOUTPUTFORMAT + + Muda o OUTPUTFORMAT. + + mudaoutputformat> + */ + case "MUDAOUTPUTFORMAT": + include_once("classe_mapa.php"); + copiaSeguranca($map_file); + $m = new Mapa($map_file); + $res = $m->mudaoutputformat($_pg["tipo"]); + if($res != 1) + { + $m->salva();$_SESSION["contadorsalva"]++; + } + else + {$res = "erro"; + } + $retorno = $res; + break; + /* + Section: Temas + + Processa os layers do mapa. + + + */ + /* + Valor: PEGANOMELAYER + + Obtém o nome de um layer e de seu arquivo mapfile original. + + peganomelayer> + */ + case "PEGANOMELAYER": + include_once("classe_temas.php"); + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->peganomelayer(); + break; + /* + Valor: PEGAMETADATA + + Obtém os metadados de um tema + + Tema pode ser um mapfile existente em i3geo/temas + + pegametadata> + */ + case "PEGAMETADATA": + include_once("classe_temas.php"); + //pode pegar os metadata de um mapfile existente em i3geo/temas + $tema = $_pg["tema"]; + if(file_exists(dirname(__FILE__)."/../temas/".$tema.".map")){ + $map_file = dirname(__FILE__)."/../temas/".$tema.".map"; + } + $m = new Temas($map_file,$tema); + $retorno = $m->pegametadata(); + break; + /* + Valor: PEGADATA + + Obtém o valor definido no elemento DATA de um LAYER. + + pegadata> + */ + case "PEGADATA": + //verifica login + session_write_close(); + session_name("i3GeoLogin"); + if($_SESSION["usuario"] == "" || ($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"])){ + $retorno = "login"; + } + else{ + include_once("classe_temas.php"); + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->pegadata(); + } + break; + /* + Valor: ALTERADATA + + Altera o valor definido no elemento DATA de um LAYER. + + alteradata> + */ + case "ALTERADATA": + //verifica login + session_write_close(); + session_name("i3GeoLogin"); + if($_SESSION["usuario"] == "" || ($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"])){ + $retorno = "login"; + } + else{ + include_once("classe_temas.php"); + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->alteradata($_pg["novodata"],$_pg["removemeta"]); + if($retorno != ""){ + $m->salva(); + } + $_SESSION["contadorsalva"]++; + } + break; + /* + Valor: REMOVERGEOMETRIAS + + Remove geometrias do diretório temporário. + + As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. + + removerGeometrias> + */ + case "REMOVERGEOMETRIAS": + include_once("classe_temas.php"); + if(!isset($tema)){ + $tema = ""; + } + $m = new Temas($map_file,$_pg["tema"]); + $retorno = $m->removerGeometrias($dir_tmp,$imgdir,$_pg["lista"]); + break; + /* + Valor: ALTERAREPRESENTACAO + + Altera o tipo de representação cartográfica do tema. + + alteraRepresentacao> + */ + case "ALTERAREPRESENTACAO": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->alteraRepresentacao(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: GERADESTAQUE + + Gera uma imagem que será utilizada para destacar um determinado tema. + + geraDestaque> + */ + case "GERADESTAQUE": + include_once("classe_temas.php"); + $m = new Temas($map_file,$_pg["tema"],"",$_pg["ext"]); + $retorno = $m->geraDestaque(); + break; + /* + Valor: DOWNLOAD (depreciado, utilize DOWNLOAD2 + */ + case "DOWNLOAD": + $retorno = downloadTema($map_file,$_pg["tema"],$locaplic,$dir_tmp,$postgis_mapa); + break; + /* + Valor: DOWNLOAD2 + + Gera os arquivos para download de um tema. + */ + case "DOWNLOAD2": + $retorno = downloadTema2($map_file,$_pg["tema"],$locaplic,$dir_tmp,$postgis_mapa); + break; + /* + Valor: DOWNLOAD3 + + Gera os arquivos para download de um tema forçando um mapfile vazio. + */ + case "DOWNLOAD3": + //caso o tema tenha de vir do sistema de metadados estatisticos + + //pode ser uma regiao cadastrada no sistema de metadados + $codigo_tipo_regiao = $_pg["codigo_tipo_regiao"]; + if(isset($codigo_tipo_regiao) && $codigo_tipo_regiao != ""){ + include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); + $m = new Metaestat(); + $m->nomecache = "ogcmetaestatreg".$codigo_tipo_regiao; + $tema = $m->mapfileTipoRegiao($codigo_tipo_regiao); + $tema = str_replace(".map","",$tema["mapfile"]); + } + //pode ser uma medida de uma variavel + $id_medida_variavel = $_pg["id_medida_variavel"]; + if(isset($id_medida_variavel) && $id_medida_variavel != ""){ + include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); + $m = new Metaestat(); + $m->nomecache = "ogcmetaestat".$id_medida_variavel; + $tema = $m->mapfileMedidaVariavel($id_medida_variavel,"",1,"","","","","","",true); + $tema = str_replace(".map","",$tema["mapfile"]); + } + $retorno = downloadTema2("",$tema,$locaplic,$dir_tmp,$postgis_mapa); + break; + /* + function: INSEREFEATURE + + Insere elemento gráfico em um tema. + + insereFeature> + */ + case "INSEREFEATURE": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,""); + if(!isset($_pg["marca"])){ + $_pg["marca"] = ""; + } + if(!isset($_pg["wkt"])){ + $_pg["wkt"] = false; + } + if(!isset($_pg["nomeTema"])){ + $_pg["nomeTema"] = ""; + } + $m->insereFeature($_pg["marca"],$_pg["tipo"],$_pg["xy"],$_pg["texto"],$_pg["position"],$_pg["partials"],$_pg["offsetx"],$_pg["offsety"],$_pg["minfeaturesize"],$_pg["mindistance"],$_pg["force"],$_pg["shadowcolor"],$_pg["shadowsizex"],$_pg["shadowsizey"],$_pg["outlinecolor"],$_pg["cor"],$_pg["sombray"],$_pg["sombrax"],$_pg["sombra"],$_pg["fundo"],$_pg["angulo"],$_pg["tamanho"],$_pg["fonte"],$_pg["wrap"],$_pg["wkt"],$_pg["nomeTema"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: SOBETEMA + + Sobe um tema na ordem de desenho. + + sobeTema> + */ + case "SOBETEMA": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->sobeTema(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: DESCETEMA + + Desce um tema na ordem de desenho. + + desceTema> + */ + case "DESCETEMA": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->desceTema(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: FONTETEMA + + Busca o link para a fonte do tema + + fonteTema> + */ + case "FONTETEMA": + include_once("classe_temas.php"); + $m = new Temas($map_file,null,$locaplic); + $retorno = $m->fonteTema($_pg["tema"]); + break; + /* + Valor: REORDENATEMAS + + Reordena os temas baseados na localização de um segundo tema no mapa. + + reordenatemas> + */ + case "REORDENATEMAS": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file); + $m->reordenatemas($_pg["lista"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: ZOOMTEMA + + Muda a extensão geográfica do mapa de acordo com a abrangência de um tema. + + zoomTema> + */ + case "ZOOMTEMA": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->zoomTema(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: ZOOMSEL + + Muda a extensão geográfica do mapa de acordo com a abrangência dos elementos selecionados de um tema. + + zoomSel> + */ + case "ZOOMSEL": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->zoomSel(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: APLICAPROCESSOS + + Aplica processos em um tema do tipo imagem + + aplicaProcessos> + */ + case "APLICAPROCESSOS": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->aplicaProcessos($_pg["lista"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: INVERTESTATUSLEGENDA + + Inverte o metadata CLASSE + + inverteStatusLegenda> + */ + case "INVERTESTATUSLEGENDA": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->inverteStatusLegenda(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: MUDATRANSP + + Altera a transparência de um tema + + mudaTransparencia> + */ + case "MUDATRANSP": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->mudaTransparencia($_pg["valor"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: COPIATEMA + + Cria uma copia de um tema + + copia> + */ + case "COPIATEMA": + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->copiaTema(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: MUDANOME + + Altera o nome do tema + + mudaNome> + */ + case "MUDANOME": + include_once("classe_temas.php"); + $valor = mb_convert_encoding($_pg["valor"],"ISO-8859-1",mb_detect_encoding($valor)); + copiaSeguranca($map_file); + $m = new Temas($map_file,$_pg["tema"]); + $m->mudaNome($valor); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Section: Classes + + Edita as características das classes de um tema. + + + */ + /* + Valor: ALTERACLASSE + + Altera uma classe de um tema, aplicando uma nova classificação ou modificando parâmetros de uma ou mais classes. + */ + case "ALTERACLASSE": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"],"",$_pg["ext"]); + $opcao = $_pg["opcao"]; + $cores = $_pg["cores"]; + $idclasse = $_pg["idclasse"]; + if ($opcao == "aplicacoresrgb"){ + $cores = str_replace("rgb","",$cores); + $cores = str_replace(")","",$cores); + $cores = str_replace("(","",$cores); + $retorno = $m->aplicacoresrgb(explode("|",$cores)); + } + if ($opcao == "sobeclasse"){ + $retorno = $m->sobeclasse($idclasse); + } + if ($opcao == "desceclasse"){ + $retorno = $m->desceclasse($idclasse); + } + if ($opcao == "alteracor"){ + $retorno = $m->alteracor($idclasse,$_pg["cor"]); + } + if ($opcao == "adicionaopacidade"){ + $retorno = $m->adicionaopacidade(); + } + if ($opcao == "alterageometria"){ + $retorno = $m->alterageometria($_pg["tipo"]); + } + if ($opcao == "adicionaclasse"){ + $retorno = $m->adicionaclasse(); + } + if ($opcao == "valorunico"){ + if(empty($_pg["itemNome"])){ + $_pg["itemNome"] = ""; + } + $retorno = $m->valorunico($_pg["item"],$_pg["ignorar"],$_pg["itemNome"]); + } + if ($opcao == "intervalosiguais"){ + $retorno = $m->intervalosiguais($_pg["item"],$_pg["nclasses"],$_pg["ignorar"]); + } + if ($opcao == "quantil"){ + $retorno = $m->quantil($_pg["item"],$_pg["nclasses"],$_pg["ignorar"]); + } + if ($opcao == "quebrasnaturais"){ + $retorno = $m->quebrasnaturais($_pg["item"],$_pg["nclasses"],$_pg["ignorar"]); + } + if ($opcao == "metade"){ + $retorno = $m->metade($_pg["item"],$_pg["itemid"],$_pg["ignorar"]); + } + if ($opcao == "media"){ + $retorno = $m->classemedia($_pg["item"],$_pg["ignorar"]); + } + if ($opcao == "quartis"){ + if(!isset($_pg["tipoLegenda"])) + { + $_pg["tipoLegenda"] = ""; + } + $retorno = $m->quartis($_pg["item"],$_pg["ignorar"],$_pg["tipoLegenda"]); + } + if ($opcao == "alteraclasses"){ + //esta operação é chamada com POST via cpaint + //error_reporting(0); + alteraclassesPost($_pg["ids"],$_pg["nomes"],$_pg["exps"],$_pg["base64"],$_pg["minScales"],$_pg["maxScales"]); + restauraCon($map_file,$postgis_mapa); + cpjson(""); + } + if ($opcao == "simbolounico") + { + $retorno = $m->simbolounico(); + } + $salvo = $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: INVERTECORESCLASSES + + Inverte a ordem das cores das classes de um tema. + + inverteCoresClasses> + */ + case "INVERTECORESCLASSES": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"]); + $m->inverteCoresClasses(); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: CALCULATAMANHOCLASSES + + Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo. + + calculaTamanhoClasses> + */ + case "CALCULATAMANHOCLASSES": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"]); + $retorno = $m->calculaTamanhoClasses(); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: ORDENACLASSES + + Ordena as classes pelo nome + + ordenaClasses> + */ + case "ORDENACLASSES": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"]); + $retorno = $m->ordenaClasses(); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: ALTERACORESCLASSES + + Altera as cores das classes de um tema conforme uma cor inicial e uma final. + + alteraCoresClasses> + */ + case "ALTERACORESCLASSES": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"]); + $retorno = $m->alteraCoresClasses($_pg["cori"],$_pg["corf"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: INVERTESTATUSCLASSE + + Altera o status de desenho de uma classe, tornando-a vi�sivel ou não. + + statusClasse> + */ + case "INVERTESTATUSCLASSE": + include_once("classe_alteraclasse.php"); + copiaSeguranca($map_file); + $m = new Alteraclasse($map_file,$_pg["tema"]); + $retorno = $m->statusClasse($_pg["classe"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: VERPALETA + + Gera cores tendo como base uma cor inicial e uma cor final. + + + */ + case "VERPALETA": + include_once("class.palette.php"); + $cori = $_pg["cori"]; + $corf = $_pg["corf"]; + $numclasses = $_pg["numclasses"]; + $cori = RGB2hex(explode(",",$cori)); + $corf = RGB2hex(explode(",",$corf)); + $myPalette=new palette(array($cori,$corf),($numclasses + 1)); + foreach ($myPalette->colorRGB as $cores) + { + $res[] = $cores[0].",".$cores[1].",".$cores[2]; + } + $retorno = implode("*",$res); + break; + + /* + Section: Edição + + Cria arquivos shapefile ou altera suas características. + + + */ + /* + Valor: SPHPT2SHP + + Converte os elementos de um tema em um arquivo shp. + + Acrescenta um novo tema ao mapa. + + shpPT2shp> + */ + case "SPHPT2SHP": + include_once("classe_shp.php"); + $m = new SHP($map_file,$_pg["tema"],$locaplic,$_pg["ext"]); + $retorno = $m->shpPT2shp($locaplic,$_pg["para"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: LISTAPONTOSSHAPE + + Lista os pontos dos elementos de um arquivo shp. + + listaPontosShape> + */ + case "LISTAPONTOSSHAPE": + include_once("classe_shp.php"); + $m = new SHP($map_file,$_pg["tema"]); + $retorno = $m->listaPontosShape(); + break; + /* + Valor: CRIASHPVAZIO + + Cria um shapefile vazio e acrescenta como tema ao mapa. + + criaSHPvazio> + */ + case "CRIASHPVAZIO": + include_once("classe_shp.php"); + $m = new SHP($map_file); + if(!isset($_pg["tituloTema"])) + { + $_pg["tituloTema"] = ""; + } + $retorno = $m->criaSHPvazio($_pg["tituloTema"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: PEGAXYULTIMOPONTO + + Insere um ponto em um shape file tendo como referência o último ponto existente no tema, a direção e a distância. + + ultimoXY> + */ + case "PEGAXYULTIMOPONTO": + include_once("classe_shp.php"); + $m = new SHP($map_file,$_pg["tema"]); + $retorno = $m->ultimoXY(); + break; + + /* + Valor: INSERESHPGRAFICO + + Cria um gráfico e insere no mapa em um local clicado no mapa. + + Os valores para o gráfico são obtidos do tema indicado na classe. Para cada novo gráfico é criado um tema no mapa. + + insereSHPgrafico> + */ + case "INSERESHPGRAFICO": + include_once("classe_shp.php"); + copiaSeguranca($map_file); + $m = new SHP($map_file,$_pg["tema"],$locaplic); + $retorno = $m->insereSHPgrafico($_pg["x"],$_pg["y"],$_pg["itens"],$_pg["width"],$_pg["inclinacao"],$_pg["shadow_height"],$_pg["ext"]); + $_SESSION["contadorsalva"]++; + break; + /* + Valor: MOSTRAWKT + + Gera string wkt de um conjunto de pontos. + */ + case "MOSTRAWKT": + $res = xy2wkt($_pg["xy"]); + $retorno = array($res["ponto"],$res["linha"],$res["poligono"]); + break; + /* + Valor: DADOSLINHADOTEMPO + + Pega os dados de um tema para geração do gráfico de linha do tempo. + + + */ + case "DADOSLINHADOTEMPO": + include_once("graficos.php"); + if(!isset($_pg["ext"])) + { + $_pg["ext"] = ""; + } + $retorno = dadosLinhaDoTempo($map_file,$_pg["tema"],$_pg["ext"]); + break; + /* + Valor: DADOSPERFILRELEVO + + Pega os dados para elaboração de gráfico de perfil do relevo + + + */ + case "DADOSPERFILRELEVO": + include_once("graficos.php"); + if(!isset($_pg["ext"])) + { + $_pg["ext"] = ""; + } + $retorno = dadosPerfilRelevo($_pg["pontos"],$_pg["opcao"],$_pg["amostragem"],$_pg["item"],$map_file); + break; + /* + Section: Menu de temas + + Obtém a lista de temas, grupos e sub-grupos. + + + */ + /* + Valor: PEGALISTADEMENUS + + Pega a lista de menus para incluir na guia adiciona. + + pegaListaDeMenus> + */ + case "PEGALISTADEMENUS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + $filtraOgc = $_pg["filtraOgc"]; + $filtraDown = $_pg["filtraDown"]; + if(!isset($editores)){ + $editores = ""; + } + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); + $retorno = $m->pegaListaDeMenus($filtraOgc,$filtraDown); + break; + /* + Valor: PEGALISTADEGRUPOS + + Pega a lista de grupos do menu. + + pegaListaDeGrupos> + */ + case "PEGALISTADEGRUPOS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + $filtro = $_pg["filtro"]; + $idmenu = $_pg["idmenu"]; + $listasistemas = $_pg["listasistemas"]; + $listasgrupos = $_pg["listasgrupos"]; + $ordenaNome = $_pg["ordenaNome"]; + $filtraOgc = $_pg["filtraOgc"]; + $filtraDown = $_pg["filtraDown"]; + + if(!isset($urli3geo)){ + $urli3geo = ""; + } + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma,$filtro); + if(!isset($idmenu)){ + $idmenu=""; + } + if(!isset($listasistemas)){ + $listasistemas="nao"; + } + if(!isset($listasgrupos)){ + $listasgrupos="nao"; + } + if(!isset($ordenaNome)){ + $ordenaNome = "nao"; + } + if(!isset($filtraOgc)){ + $filtraOgc = "nao"; + } + if(!isset($filtraDown)){ + $filtraDown = "nao"; + } + $retorno = array( + "idmenu"=>$idmenu, + "grupos"=>$m->pegaListaDeGrupos($idmenu,$listasistemas,$listasgrupos,$ordenaNome,$filtraOgc,$filtraDown) + ); + break; + /* + Valor: PEGASISTEMASIDENTIFICACAO + + Pega a lista de sistemas especiais de identificação de elementos no mapa + + pegaSistemasI> + */ + case "PEGASISTEMASIDENTIFICACAO": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,"",$editores,$idioma); + $retorno = $m->pegaSistemasI(); + break; + /* + Valor: PEGASISTEMAS + + Pega a lista de sistemas. + + pegaSistemas> + */ + case "PEGASISTEMAS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,"",$editores,$idioma); + $retorno = $m->pegaSistemas(); + break; + /* + Valor: PEGALISTADESUBGRUPOS + + Pega a lista de subgrupos de um grupo do menu. + + pegaListaDeSubGrupos> + */ + case "PEGALISTADESUBGRUPOS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + $filtro = $_pg["filtro"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma,$filtro); + if(!isset($idmenu)){ + $idmenu = ""; + } + $retorno = $m->pegaListaDeSubGrupos($grupo,$idmenu); + break; + /* + Valor: PEGALISTADETEMAS + + Pega a lista de temas do menu. + + pegaListaDeTemas> + */ + case "PEGALISTADETEMAS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); + if(!isset($idmenu)){ + $idmenu = ""; + } + $retorno = array("temas"=>$m->pegaListaDeTemas($grupo,$subgrupo,$idmenu)); + break; + /* + Valor: PEGATODOSTEMAS + + Pega a lista de todos os temas que nao possuem restricoes de acesso + */ + case "PEGATODOSTEMAS": + include("../admin/php/classe_arvore.php"); + $idioma = $_pg["idioma"]; + + $arvore = new Arvore($locaplic,$idioma); + $resultado = $arvore->pegaTodosTemas(); + $retorno = array("temas"=>$resultado); + break; + /* + Valor: PROCURARTEMAS + + Procura um tema no menu considerando apenas os existentes em subgruppos. + + procurartemas> + */ + case "PROCURARTEMAS": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); + $retorno = $m->procurartemas($procurar); + break; + /* + Valor: PROCURARTEMAS2 + + Procura um tema no menu considerando todos os níveis. + + procurartemas2> + */ + case "PROCURARTEMAS2": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); + $retorno = $m->procurartemas2($procurar); + break; + /* + Valor: PROCURARTEMASESTRELA + + Procura um tema com um certo número de estrelas. + + procurartemasestrela> + */ + case "PROCURARTEMASESTRELA": + include_once("classe_menutemas.php"); + $editores = $_pg["editores"]; + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); + $retorno = $m->procurartemasestrela($nivel,$fatorestrela); + break; + /* + Valor: PEGAMAPAS + + Pega a lista de links para outros mapas. + + Utilizado no preenchimento da guia mapas + + pegaListaDeMapas> + */ + case "PEGAMAPAS": + include_once("classe_menutemas.php"); + $perfil = $_pg["perfil"]; + $idioma = $_pg["idioma"]; + + $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$idioma); + $retorno = $m->pegaListaDeMapas($locmapas); + break; + /* + Section: Webservices + + Processa serviços OGC. + + + */ + /* + Valor: GEORSSCANAIS + + Lista os canais de um georss. + + + */ + case "GEORSSCANAIS": + $retorno = georssCanais($_pg["servico"],$map_file,$dir_tmp,$locaplic); + break; + /* + Valor: GETCAPABILITIES + + Chama a função getcapabilities e retorna o resultado. + + + */ + case "GETCAPABILITIES": + include_once("wmswfs.php"); + $retorno = getcapabilities(); + restauraCon($map_file,$postgis_mapa); + break; + /* + Valor: GETCAPABILITIES2 + + Chama a função getcapabilities e retorna o resultado formatado (WMS). + + + */ + case "GETCAPABILITIES2": + include_once("wmswfs.php"); + $retorno = getcapabilities2(); + restauraCon($map_file,$postgis_mapa); + break; + /* + Valor: GETCAPABILITIES3 + + Chama a função getcapabilities e retorna o resultado formatado (WFS). + + + */ + case "GETCAPABILITIES3": + include_once("wmswfs.php"); + $retorno = getcapabilities3(); + restauraCon($map_file,$postgis_mapa); + break; + /* + Valor: TEMASWMS + + Retorna a lista de camadas de um WMS formatado em HTML. + + + */ + case "TEMASWMS": + include_once("wmswfs.php"); + restauraCon($map_file,$postgis_mapa); + $retorno = temaswms(); + break; + /* + Valor: LISTALAYERSWMS + + Retorna a lista de layers de um WMS. + + + */ + case "LISTALAYERSWMS": + include_once("wmswfs.php"); + $retorno = listaLayersWMS(); + break; + /* + Section: Atributos + + Processa os atributos da tabela associada ao tema. + + + */ + /* + Valor: BUSCARAPIDA + + Acessa dados de um serviço de geonames ou busca dados nos temas existentes no mapa. + + A pesquisa em temas é feita apenas quando existir o metadata itembuscarapida + + + */ + case "BUSCARAPIDA": + $servico = $_pg["servico"]; + $palavra = $_pg["palavra"]; + if($servico != "temas") + { + $retorno = buscaRapida($servico,$palavra); + } + else{ + include_once("classe_mapa.php"); + $m = New Mapa($map_file); + $lista = $m->listaTemasBuscaRapida(); + if($lista != ""){ + include_once("classe_atributos.php"); + $m = new Atributos($map_file); + $dados = $m->buscaRegistros($palavra,$lista,"qualquer","mapa"); + foreach($dados as $tema){ + $rs = $tema["resultado"]; + foreach($rs as $r){ + $retorno[] = array("box"=>$r["box"],"valor"=>$r["valores"][0]["valor"]); + } + } + } + else + {$retorno = "erro"; + } + } + break; /* - Valor: PEGAMETADATA + Valor: LISTAITENS - Obtém os metadados de um tema - - Tema pode ser um mapfile existente em i3geo/temas + Lista os itens de um tema. - pegametadata> + listaItens> */ - case "PEGAMETADATA": - include_once("classe_temas.php"); - //pode pegar os metadata de um mapfile existente em i3geo/temas - if(file_exists(dirname(__FILE__)."/../temas/".$tema.".map")){ - $map_file = dirname(__FILE__)."/../temas/".$tema.".map"; - } - $m = new Temas($map_file,$tema); - $retorno = $m->pegametadata(); - break; - /* - Valor: PEGADATA - - Obtém o valor definido no elemento DATA de um LAYER. - - pegadata> - */ - case "PEGADATA": - //verifica login - session_write_close(); - session_name("i3GeoLogin"); - if($_SESSION["usuario"] == "" || ($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"])){ - $retorno = "login"; - } - else{ - include_once("classe_temas.php"); - $m = new Temas($map_file,$tema); - $retorno = $m->pegadata(); - } - break; - /* - Valor: ALTERADATA - - Altera o valor definido no elemento DATA de um LAYER. - - alteradata> - */ - case "ALTERADATA": - //verifica login - session_write_close(); - session_name("i3GeoLogin"); - if($_SESSION["usuario"] == "" || ($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"])){ - $retorno = "login"; - } - else{ - include_once("classe_temas.php"); - $m = new Temas($map_file,$tema); - $retorno = $m->alteradata($novodata,$removemeta); - if($retorno != ""){ - $m->salva(); - } - $_SESSION["contadorsalva"]++; - } - break; - /* - Valor: REMOVERGEOMETRIAS - - Remove geometrias do diretório temporário. - - As geometrias são armazenadas no diretório temporário do usuário, utilizando um formato pr�prio do I3Geo. - - removerGeometrias> - */ - case "REMOVERGEOMETRIAS": - include_once("classe_temas.php"); - if(!isset($tema)){ - $tema = ""; - } - $m = new Temas($map_file,$tema); - $retorno = $m->removerGeometrias($dir_tmp,$imgdir,$lista); - break; - /* - Valor: ALTERAREPRESENTACAO - - Altera o tipo de representação cartográfica do tema. - - alteraRepresentacao> - */ - case "ALTERAREPRESENTACAO": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->alteraRepresentacao(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: GERADESTAQUE - - Gera uma imagem que será utilizada para destacar um determinado tema. - - geraDestaque> - */ - case "GERADESTAQUE": - include_once("classe_temas.php"); - $m = new Temas($map_file,$tema,"",$ext); - $retorno = $m->geraDestaque(); - break; - /* - Valor: DOWNLOAD (depreciado, utilize DOWNLOAD2 - */ - case "DOWNLOAD": - $retorno = downloadTema($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa); - break; - /* - Valor: DOWNLOAD2 - - Gera os arquivos para download de um tema. - */ - case "DOWNLOAD2": - $retorno = downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa); - break; - /* - Valor: DOWNLOAD3 - - Gera os arquivos para download de um tema forçando um mapfile vazio. - */ - case "DOWNLOAD3": - //caso o tema tenha de vir do sistema de metadados estatisticos - - //pode ser uma regiao cadastrada no sistema de metadados - if(isset($codigo_tipo_regiao) && $codigo_tipo_regiao != ""){ - include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); - $m = new Metaestat(); - $m->nomecache = "ogcmetaestatreg".$codigo_tipo_regiao; - $tema = $m->mapfileTipoRegiao($codigo_tipo_regiao); - $tema = str_replace(".map","",$tema["mapfile"]); - } - //pode ser uma medida de uma variavel - if(isset($id_medida_variavel) && $id_medida_variavel != ""){ - include(dirname(__FILE__)."/../admin/php/classe_metaestat.php"); - $m = new Metaestat(); - $m->nomecache = "ogcmetaestat".$id_medida_variavel; - $tema = $m->mapfileMedidaVariavel($id_medida_variavel,"",1,"","","","","","",true); - $tema = str_replace(".map","",$tema["mapfile"]); - } - $retorno = downloadTema2("",$tema,$locaplic,$dir_tmp,$postgis_mapa); - break; - /* - function: INSEREFEATURE - - Insere elemento gráfico em um tema. - - insereFeature> - */ - case "INSEREFEATURE": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,""); - if(!isset($marca)){ - $marca=""; - } - if(!isset($wkt)){ - $wkt = false; - } - if(!isset($nomeTema)){ - $nomeTema = ""; - } - $m->insereFeature($marca,$tipo,$xy,$texto,$position,$partials,$offsetx,$offsety,$minfeaturesize,$mindistance,$force,$shadowcolor,$shadowsizex,$shadowsizey,$outlinecolor,$cor,$sombray,$sombrax,$sombra,$fundo,$angulo,$tamanho,$fonte,$wrap,$wkt,$nomeTema); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: SOBETEMA - - Sobe um tema na ordem de desenho. - - sobeTema> - */ - case "SOBETEMA": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->sobeTema(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: DESCETEMA - - Desce um tema na ordem de desenho. - - desceTema> - */ - case "DESCETEMA": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->desceTema(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: FONTETEMA - - Busca o link para a fonte do tema - - fonteTema> - */ - case "FONTETEMA": - include_once("classe_temas.php"); - $m = new Temas($map_file,null,$locaplic); - $retorno = $m->fonteTema($tema); - break; - /* - Valor: REORDENATEMAS - - Reordena os temas baseados na localização de um segundo tema no mapa. - - reordenatemas> - */ - case "REORDENATEMAS": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file); - $m->reordenatemas($lista); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: ZOOMTEMA - - Muda a extensão geográfica do mapa de acordo com a abrangência de um tema. - - zoomTema> - */ - case "ZOOMTEMA": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->zoomTema(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: ZOOMSEL - - Muda a extensão geográfica do mapa de acordo com a abrangência dos elementos selecionados de um tema. - - zoomSel> - */ - case "ZOOMSEL": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->zoomSel(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: APLICAPROCESSOS - - Aplica processos em um tema do tipo imagem - - aplicaProcessos> - */ - case "APLICAPROCESSOS": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->aplicaProcessos($lista); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: INVERTESTATUSLEGENDA - - Inverte o metadata CLASSE - - inverteStatusLegenda> - */ - case "INVERTESTATUSLEGENDA": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->inverteStatusLegenda(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: MUDATRANSP - - Altera a transparência de um tema - - mudaTransparencia> - */ - case "MUDATRANSP": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->mudaTransparencia($valor); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: COPIATEMA - - Cria uma copia de um tema - - copia> - */ - case "COPIATEMA": - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->copiaTema(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: MUDANOME - - Altera o nome do tema - - mudaNome> - */ - case "MUDANOME": - include_once("classe_temas.php"); - $valor = mb_convert_encoding($valor,"ISO-8859-1",mb_detect_encoding($valor)); - copiaSeguranca($map_file); - $m = new Temas($map_file,$tema); - $m->mudaNome($valor); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Section: Classes - - Edita as características das classes de um tema. - - - */ - /* - Valor: ALTERACLASSE - - Altera uma classe de um tema, aplicando uma nova classificação ou modificando parâmetros de uma ou mais classes. - */ - case "ALTERACLASSE": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema,"",$ext); - if ($opcao == "aplicacoresrgb"){ - $cores = str_replace("rgb","",$cores); - $cores = str_replace(")","",$cores); - $cores = str_replace("(","",$cores); - $retorno = $m->aplicacoresrgb(explode("|",$cores)); - } - if ($opcao == "sobeclasse"){ - $retorno = $m->sobeclasse($idclasse); - } - if ($opcao == "desceclasse"){ - $retorno = $m->desceclasse($idclasse); - } - if ($opcao == "alteracor"){ - $retorno = $m->alteracor($idclasse,$cor); - } - if ($opcao == "adicionaopacidade"){ - $retorno = $m->adicionaopacidade(); - } - if ($opcao == "alterageometria"){ - $retorno = $m->alterageometria($tipo); - } - if ($opcao == "adicionaclasse"){ - $retorno = $m->adicionaclasse(); - } - if ($opcao == "valorunico"){ - if(empty($itemNome)){ - $itemNome = ""; - } - $retorno = $m->valorunico($item,$ignorar,$itemNome); - } - if ($opcao == "intervalosiguais"){ - $retorno = $m->intervalosiguais($item,$nclasses,$ignorar); - } - if ($opcao == "quantil"){ - $retorno = $m->quantil($item,$nclasses,$ignorar); - } - if ($opcao == "quebrasnaturais"){ - $retorno = $m->quebrasnaturais($item,$nclasses,$ignorar); - } - if ($opcao == "metade"){ - $retorno = $m->metade($item,$itemid,$ignorar); - } - if ($opcao == "media"){ - $retorno = $m->classemedia($item,$ignorar); - } - if ($opcao == "quartis"){ - if(!isset($tipoLegenda)) - { - $tipoLegenda = ""; - } - $retorno = $m->quartis($item,$ignorar,$tipoLegenda); - } - if ($opcao == "alteraclasses"){ - //esta operação é chamada com POST via cpaint - //error_reporting(0); - alteraclassesPost($ids,$nomes,$exps,$base64,$minScales,$maxScales); - restauraCon($map_file,$postgis_mapa); - cpjson(""); - } - if ($opcao == "simbolounico") - { - $retorno = $m->simbolounico(); - } - $salvo = $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: INVERTECORESCLASSES - - Inverte a ordem das cores das classes de um tema. - - inverteCoresClasses> - */ - case "INVERTECORESCLASSES": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema); - $m->inverteCoresClasses(); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: CALCULATAMANHOCLASSES - - Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo. - - calculaTamanhoClasses> - */ - case "CALCULATAMANHOCLASSES": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema); - $retorno = $m->calculaTamanhoClasses(); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; + case "LISTAITENS": + include_once("classe_atributos.php"); + $m = new Atributos($map_file,$_pg["tema"],"",$_pg["ext"]); + $retorno = $m->listaItens(); + break; /* - Valor: ORDENACLASSES + Valor: LISTAVALORESITENS - Ordena as classes pelo nome + Procura valores em uma tabela que aderem a uma palavra de busca. - ordenaClasses> + buscaRegistros> */ - case "ORDENACLASSES": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema); - $retorno = $m->ordenaClasses(); + case "LISTAVALORESITENS": + include_once("classe_atributos.php"); + if(!isset($_pg["tema"])){ + $_pg["tema"] = ""; + } + $m = new Atributos($map_file,$_pg["tema"],"",$_pg["ext"]); + $retorno = $m->buscaRegistros($_pg["palavra"],$_pg["lista"],$_pg["tipo"],$_pg["onde"]); + break; + /* + Valor: IDENTIFICA + + Depreciado na versão 4.2 (utilize "identifica2") + + Identifica elementos no mapa. + + identifica> + */ + case "IDENTIFICA": + $tema = $_pg["tema"]; + $opcao = $_pg["opcao"]; + $xy = $_pg["xy"]; + $resolucao = $_pg["resolucao"]; + + if (!isset($tema)){ + $tema = ""; + } + if (!isset($resolucao)){ + $resolucao = 5; + } + include_once("classe_atributos.php"); + $m = new Atributos($map_file,$tema); + $retorno = $m->identifica($opcao,$xy,$resolucao); + break; + /* + Valor: IDENTIFICA2 + + Depreciado na versão 4.7 (utilize "identifica3") + + Identifica elementos no mapa. + + identifica2> + */ + case "IDENTIFICA2": + $tema = $_pg["tema"]; + $opcao = $_pg["opcao"]; + $xy = $_pg["xy"]; + $resolucao = $_pg["resolucao"]; + $ext = $_pg["ext"]; + $opcao = $_pg["opcao"]; + $listaDeTemas = $_pg["listaDeTemas"]; + $wkt = $_pg["wkt"]; + + if (!isset($tema)){ + $tema = ""; + } + if (!isset($resolucao)){ + $resolucao = 5; + } + include_once("classe_atributos.php"); + if(!isset($ext)) + { + $ext = ""; + } + if(!isset($wkt)) + { + $wkt = "nao"; + } + $m = new Atributos($map_file,$tema,"",$ext); + $retorno = $m->identifica2($opcao,$xy,$resolucao,$ext,$listaDeTemas,$wkt); + break; + /* + Valor: IDENTIFICA3 + + Identifica elementos no mapa. + + identifica3> + */ + case "IDENTIFICA3": + $tema = $_pg["tema"]; + $opcao = $_pg["opcao"]; + $xy = $_pg["xy"]; + $resolucao = $_pg["resolucao"]; + $ext = $_pg["ext"]; + $opcao = $_pg["opcao"]; + $listaDeTemas = $_pg["listaDeTemas"]; + $wkt = $_pg["wkt"]; + + if (!isset($tema)){ + $tema = ""; + } + if (!isset($resolucao)){ + $resolucao = 5; + } + include_once("classe_atributos.php"); + if(!isset($ext)) + { + $ext = ""; + } + if(!isset($wkt)) + { + $wkt = "nao"; + } + $m = new Atributos($map_file,$tema,"",$ext); + $retorno = $m->identifica3($opcao,$xy,$resolucao,$ext,$listaDeTemas,$wkt); + break; + /* + Valor: IDENTIFICAUNICO + + Identifica elementos no mapa retornando apenas o valor de um único item. + + identificaQBP> + */ + case "IDENTIFICAUNICO": + $tema = $_pg["tema"]; + $xy = $_pg["xy"]; + $resolucao = $_pg["resolucao"]; + $ext = $_pg["ext"]; + $item = $_pg["item"]; + + if (!isset($resolucao)){ + $resolucao = 5; + } + include_once("classe_atributos.php"); + if(!isset($ext)) + { + $ext = ""; + } + $m = new Atributos($map_file,$tema,"",$ext); + $xy = explode(",",$xy); + $retorno = $m->identificaQBP3($tema,$xy[0],$xy[1],$map_file,$resolucao,$item,$tiporetorno="unico"); + break; + /* + Valor: LISTATEXTO + + Pega todos os valores dos itens de uma tabela de um tema. + + itensTexto> + */ + case "LISTATEXTO": + include_once("classe_atributos.php"); + $m = new Atributos($map_file,$_pg["tema"]); + $retorno = $m->itensTexto($_pg["tipo"]); + break; + /* + Valor: LISTAREGISTROS + + Pega todos os valores dos itens de uma tabela de um tema. + + listaRegistros> + */ + case "LISTAREGISTROS": + $tema = $_pg["tema"]; + $ext = $_pg["ext"]; + $tipo = $_pg["tipo"]; + $inicio = $_pg["inicio"]; + $fim = $_pg["fim"]; + $tipolista = $_pg["tipolista"]; + $itemtema = $_pg["itemtema"]; + $unico = $_pg["unico"]; + $dadosDaClasse = $_pg["dadosDaClasse"]; + + include_once("classe_atributos.php"); + $m = new Atributos($map_file,$tema,"",$ext); + if(!isset($tipo)){ + $tipo = ""; + } + if(!isset($inicio)){ + $inicio = 0; + } + if(!isset($fim)){ + $fim = ""; + } + if(!isset($tipolista)){ + $tipolista = ""; + } + if(!isset($itemtema)){ + $itemtema = ""; + } + if(!isset($unico)){ + $unico = ""; + } + $legenda = ""; + if(!isset($dadosDaClasse)){ + $dadosDaClasse = "nao"; + } + else{ + include_once("classe_legenda.php"); + $mc = new Legenda($map_file,$locaplic,$tema); + $linhas = $mc->tabelaLegenda(); + foreach($linhas as $linha){ + if($linha["tema"] == $tema){ + $legenda[$linha["idclasse"]] = $linha["imagem"]; + } + } + } + $retorno = $m->listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse); + $retorno["legenda"] = $legenda; + break; + /* + Valor: LISTAUNICA + + Pega todos os valores dos itens de uma tabela de um tema. + + listaRegistros> + */ + case "LISTAUNICA": + $tema = $_pg["tema"]; + $ext = $_pg["ext"]; + $item = $_pg["item"]; + include_once("classe_atributos.php"); + $m = new Atributos($map_file,$tema,"",$ext); + $retorno = $m->listaUnicoRapida($item); + break; + /* + Valor: EXTREGISTROS + + Pega a extensão geográfica de um registro na tabela de atributos de um tema. + + extensaoRegistro> + */ + case "EXTREGISTROS": + include_once("classe_atributos.php"); + $tema = $_pg["tema"]; + $registro = $_pg["registro"]; + $m = new Atributos($map_file,$tema); + $retorno = $m->extensaoRegistro($registro); $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: ALTERACORESCLASSES - - Altera as cores das classes de um tema conforme uma cor inicial e uma final. - - alteraCoresClasses> - */ - case "ALTERACORESCLASSES": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema); - $retorno = $m->alteraCoresClasses($cori,$corf); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: INVERTESTATUSCLASSE - - Altera o status de desenho de uma classe, tornando-a vi�sivel ou não. - - statusClasse> - */ - case "INVERTESTATUSCLASSE": - include_once("classe_alteraclasse.php"); - copiaSeguranca($map_file); - $m = new Alteraclasse($map_file,$tema); - $retorno = $m->statusClasse($classe); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: VERPALETA - - Gera cores tendo como base uma cor inicial e uma cor final. - - - */ - case "VERPALETA": - include_once("class.palette.php"); - $cori = RGB2hex(explode(",",$cori)); - $corf = RGB2hex(explode(",",$corf)); - $myPalette=new palette(array($cori,$corf),($numclasses + 1)); - foreach ($myPalette->colorRGB as $cores) - { - $res[] = $cores[0].",".$cores[1].",".$cores[2]; - } - $retorno = implode("*",$res); - break; - - /* - Section: Edição - - Cria arquivos shapefile ou altera suas características. - - - */ - /* - Valor: SPHPT2SHP - - Converte os elementos de um tema em um arquivo shp. - - Acrescenta um novo tema ao mapa. - - shpPT2shp> - */ - case "SPHPT2SHP": - include_once("classe_shp.php"); - $m = new SHP($map_file,$tema,$locaplic,$ext); - $retorno = $m->shpPT2shp($locaplic,$para); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: LISTAPONTOSSHAPE - - Lista os pontos dos elementos de um arquivo shp. - - listaPontosShape> - */ - case "LISTAPONTOSSHAPE": - include_once("classe_shp.php"); - $m = new SHP($map_file,$tema); - $retorno = $m->listaPontosShape(); - break; - /* - Valor: CRIASHPVAZIO - - Cria um shapefile vazio e acrescenta como tema ao mapa. - - criaSHPvazio> - */ - case "CRIASHPVAZIO": - include_once("classe_shp.php"); - $m = new SHP($map_file); - if(!isset($tituloTema)) - { - $tituloTema = ""; - } - $retorno = $m->criaSHPvazio($tituloTema); - $m->salva(); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: PEGAXYULTIMOPONTO - - Insere um ponto em um shape file tendo como referência o último ponto existente no tema, a direção e a distância. - - ultimoXY> - */ - case "PEGAXYULTIMOPONTO": - include_once("classe_shp.php"); - $m = new SHP($map_file,$tema); - $retorno = $m->ultimoXY(); - break; - - /* - Valor: INSERESHPGRAFICO - - Cria um gráfico e insere no mapa em um local clicado no mapa. - - Os valores para o gráfico são obtidos do tema indicado na classe. Para cada novo gráfico é criado um tema no mapa. - - insereSHPgrafico> - */ - case "INSERESHPGRAFICO": - include_once("classe_shp.php"); - copiaSeguranca($map_file); - $m = new SHP($map_file,$tema,$locaplic); - $retorno = $m->insereSHPgrafico($x,$y,$itens,$width,$inclinacao,$shadow_height,$ext); - $_SESSION["contadorsalva"]++; - break; - /* - Valor: MOSTRAWKT - - Gera string wkt de um conjunto de pontos. - */ - case "MOSTRAWKT": - $res = xy2wkt($xy); - $retorno = array($res["ponto"],$res["linha"],$res["poligono"]); - break; - /* - Valor: DADOSLINHADOTEMPO - - Pega os dados de um tema para geração do gráfico de linha do tempo. - - - */ - case "DADOSLINHADOTEMPO": - include_once("graficos.php"); - if(!isset($ext)) - { - $ext = ""; - } - $retorno = dadosLinhaDoTempo($map_file,$tema,$ext); - break; - /* - Valor: DADOSPERFILRELEVO - - Pega os dados para elaboração de gráfico de perfil do relevo - - - */ - case "DADOSPERFILRELEVO": - include_once("graficos.php"); - if(!isset($ext)) - { - $ext = ""; - } - $retorno = dadosPerfilRelevo($pontos,$opcao,$amostragem,$item,$map_file); - break; - /* - Section: Menu de temas - - Obtém a lista de temas, grupos e sub-grupos. - - - */ - /* - Valor: PEGALISTADEMENUS - - Pega a lista de menus para incluir na guia adiciona. - - pegaListaDeMenus> - */ - case "PEGALISTADEMENUS": - include_once("classe_menutemas.php"); - if(!isset($editores)){ - $editores = ""; - } - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); - $retorno = $m->pegaListaDeMenus($filtraOgc,$filtraDown); - break; - /* - Valor: PEGALISTADEGRUPOS - - Pega a lista de grupos do menu. - - pegaListaDeGrupos> - */ - case "PEGALISTADEGRUPOS": - include_once("classe_menutemas.php"); - if(!isset($urli3geo)){ - $urli3geo = ""; - } - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma,$filtro); - if(!isset($idmenu)){ - $idmenu=""; - } - if(!isset($listasistemas)){ - $listasistemas="nao"; - } - if(!isset($listasgrupos)){ - $listasgrupos="nao"; - } - if(!isset($ordenaNome)){ - $ordenaNome = "nao"; - } - if(!isset($filtraOgc)){ - $filtraOgc = "nao"; - } - if(!isset($filtraDown)){ - $filtraDown = "nao"; - } - $retorno = array( - "idmenu"=>$idmenu, - "grupos"=>$m->pegaListaDeGrupos($idmenu,$listasistemas,$listasgrupos,$ordenaNome,$filtraOgc,$filtraDown) - ); - break; - /* - Valor: PEGASISTEMASIDENTIFICACAO - - Pega a lista de sistemas especiais de identificação de elementos no mapa - - pegaSistemasI> - */ - case "PEGASISTEMASIDENTIFICACAO": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,"",$editores,$idioma); - $retorno = $m->pegaSistemasI(); - break; - /* - Valor: PEGASISTEMAS - - Pega a lista de sistemas. - - pegaSistemas> - */ - case "PEGASISTEMAS": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,"",$editores,$idioma); - $retorno = $m->pegaSistemas(); - break; - /* - Valor: PEGALISTADESUBGRUPOS - - Pega a lista de subgrupos de um grupo do menu. - - pegaListaDeSubGrupos> - */ - case "PEGALISTADESUBGRUPOS": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma,$filtro); - if(!isset($idmenu)){ - $idmenu = ""; - } - $retorno = $m->pegaListaDeSubGrupos($grupo,$idmenu); - break; - /* - Valor: PEGALISTADETEMAS - - Pega a lista de temas do menu. - - pegaListaDeTemas> - */ - case "PEGALISTADETEMAS": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); - if(!isset($idmenu)){ - $idmenu = ""; - } - $retorno = array("temas"=>$m->pegaListaDeTemas($grupo,$subgrupo,$idmenu)); - break; - /* - Valor: PEGATODOSTEMAS - - Pega a lista de todos os temas que nao possuem restricoes de acesso - */ - case "PEGATODOSTEMAS": - include("../admin/php/classe_arvore.php"); - $arvore = new Arvore($locaplic,$idioma); - $resultado = $arvore->pegaTodosTemas(); - $retorno = array("temas"=>$resultado); - break; - /* - Valor: PROCURARTEMAS - - Procura um tema no menu considerando apenas os existentes em subgruppos. - - procurartemas> - */ - case "PROCURARTEMAS": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); - $retorno = $m->procurartemas($procurar); - break; - /* - Valor: PROCURARTEMAS2 - - Procura um tema no menu considerando todos os níveis. - - procurartemas2> - */ - case "PROCURARTEMAS2": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); - $retorno = $m->procurartemas2($procurar); - break; - /* - Valor: PROCURARTEMASESTRELA - - Procura um tema com um certo número de estrelas. - - procurartemasestrela> - */ - case "PROCURARTEMASESTRELA": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); - $retorno = $m->procurartemasestrela($nivel,$fatorestrela); - break; - /* - Valor: PEGAMAPAS - - Pega a lista de links para outros mapas. - - Utilizado no preenchimento da guia mapas - - pegaListaDeMapas> - */ - case "PEGAMAPAS": - include_once("classe_menutemas.php"); - $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$idioma); - $retorno = $m->pegaListaDeMapas($locmapas); - break; - /* - Section: Webservices - - Processa serviços OGC. - - - */ - /* - Valor: GEORSSCANAIS - - Lista os canais de um georss. - - - */ - case "GEORSSCANAIS": - $retorno = georssCanais($servico,$map_file,$dir_tmp,$locaplic); - break; - /* - Valor: GETCAPABILITIES - - Chama a função getcapabilities e retorna o resultado. - - - */ - case "GETCAPABILITIES": - include_once("wmswfs.php"); - $retorno = getcapabilities(); - restauraCon($map_file,$postgis_mapa); - break; - /* - Valor: GETCAPABILITIES2 - - Chama a função getcapabilities e retorna o resultado formatado (WMS). - - - */ - case "GETCAPABILITIES2": - include_once("wmswfs.php"); - $retorno = getcapabilities2(); - restauraCon($map_file,$postgis_mapa); - break; - /* - Valor: GETCAPABILITIES3 - - Chama a função getcapabilities e retorna o resultado formatado (WFS). - - - */ - case "GETCAPABILITIES3": - include_once("wmswfs.php"); - $retorno = getcapabilities3(); - restauraCon($map_file,$postgis_mapa); - break; - /* - Valor: TEMASWMS - - Retorna a lista de camadas de um WMS formatado em HTML. - - - */ - case "TEMASWMS": - include_once("wmswfs.php"); - restauraCon($map_file,$postgis_mapa); - $retorno = temaswms(); - break; - /* - Valor: LISTALAYERSWMS - - Retorna a lista de layers de um WMS. - - - */ - case "LISTALAYERSWMS": - include_once("wmswfs.php"); - $retorno = listaLayersWMS(); - break; - /* - Section: Atributos - - Processa os atributos da tabela associada ao tema. - - - */ - /* - Valor: BUSCARAPIDA - - Acessa dados de um serviço de geonames ou busca dados nos temas existentes no mapa. - - A pesquisa em temas é feita apenas quando existir o metadata itembuscarapida - - - */ - case "BUSCARAPIDA": - if($servico != "temas") - { - $retorno = buscaRapida($servico,$palavra); - } - else{ - include_once("classe_mapa.php"); - $m = New Mapa($map_file); - $lista = $m->listaTemasBuscaRapida(); - if($lista != ""){ - include_once("classe_atributos.php"); - $m = new Atributos($map_file); - $dados = $m->buscaRegistros($palavra,$lista,"qualquer","mapa"); - foreach($dados as $tema){ - $rs = $tema["resultado"]; - foreach($rs as $r){ - $retorno[] = array("box"=>$r["box"],"valor"=>$r["valores"][0]["valor"]); - } - } - } - else - {$retorno = "erro"; - } - } - break; - /* - Valor: LISTAITENS - - Lista os itens de um tema. - - listaItens> - */ - case "LISTAITENS": - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema,"",$ext); - $retorno = $m->listaItens(); - break; - /* - Valor: LISTAVALORESITENS - - Procura valores em uma tabela que aderem a uma palavra de busca. - - buscaRegistros> - */ - case "LISTAVALORESITENS": - include_once("classe_atributos.php"); - if(!isset($tema)){ - $tema = ""; - } - $m = new Atributos($map_file,$tema,"",$ext); - $retorno = $m->buscaRegistros($palavra,$lista,$tipo,$onde); - break; - /* - Valor: IDENTIFICA - - Depreciado na versão 4.2 (utilize "identifica2") - - Identifica elementos no mapa. - - identifica> - */ - case "IDENTIFICA": - if (!isset($tema)){ - $tema = ""; - } - if (!isset($resolucao)){ - $resolucao = 5; - } - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema); - $retorno = $m->identifica($opcao,$xy,$resolucao); - break; - /* - Valor: IDENTIFICA2 - - Depreciado na versão 4.7 (utilize "identifica3") - - Identifica elementos no mapa. - - identifica2> - */ - case "IDENTIFICA2": - if (!isset($tema)){ - $tema = ""; - } - if (!isset($resolucao)){ - $resolucao = 5; - } - include_once("classe_atributos.php"); - if(!isset($ext)) - { - $ext = ""; - } - if(!isset($wkt)) - { - $wkt = "nao"; - } - $m = new Atributos($map_file,$tema,"",$ext); - $retorno = $m->identifica2($opcao,$xy,$resolucao,$ext,$listaDeTemas,$wkt); - break; - /* - Valor: IDENTIFICA3 - - Identifica elementos no mapa. - - identifica3> - */ - case "IDENTIFICA3": - if (!isset($tema)){ - $tema = ""; - } - if (!isset($resolucao)){ - $resolucao = 5; - } - include_once("classe_atributos.php"); - if(!isset($ext)) - { - $ext = ""; - } - if(!isset($wkt)) - { - $wkt = "nao"; - } - $m = new Atributos($map_file,$tema,"",$ext); - $retorno = $m->identifica3($opcao,$xy,$resolucao,$ext,$listaDeTemas,$wkt); - break; - /* - Valor: IDENTIFICAUNICO - - Identifica elementos no mapa retornando apenas o valor de um único item. - - identificaQBP> - */ - case "IDENTIFICAUNICO": - if (!isset($resolucao)){ - $resolucao = 5; - } - include_once("classe_atributos.php"); - if(!isset($ext)) - { - $ext = ""; - } - $m = new Atributos($map_file,$tema,"",$ext); - $xy = explode(",",$xy); - $retorno = $m->identificaQBP3($tema,$xy[0],$xy[1],$map_file,$resolucao,$item,$tiporetorno="unico"); - break; - /* - Valor: LISTATEXTO - - Pega todos os valores dos itens de uma tabela de um tema. - - itensTexto> - */ - case "LISTATEXTO": - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema); - $retorno = $m->itensTexto($tipo); - break; - /* - Valor: LISTAREGISTROS - - Pega todos os valores dos itens de uma tabela de um tema. - - listaRegistros> - */ - case "LISTAREGISTROS": - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema,"",$ext); - if(!isset($tipo)){ - $tipo = ""; - } - if(!isset($inicio)){ - $inicio = 0; - } - if(!isset($fim)){ - $fim = ""; - } - if(!isset($tipolista)){ - $tipolista = ""; - } - if(!isset($itemtema)){ - $itemtema = ""; - } - if(!isset($unico)){ - $unico = ""; - } - $legenda = ""; - if(!isset($dadosDaClasse)){ - $dadosDaClasse = "nao"; - } - else{ - include_once("classe_legenda.php"); - $mc = new Legenda($map_file,$locaplic,$tema); - $linhas = $mc->tabelaLegenda(); - foreach($linhas as $linha){ - if($linha["tema"] == $tema){ - $legenda[$linha["idclasse"]] = $linha["imagem"]; - } - } - } - $retorno = $m->listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse); - $retorno["legenda"] = $legenda; - break; - /* - Valor: LISTAUNICA - - Pega todos os valores dos itens de uma tabela de um tema. - - listaRegistros> - */ - case "LISTAUNICA": - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema,"",$ext); - $retorno = $m->listaUnicoRapida($item); - break; - /* - Valor: EXTREGISTROS - - Pega a extensão geográfica de um registro na tabela de atributos de um tema. - - extensaoRegistro> - */ - case "EXTREGISTROS": - include_once("classe_atributos.php"); - $m = new Atributos($map_file,$tema); - $retorno = $m->extensaoRegistro($registro); - $m->salva(); - break; - /* - Section: Navegação - - Altera a extensão geográfica do mapa. - - - */ + break; + /* + Section: Navegação + + Altera a extensão geográfica do mapa. + + + */ /* Valor: MARCADORES2SHP Converte marcadores em shapefile */ case "MARCADORES2SHP": - $marcadores = explode(":",$_COOKIE["marcadoresDoI3Geo"]); - $marcas = array(); - foreach($marcadores as $marcador){ - $par = explode("|",$marcador); - if(count($par) == 2){ - $marcas[] = array("ext"=>$par[1],"nome"=>$par[0]); - } - } - if(count($marcas) == 0){ - $retorno = ""; - } - else{ + $marcadores = explode(":",$_COOKIE["marcadoresDoI3Geo"]); + $marcas = array(); + foreach($marcadores as $marcador){ + $par = explode("|",$marcador); + if(count($par) == 2){ + $marcas[] = array("ext"=>$par[1],"nome"=>$par[0]); + } + } + if(count($marcas) == 0){ + $retorno = ""; + } + else{ include_once("classe_analise.php"); - $m = new Analise($map_file); - $imgdir = basename($map_file); - $dir_tmp = basename($imgdir); - $res = $m->incmapageometrias($dir_tmp,$imgdir,$marcas,"marcadores"); - $retorno = $res; - } - break; - - /* - Valor: GEO2UTM - - Retorna coordenadas utm a partir de coordenadas geo - */ - case "GEO2UTM": - $zona = geo2zonaUTM($x); - $retorno = geo2utm($x,$y,$zona); - break; - /* - Valor: DESATIVACGI - - Desativa o modo cgi. - */ - case "DESATIVACGI": - $_SESSION["utilizacgi"] = "nao"; - $retorno = $_SESSION["utilizacgi"]; - break; - - /* - Valor: MUDAEXT - - Muda a extensão geográfica do mapa. - - mudaExtensao> - */ - case "MUDAEXT": - include_once("classe_navegacao.php"); - copiaSeguranca($map_file); - if (!isset($ext) || $ext == "" || $ext == " ") - { - $ext="-76.512593 -39.392568 -29.585185 9.490149"; - } - if(!isset($geo)) - { - $geo = false; - } - $m = new Navegacao($map_file); - $m->mudaExtensao($ext); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: MUDAESCALA - - Muda a escala do mapa. - - mudaEscala> - */ - case "MUDAESCALA": - include_once("classe_navegacao.php"); - copiaSeguranca($map_file); - $m = new Navegacao($map_file); - $m->mudaEscala($escala); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: PAN - - Desloca a visualização de um mapa (pan). - - pan> - */ - case "PAN": - include_once("classe_navegacao.php"); - copiaSeguranca($map_file); - $m = new Navegacao($map_file); - if(!isset($tipo)){ - $tipo = ""; - } - $m->pan($x,$y,$escala,$tipo); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: APROXIMA - - Aproxima a visualização de um mapa (zoom in) - - aproxima> - */ - case "APROXIMA": - include_once("classe_navegacao.php"); - copiaSeguranca($map_file); - $m = new Navegacao($map_file); - $m->aproxima($nivel); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: AFASTA - - Afasta a visualização de um mapa (zoom out) - - afasta> - */ - case "AFASTA": - include_once("classe_navegacao.php"); - copiaSeguranca($map_file); - $m = new Navegacao($map_file); - $m->afasta($nivel); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Valor: CRIALENTE - - Aplica uma resolução nova ao mapa atual e gera uma imagem para a lente. - - aplicaResolucao> - */ - case "CRIALENTE": - include_once("classe_navegacao.php"); - $m = new Navegacao($map_file); - if(!isset($ext)) - { - $ext = ""; - } - //$ext = projetaExt($map_file,$ext); - $m->aplicaResolucao($resolucao,$ext); - $retorno = ($m->mapa->width).",".($m->mapa->height).",".$m->gravaImagemCorpo(); - break; - /* - Valor: LOCALIZAIP - - Localiza as coordenadas geográficas do usuário atual. - - Baseia-se na identificação do IP e no pacote geoip - */ - case "LOCALIZAIP": - copiaSeguranca($map_file); - $ip = pegaIPcliente(); - $r = ip2geo($ip); - if($r["latitude"] == null) - { - $ip = pegaIPcliente2(); - $r = ip2geo($ip); - } - $retorno = $r; - break; - /* - Valor: ZOOMPONTO - - Desloca o centro do mapa para um ponto específico. - - zoomPonto> - */ - case "ZOOMPONTO": - include_once("classe_navegacao.php"); - include_once("classe_temas.php"); - copiaSeguranca($map_file); - $m = new Navegacao($map_file); - $m->zoomPonto($xy); - $m->salva(); - $m = new Temas($map_file,""); - if(!isset($marca)) - { - $marca = "ponto"; - } - $m->insereFeature($marca,"POINT",$xy,$texto,$position,$partials,$offsetx,$offsety,$minfeaturesize,$mindistance,$force,$shadowcolor,$shadowsizex,$shadowsizey,$outlinecolor,$cor,$sombray,$sombrax,$sombra,$fundo,$angulo,$tamanho,$fonte); - $m->salva(); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Section: Legenda - - Processa a legenda do mapa e de temas específicos. - - - */ - /* - Valor: GERACORESCOLOURRAMP - - Retorna uma lista de valores RGB de cores geradas com base nsa grades de cores existentes (ver i3geo/symbols/colourramps) - */ - case "GERACORESCOLOURRAMP": - include_once("class.palette.php"); - $m = new palette(); - $retorno = $m->geraCoresColourRamp("..",$codigo,$inicio,$fim,$ncores); - break; - /* - Valor: EDITASIMBOLO - - Define as características de simbologia de uma classe, cria, adiciona e exclui estilos. - */ - case "EDITASIMBOLO": - include_once("classe_legenda.php"); - copiaSeguranca($map_file); - if(!isset($tema)){ - $tema = ""; - } - $m = new Legenda($map_file,$locaplic,$tema); - if ($opcao == "excluiestilo") - { - $retorno = $m->excluiEstilo($classe,$estilo); - $m->salva(); - } - if ($opcao == "adicionaestilo") - { - $retorno = $m->adicionaEstilo($classe,$estilo); - $m->salva(); - } - if ($opcao == "sobeestilo") - { - $retorno = $m->sobeEstilo ($classe,$estilo); - $m->salva(); - } - if ($opcao == "desceestilo") - { - $retorno = $m->desceEstilo ($classe,$estilo); - $m->salva(); - } - if ($opcao == "aplica") - { - $retorno = $m->aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size,$opacidade,$width,$pattern,$angle,$minsize,$maxsize,$offsetx,$offsety); - if(!empty($symbolscale)){ - $m->layer->set("symbolscaledenom",$symbolscale); - } - $m->salva(); - } - if ($opcao == "listaSimbolos"){ - $retorno = $m->listaSimbolos($tipo,$dir_tmp,$imgdir,$onclick); - if($retorno == "") - { - $retorno = $m->listaSimbolos($tipo,$dir_tmp,$imgdir,$onclick,8,1,true); - } - } - if ($opcao == "pegaparametros") - { - $retorno = $m->pegaParametros($classe); - } - $_SESSION["contadorsalva"]++; - break; - /* - Valor: CRIALEGENDAHTML - - Gera a legenda processando o template HTML. - - criaLegenda> - */ - case "CRIALEGENDAHTML": - include_once("classe_legenda.php"); - //para efeitos de compatibilidade com versões anteriores - if(isset($template)){ - $templateLegenda = $template; - } - $m = new Legenda($map_file,$locaplic,$tema,$templateLegenda); - $r = $m->criaLegenda(); - if(!$r){ - $r = "erro. Legenda nao disponivel"; - } - $retorno = $r; - break; - /* - Valor: CRIALEGENDAIMAGEM - - Desenha a imagem da legenda. - - legendaGrafica> - */ - case "CRIALEGENDAIMAGEM": - include_once("classe_legenda.php"); - $m = new Legenda($map_file); - $retorno = $m->legendaGrafica(); - break; - /* - Section: Escala gráfica - - Processa a escala gráfica do mapa. - - - */ - /* - Valor: ESCALAGRAFICA - - Gera a imagem da barra de escala. - - retornaBarraEscala> - */ - case "ESCALAGRAFICA": - include_once("classe_escala.php"); - $m = new Escala($map_file); - $retorno = $m->retornaBarraEscala(); - break; - /* - Section: Seleção - - Seleciona elementos do mapa ou processa a seleção existente. - - - */ - /* - Valor: SELECAOATRIB - - Seleciona elementos com base nos atributos. - - selecaoAtributos> - */ - case "SELECAOATRIB": - include_once("classe_selecao.php"); - copiaSeguranca($map_file); - $m = new Selecao($map_file,$tema,$ext); - $retorno = $m->selecaoAtributos($tipo,$item,$operador,$valor); - $_SESSION["contadorsalva"]++; - redesenhaMapa(); - break; - /* - Section: Outros - - Opções de uso geral. - */ - /* - Valor: LISTATRUETYPE - - Lista as fontes truetype disponíveis. - */ - case "LISTATRUETYPE": - $retorno = listaTrueType(); - restauraCon($map_file,$postgis_mapa); - break; - /* - Valor: AREAPIXEL - - Calcula a área de um pixel da imagem. - */ - case "AREAPIXEL": - $retorno = calculaAreaPixel($map_file,$celsize); - break; - /* - Valor: LISTAEPSG - - Pega os codigos de projeção EPSG. - - */ - case "LISTAEPSG": - $retorno = listaEpsg(); - break; - /* - Valor: LISTADIRETORIOS - - Depreciado na V 5.0, use ferramentas/navegarquivos/exec.php - - Lista os diretórios de um diretório. - - */ - case "LISTADIRETORIOS": - $retorno = listaDiretorios($diretorio); - break; - /* - Valor: LISTAARQUIVOS - - Depreciado na V 5.0, use ferramentas/navegarquivos/exec.php - - Lista os arquivos de um diretório. - */ - case "LISTAARQUIVOS": - $retorno = listaArquivos($diretorio); - break; - /* - Depreciado - - Retorna o valor da chave registrada para a API do Google maps - - Essa chave deve ser registrada em i3geo/ms_configura.php - */ - case "CHAVEGOOGLE": - $retorno = $googleApiKey; - break; - /* - Valor: LISTADRIVES - - Pega a lista de drives registrados para o usuário atual. - - A lista de drives é definida no ms_configura e permite que o usuário navegue pelos arquivos do servidor. - */ - case "LISTADRIVES": - include(dirname(__FILE__)."/../ms_configura.php"); - //verifica se está cadastrado - $ipcliente = pegaIPcliente(); - $retorno = array(); - foreach ($navegadoresLocais as $n) - { - if (gethostbyname($n["ip"]) == $ipcliente) - { - $retorno[] = $n["drives"]; - } - } - break; - /* - Valor: LISTAINTERFACES - - Lista as interfaces de abertura de mapas - - Pesquisa na pasta interfaces e na pasta definida em $customDir - */ - case "LISTAINTERFACES": - include(dirname(__FILE__)."/../ms_configura.php"); - $pesquisarEm = array($locaplic."/interface"); - if(isset($customDir) && $customDir != "" && $customDir != "interface"){ - $pesquisarEm[] = $locaplic."/".$customDir; - } - $retorno = array(); - foreach($pesquisarEm as $p){ - $r = listaArquivos($p); - //var_dump($r);exit; - $arqs = $r["arquivos"]; - $ext = $r["extensoes"]; - $nomes = $r["nomes"]; - $n = count($arqs); - for($i=0; $i<$n; $i++){ - if(in_array($ext[$i],array("php","phtml","htm","html"))){ - //verifica se tem a carga do js i3geo.js - $a = $p."/".$nomes[$i]; - $handle = fopen ($a, "r"); - $conteudo = fread ($handle, filesize ($a)); - fclose ($handle); - if(strstr($conteudo,"i3geo.js")){ - $retorno[] = "../".basename($p)."/".$nomes[$i]; - } - } - } - } - break; - -} -if (!connection_aborted()){ - if(isset($map_file) && isset($postgis_mapa) && $map_file != "") - restauraCon($map_file,$postgis_mapa); - //$cp->return_data(); - cpjson($retorno); -} -else{ - exit(); -} -/* - Function: projetaExt - -Projeta uma string com coordenadas geográficas para coordenadas métricas - -Parametros: - -$map_file {string} - -$ext {string} - extensão geográfica com valores separados por espaço ou um par de coordenadas x y - -Return: - -{string} -*/ -function projetaExt($map_file,$ext,$separador=" ") -{ - $ext = str_replace($separador," ",$ext); - $extA = explode(" ",$ext); - $mapa = ms_newMapObj($map_file); - $ponto = false; - if($extA[0] < 180 && $extA[0] > -180) - { - if(count($extA) == 2) - { - $ponto = true; - $extA[] = $extA[0] + 1; - $extA[] = $extA[1] + 1; - } - $rect = ms_newRectObj(); - $rect->setextent($extA[0],$extA[1],$extA[2],$extA[3]); - $prjMapa = $mapa->getProjection(); - $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); - $projOutObj = ms_newprojectionobj($prjMapa); - $rect->project($projInObj, $projOutObj); - if($ponto == false) - { - $ext = $rect->minx." ".$rect->miny." ".$rect->maxx." ".$rect->maxy; - } - else - {$ext = $rect->minx." ".$rect->miny; - } - } - $ext = str_replace(" ",$separador,$ext); - return $ext; -} -/* - Function: alteraclassesPost - -Altera as classes de um tema aplicando novos parâmetros como nome e expressão. - -Include: - -*/ -function alteraclassesPost($ids,$nomes,$exps,$base64="nao",$minScales="",$maxScales=""){ - global $map_file,$tema; - $m = new Alteraclasse($map_file,$tema); - $m->alteraclasses($ids,$nomes,$exps,$base64,$minScales,$maxScales); - $m->salva(); - $_SESSION["contadorsalva"]++; -} -/* - Function: redesenhaMapa - -Redesenha o mapa e retorna os parâmetros do novo mapa. - -Include: - - -Parametros: - -tipoimagem {String} - tipo de imagem que será gerada nenhum|cinza|sepianormal|sepiaclara -*/ -function redesenhaMapa() -{ - global $tempo,$map_file,$tipoimagem,$cp,$postgis_mapa,$utilizacgi,$locmapserv,$interface,$mapexten; - if($tipoimagem != "nenhum" && $tipoimagem != "") - { - $utilizacgi = "nao"; - } - if (connection_aborted()){ - exit(); - } - if($interface == "googleearth" && $mapexten != ""){ - include_once("classe_navegacao.php"); - $m = new Navegacao($map_file); - $m->mudaExtensao($mapexten); - $m->salva(); - } - include_once("classe_mapa.php"); - $m = New Mapa($map_file); - $par = $m->parametrosTemas(); - // - //na interface googlemaps não é necessário gerar a imagem - // - $e = $m->mapa->extent; - $ext = $e->minx." ".$e->miny." ".$e->maxx." ".$e->maxy; - $res["mapimagem"] = ""; - $res["mapexten"] = $ext; - $res["mapres"] = ""; - $res["erro"] = ""; - $res["mapscale"] = ""; - $res["pixelsize"] = ""; - $res["mapimagem"] = ""; - $res["w"] = $m->mapa->width; - $res["h"] = $m->mapa->height; - $res["mappath"] = ""; - $res["mapurl"] = ""; - $res["mensagens"] = $m->pegaMensagens(); - $res["tempo"] = microtime(1) - $tempo; - restauraCon($map_file,$postgis_mapa); - ob_clean(); - if ($par == "") - { - $retorno = "erro"; - } - else - {$retorno = array("variaveis"=>$res,"temas"=>$par); - } - cpjson($retorno); -} -?> + $m = new Analise($map_file); + $imgdir = basename($map_file); + $dir_tmp = basename($imgdir); + $res = $m->incmapageometrias($dir_tmp,$imgdir,$marcas,"marcadores"); + $retorno = $res; + } + break; + + /* + Valor: GEO2UTM + + Retorna coordenadas utm a partir de coordenadas geo + */ + case "GEO2UTM": + $x = $_pg["x"]; + $y = $_pg["y"]; + $zona = geo2zonaUTM($x); + $retorno = geo2utm($x,$y,$zona); + break; + /* + Valor: DESATIVACGI + + Desativa o modo cgi. + */ + case "DESATIVACGI": + $_SESSION["utilizacgi"] = "nao"; + $retorno = $_SESSION["utilizacgi"]; + break; + + /* + Valor: MUDAEXT + + Muda a extensão geográfica do mapa. + + mudaExtensao> + */ + case "MUDAEXT": + include_once("classe_navegacao.php"); + copiaSeguranca($map_file); + $ext = $_pg["ext"]; + $geo = $_pg["geo"]; + if (!isset($ext) || $ext == "" || $ext == " ") + { + $ext="-76.512593 -39.392568 -29.585185 9.490149"; + } + if(!isset($geo) || $geo == "") + { + $geo = false; + } + $m = new Navegacao($map_file); + $m->mudaExtensao($ext); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: MUDAESCALA + + Muda a escala do mapa. + + mudaEscala> + */ + case "MUDAESCALA": + include_once("classe_navegacao.php"); + copiaSeguranca($map_file); + $m = new Navegacao($map_file); + $m->mudaEscala($_pg["escala"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: PAN + + Desloca a visualização de um mapa (pan). + + pan> + */ + case "PAN": + include_once("classe_navegacao.php"); + copiaSeguranca($map_file); + $m = new Navegacao($map_file); + $tipo = $_pg["tipo"]; + if(!isset($tipo)){ + $tipo = ""; + } + $m->pan($_pg["x"],$_pg["y"],$_pg["escala"],$tipo); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: APROXIMA + + Aproxima a visualização de um mapa (zoom in) + + aproxima> + */ + case "APROXIMA": + include_once("classe_navegacao.php"); + copiaSeguranca($map_file); + $m = new Navegacao($map_file); + $m->aproxima($_pg["nivel"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: AFASTA + + Afasta a visualização de um mapa (zoom out) + + afasta> + */ + case "AFASTA": + include_once("classe_navegacao.php"); + copiaSeguranca($map_file); + $m = new Navegacao($map_file); + $m->afasta($_pg["nivel"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Valor: CRIALENTE + + Aplica uma resolução nova ao mapa atual e gera uma imagem para a lente. + + aplicaResolucao> + */ + case "CRIALENTE": + include_once("classe_navegacao.php"); + $m = new Navegacao($map_file); + if(!isset($_pg["ext"])) + { + $_pg["ext"] = ""; + } + //$ext = projetaExt($map_file,$ext); + $m->aplicaResolucao($_pg["resolucao"],$ext); + $retorno = ($m->mapa->width).",".($m->mapa->height).",".$m->gravaImagemCorpo(); + break; + /* + Valor: LOCALIZAIP + + Localiza as coordenadas geográficas do usuário atual. + + Baseia-se na identificação do IP e no pacote geoip + */ + case "LOCALIZAIP": + copiaSeguranca($map_file); + $ip = pegaIPcliente(); + $r = ip2geo($ip); + if($r["latitude"] == null) + { + $ip = pegaIPcliente2(); + $r = ip2geo($ip); + } + $retorno = $r; + break; + /* + Valor: ZOOMPONTO + + Desloca o centro do mapa para um ponto específico. + + zoomPonto> + */ + case "ZOOMPONTO": + include_once("classe_navegacao.php"); + include_once("classe_temas.php"); + copiaSeguranca($map_file); + $m = new Navegacao($map_file); + $m->zoomPonto($_pg["xy"]); + $m->salva(); + $m = new Temas($map_file,""); + if(!isset($_pg["marca"])) + { + $_pg["marca"] = "ponto"; + } + $m->insereFeature($marca,"POINT",$_pg["xy"],$_pg["texto"],$_pg["position"],$_pg["partials"],$_pg["offsetx"],$_pg["offsety"],$_pg["minfeaturesize"],$_pg["mindistance"],$_pg["force"],$_pg["shadowcolor"],$_pg["shadowsizex"],$_pg["shadowsizey"],$_pg["outlinecolor"],$_pg["cor"],$_pg["sombray"],$_pg["sombrax"],$_pg["sombra"],$_pg["fundo"],$_pg["angulo"],$_pg["tamanho"],$_pg["fonte"]); + $m->salva(); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Section: Legenda + + Processa a legenda do mapa e de temas específicos. + + + */ + /* + Valor: GERACORESCOLOURRAMP + + Retorna uma lista de valores RGB de cores geradas com base nsa grades de cores existentes (ver i3geo/symbols/colourramps) + */ + case "GERACORESCOLOURRAMP": + include_once("class.palette.php"); + $m = new palette(); + $retorno = $m->geraCoresColourRamp("..",$_pg["codigo"],$_pg["inicio"],$_pg["fim"],$_pg["ncores"]); + break; + /* + Valor: EDITASIMBOLO + + Define as características de simbologia de uma classe, cria, adiciona e exclui estilos. + */ + case "EDITASIMBOLO": + include_once("classe_legenda.php"); + copiaSeguranca($map_file); + if(!isset($_pg["tema"])){ + $_pg["tema"] = ""; + } + $classe = $_pg["classe"]; + $estilo = $_pg["estilo"]; + $opcao = $_pg["opcao"]; + $m = new Legenda($map_file,$locaplic,$_pg["tema"]); + if ($opcao == "excluiestilo") + { + $retorno = $m->excluiEstilo($classe,$estilo); + $m->salva(); + } + if ($opcao == "adicionaestilo") + { + $retorno = $m->adicionaEstilo($classe,$estilo); + $m->salva(); + } + if ($opcao == "sobeestilo") + { + $retorno = $m->sobeEstilo ($classe,$estilo); + $m->salva(); + } + if ($opcao == "desceestilo") + { + $retorno = $m->desceEstilo ($classe,$estilo); + $m->salva(); + } + if ($opcao == "aplica") + { + $retorno = $m->aplicaParametro($classe,$estilo,$_pg["outlinecolor"],$_pg["backgroundcolor"],$_pg["color"],$_pg["symbolname"],$_pg["size"],$_pg["opacidade"],$_pg["width"],$_pg["pattern"],$_pg["angle"],$_pg["minsize"],$_pg["maxsize"],$_pg["offsetx"],$_pg["offsety"]); + if(!empty($_pg["symbolscale"])){ + $m->layer->set("symbolscaledenom",$_pg["symbolscale"]); + } + $m->salva(); + } + if ($opcao == "listaSimbolos"){ + $retorno = $m->listaSimbolos($_pg["tipo"],$dir_tmp,$imgdir,$_pg["onclick"]); + if($retorno == "") + { + $retorno = $m->listaSimbolos($_pg["tipo"],$dir_tmp,$imgdir,$_pg["onclick"],8,1,true); + } + } + if ($opcao == "pegaparametros") + { + $retorno = $m->pegaParametros($classe); + } + $_SESSION["contadorsalva"]++; + break; + /* + Valor: CRIALEGENDAHTML + + Gera a legenda processando o template HTML. + + criaLegenda> + */ + case "CRIALEGENDAHTML": + include_once("classe_legenda.php"); + //para efeitos de compatibilidade com versões anteriores + if(isset($_pg["template"])){ + $_pg["templateLegenda"] = $_pg["template"]; + } + $m = new Legenda($map_file,$locaplic,$_pg["tema"],$_pg["templateLegenda"]); + $r = $m->criaLegenda(); + if(!$r){ + $r = "erro. Legenda nao disponivel"; + } + $retorno = $r; + break; + /* + Valor: CRIALEGENDAIMAGEM + + Desenha a imagem da legenda. + + legendaGrafica> + */ + case "CRIALEGENDAIMAGEM": + include_once("classe_legenda.php"); + $m = new Legenda($map_file); + $retorno = $m->legendaGrafica(); + break; + /* + Section: Escala gráfica + + Processa a escala gráfica do mapa. + + + */ + /* + Valor: ESCALAGRAFICA + + Gera a imagem da barra de escala. + + retornaBarraEscala> + */ + case "ESCALAGRAFICA": + include_once("classe_escala.php"); + $m = new Escala($map_file); + $retorno = $m->retornaBarraEscala(); + break; + /* + Section: Seleção + + Seleciona elementos do mapa ou processa a seleção existente. + + + */ + /* + Valor: SELECAOATRIB + + Seleciona elementos com base nos atributos. + + selecaoAtributos> + */ + case "SELECAOATRIB": + include_once("classe_selecao.php"); + copiaSeguranca($map_file); + $m = new Selecao($map_file,$_pg["tema"],$_pg["ext"]); + $retorno = $m->selecaoAtributos($_pg["tipo"],$_pg["item"],$_pg["operador"],$_pg["valor"]); + $_SESSION["contadorsalva"]++; + redesenhaMapa(); + break; + /* + Section: Outros + + Opções de uso geral. + */ + /* + Valor: LISTATRUETYPE + + Lista as fontes truetype disponíveis. + */ + case "LISTATRUETYPE": + $retorno = listaTrueType(); + restauraCon($map_file,$postgis_mapa); + break; + /* + Valor: AREAPIXEL + + Calcula a área de um pixel da imagem. + */ + case "AREAPIXEL": + $retorno = calculaAreaPixel($map_file,$_pg["celsize"]); + break; + /* + Valor: LISTAEPSG + + Pega os codigos de projeção EPSG. + + */ + case "LISTAEPSG": + $retorno = listaEpsg(); + break; + /* + Valor: LISTADIRETORIOS + + Depreciado na V 5.0, use ferramentas/navegarquivos/exec.php + + Lista os diretórios de um diretório. + + */ + case "LISTADIRETORIOS": + $retorno = listaDiretorios($_pg["diretorio"]); + break; + /* + Valor: LISTAARQUIVOS + + Depreciado na V 5.0, use ferramentas/navegarquivos/exec.php + + Lista os arquivos de um diretório. + */ + case "LISTAARQUIVOS": + $retorno = listaArquivos($_pg["diretorio"]); + break; + /* + Depreciado + + Retorna o valor da chave registrada para a API do Google maps + + Essa chave deve ser registrada em i3geo/ms_configura.php + */ + case "CHAVEGOOGLE": + $retorno = $googleApiKey; + break; + /* + Valor: LISTADRIVES + + Pega a lista de drives registrados para o usuário atual. + + A lista de drives é definida no ms_configura e permite que o usuário navegue pelos arquivos do servidor. + */ + case "LISTADRIVES": + include(dirname(__FILE__)."/../ms_configura.php"); + //verifica se está cadastrado + $ipcliente = pegaIPcliente(); + $retorno = array(); + foreach ($navegadoresLocais as $n) + { + if (gethostbyname($n["ip"]) == $ipcliente) + { + $retorno[] = $n["drives"]; + } + } + break; + /* + Valor: LISTAINTERFACES + + Lista as interfaces de abertura de mapas + + Pesquisa na pasta interfaces e na pasta definida em $customDir + */ + case "LISTAINTERFACES": + include(dirname(__FILE__)."/../ms_configura.php"); + $pesquisarEm = array($locaplic."/interface"); + if(isset($customDir) && $customDir != "" && $customDir != "interface"){ + $pesquisarEm[] = $locaplic."/".$customDir; + } + $retorno = array(); + foreach($pesquisarEm as $p){ + $r = listaArquivos($p); + //var_dump($r);exit; + $arqs = $r["arquivos"]; + $ext = $r["extensoes"]; + $nomes = $r["nomes"]; + $n = count($arqs); + for($i=0; $i<$n; $i++){ + if(in_array($ext[$i],array("php","phtml","htm","html"))){ + //verifica se tem a carga do js i3geo.js + $a = $p."/".$nomes[$i]; + $handle = fopen ($a, "r"); + $conteudo = fread ($handle, filesize ($a)); + fclose ($handle); + if(strstr($conteudo,"i3geo.js")){ + $retorno[] = "../".basename($p)."/".$nomes[$i]; + } + } + } + } + break; + +} +if (!connection_aborted()){ + if(isset($map_file) && isset($postgis_mapa) && $map_file != "") + restauraCon($map_file,$postgis_mapa); + //$cp->return_data(); + cpjson($retorno); +} +else{ + exit(); +} +/* + Function: projetaExt + +Projeta uma string com coordenadas geográficas para coordenadas métricas + +Parametros: + +$map_file {string} + +$ext {string} - extensão geográfica com valores separados por espaço ou um par de coordenadas x y + +Return: + +{string} +*/ +function projetaExt($map_file,$ext,$separador=" ") +{ + $ext = str_replace($separador," ",$ext); + $extA = explode(" ",$ext); + $mapa = ms_newMapObj($map_file); + $ponto = false; + if($extA[0] < 180 && $extA[0] > -180) + { + if(count($extA) == 2) + { + $ponto = true; + $extA[] = $extA[0] + 1; + $extA[] = $extA[1] + 1; + } + $rect = ms_newRectObj(); + $rect->setextent($extA[0],$extA[1],$extA[2],$extA[3]); + $prjMapa = $mapa->getProjection(); + $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); + $projOutObj = ms_newprojectionobj($prjMapa); + $rect->project($projInObj, $projOutObj); + if($ponto == false) + { + $ext = $rect->minx." ".$rect->miny." ".$rect->maxx." ".$rect->maxy; + } + else + {$ext = $rect->minx." ".$rect->miny; + } + } + $ext = str_replace(" ",$separador,$ext); + return $ext; +} +/* + Function: alteraclassesPost + +Altera as classes de um tema aplicando novos parâmetros como nome e expressão. + +Include: + +*/ +function alteraclassesPost($ids,$nomes,$exps,$base64="nao",$minScales="",$maxScales=""){ + global $map_file,$_pg; + $m = new Alteraclasse($map_file,$_pg["tema"]); + $m->alteraclasses($ids,$nomes,$exps,$base64,$minScales,$maxScales); + $m->salva(); + $_SESSION["contadorsalva"]++; +} +/* + Function: redesenhaMapa + +Redesenha o mapa e retorna os parâmetros do novo mapa. + +Include: + + +Parametros: + +tipoimagem {String} - tipo de imagem que será gerada nenhum|cinza|sepianormal|sepiaclara +*/ +function redesenhaMapa() +{ + global $_pg,$tempo,$map_file,$postgis_mapa,$utilizacgi,$locmapserv,$interface,$cp; + $tipoimagem = $_pg["tipoimagem"]; + $mapexten = $_pg["mapexten"]; + if($tipoimagem != "nenhum" && $tipoimagem != "") + { + $utilizacgi = "nao"; + } + if (connection_aborted()){ + exit(); + } + if($interface == "googleearth" && $mapexten != ""){ + include_once("classe_navegacao.php"); + $m = new Navegacao($map_file); + $m->mudaExtensao($mapexten); + $m->salva(); + } + include_once("classe_mapa.php"); + $m = New Mapa($map_file); + $par = $m->parametrosTemas(); + // + //na interface googlemaps não é necessário gerar a imagem + // + $e = $m->mapa->extent; + $ext = $e->minx." ".$e->miny." ".$e->maxx." ".$e->maxy; + $res["mapimagem"] = ""; + $res["mapexten"] = $ext; + $res["mapres"] = ""; + $res["erro"] = ""; + $res["mapscale"] = ""; + $res["pixelsize"] = ""; + $res["mapimagem"] = ""; + $res["w"] = $m->mapa->width; + $res["h"] = $m->mapa->height; + $res["mappath"] = ""; + $res["mapurl"] = ""; + $res["mensagens"] = $m->pegaMensagens(); + $res["tempo"] = microtime(1) - $tempo; + restauraCon($map_file,$postgis_mapa); + ob_clean(); + if ($par == "") + { + $retorno = "erro"; + } + else + {$retorno = array("variaveis"=>$res,"temas"=>$par); + } + cpjson($retorno); +} +?> diff --git a/classesphp/sani_request.php b/classesphp/sani_request.php index f2b31bb..5423ccb 100755 --- a/classesphp/sani_request.php +++ b/classesphp/sani_request.php @@ -15,42 +15,44 @@ if (isset($_GET)){ } } } +//array(3) { ["cpaint_function"]=> string(8) "criaMapa" ["cpaint_argument"]=> array(1) { [0]=> string(54) ""funcao=criaMapa&&desligar=mundo&interface=openlayers"" } ["cpaint_response_type"]=> string(4) "JSON" } + if (isset($_POST)){ - foreach(array_keys($_POST) as $k){ - $k = str_ireplace($bl,"",$k); - $k = filter_var($k, FILTER_SANITIZE_STRING); - $_POST[$k] = str_ireplace($bl,"",$_POST[$k]); - if (($_POST[$k] != "''")){ - $_POST[$k] = strip_tags(trim($_POST[$k])); + if (isset($_POST["cpaint_argument"]) && $_POST["cpaint_argument"][0] != "") + { + //var_dump( $_POST["cpaint_argument"]);exit; + $argumento_ = $_POST["cpaint_argument"][0]; + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ + $argumento_ = str_replace("\\\"","",$argumento_); + } + else{ + $argumento_ = str_replace("\"","",$argumento_); } - if (($_POST[$k] != "''") && ($k == "cpaint_argument")) - { - foreach($_POST["cpaint_argument"] as $argumento_) - { - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) - {$argumento_ = str_replace("\\\"","",$argumento_);} - else - {$argumento_ = str_replace("\"","",$argumento_);} - $argumento_ = explode('"',$argumento_); - $argumento_ = implode("&",$argumento_); - $parametros_ = explode("&",$argumento_); - foreach($parametros_ as $parametro_) - { - $p_ = explode("=",$parametro_); - $parametro = $p_[0]; - $p_ = array_slice($p_, 1, count($p_)); - $valor_ = implode("=",$p_); - if($parametro != ""){ - $valor_ = str_replace("'","*#*",$valor_); - $valor_ = trim($valor_); - $parametro = filter_var($parametro, FILTER_SANITIZE_STRING); - $valor = filter_var($valor, FILTER_SANITIZE_STRING); - $_POST[$parametro] = str_replace('*#*',"'",$valor_); - //eval("\$".$parametro."='".(trim($valor_))."';"); - //eval("\$".$parametro."=str_replace('*#*','\'',\$".$parametro.");"); - } - } + $argumento_ = explode('"',$argumento_); + $argumento_ = implode("&",$argumento_); + $parametros_ = explode("&",$argumento_); + foreach($parametros_ as $parametro_){ + $p_ = explode("=",$parametro_); + $parametro = $p_[0]; + $p_ = array_slice($p_, 1, count($p_)); + $valor_ = implode("=",$p_); + if($parametro != ""){ + $valor_ = str_replace("'","*#*",$valor_); + $valor_ = trim($valor_); + $parametro = filter_var($parametro, FILTER_SANITIZE_STRING); + $valor = filter_var($valor, FILTER_SANITIZE_STRING); + $_POST[$parametro] = str_replace('*#*',"'",$valor_); + } + } + } + else{ + foreach(array_keys($_POST) as $k){ + $k = str_ireplace($bl,"",$k); + $k = filter_var($k, FILTER_SANITIZE_STRING); + $_POST[$k] = str_ireplace($bl,"",$_POST[$k]); + if (($_POST[$k] != "''")){ + $_POST[$k] = strip_tags(trim($_POST[$k])); } } } -- libgit2 0.21.2