Commit 1b30c3bad19c47242e628aff2e536e1c4cecfee1

Authored by Edmar Moretti
1 parent 713ef099

Alteração nas opções de salvar um mapa no banco de dados. Essa opção foi retidad…

…a da interface do mapa interativo e agora fica apenas no sistema de administração
admin/admin.db
No preview for this file type
admin/php/mapas.php
... ... @@ -1,329 +0,0 @@
1   -<?php
2   -/*
3   -Title: mapas.php
4   -
5   -Fun&ccedil;&otilde;es utilizadas pelo editor do cadastro de mapas (links).
6   -
7   -&Eacute; utilizado nas fun&ccedil;&otilde;es em AJAX da interface de edi&ccedil;&atilde;o dos links para mapas
8   -
9   -Licenca:
10   -
11   -GPL2
12   -
13   -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
14   -
15   -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
16   -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
17   -
18   -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
19   -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
20   -GNU conforme publicada pela Free Software Foundation;
21   -
22   -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
23   -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
24   -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
25   -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
26   -Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
27   - GNU junto com este programa; se n&atilde;o, escreva para a
28   -Free Software Foundation, Inc., no endere&ccedil;o
29   -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
30   -
31   -Arquivo:
32   -
33   -i3geo/admin/php/mapas.php
34   -
35   -Parametros:
36   -
37   -O par&acirc;metro principal &eacute; "funcao", que define qual opera&ccedil;&atilde;o ser&aacute; executada, por exemplo, mapas.php?funcao=pegamapas.
38   -
39   -Cada opera&ccedil;&atilde;o possu&iacute; seus pr&oacute;prios par&acirc;metros, que devem ser enviados tamb&eacute;m na requisi&ccedil;&atilde;o da opera&ccedil;&atilde;o.
40   -
41   -*/
42   -include_once(dirname(__FILE__)."/login.php");
43   -$funcoesEdicao = array(
44   - "ALTERARMAPA",
45   - "EXCLUIRMAPA",
46   - "SALVAMAPFILE"
47   -);
48   -if(in_array(strtoupper($funcao),$funcoesEdicao)){
49   - if(verificaOperacaoSessao("admin/html/mapas") == false){
50   - retornaJSON("Vc nao pode realizar essa operacao. Tente fazer login novamente.");exit;
51   - }
52   -}
53   -$id = $_GET["id"];
54   -$id_mapa = $_GET["id_mapa"];
55   -testaSafeNumerico([$id,$id_mapa]);
56   -
57   -
58   -//error_reporting(0);
59   -//faz a busca da fun&ccedil;&atilde;o que deve ser executada
60   -switch (strtoupper($funcao))
61   -{
62   - /*
63   - Note:
64   -
65   - Valores que o par&acirc;metro &funcao pode receber. Os par&acirc;metros devem ser enviados na requisi&ccedil;&atilde;o em AJAX.
66   - */
67   - /*
68   - Valor: PEGAMAPAS
69   -
70   - Lista os links existentes
71   -
72   - Retorno:
73   -
74   - {JSON}
75   - */
76   - case "PEGAMAPAS":
77   - $semmapfile = pegaDados("SELECT id_mapa,nome_mapa,ordem_mapa,'nao' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile = '' or mapfile is null order by ordem_mapa");
78   - $commapfile = pegaDados("SELECT id_mapa,nome_mapa,ordem_mapa,'sim' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile != '' and mapfile is not null order by ordem_mapa");
79   - retornaJSON(array_merge($semmapfile,$commapfile));
80   - exit;
81   - break;
82   - /*
83   - Valor: PEGADADOSMAPA
84   -
85   - Lista os dados de um link
86   -
87   - Parametro:
88   -
89   - id_mapa {string}
90   -
91   - Retorno:
92   -
93   - {JSON}
94   - */
95   - case "PEGADADOSMAPA":
96   - $dadosMapa = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_mapas where id_mapa =".$id_mapa);
97   - retornaJSON($dadosMapa);
98   - exit;
99   - break;
100   - /*
101   - Valor: ALTERARMAPA
102   -
103   - Altera os dados de um link
104   -
105   - Parametro:
106   -
107   - publicado_mapa
108   -
109   - ordem_mapa
110   -
111   - id_mapa
112   -
113   - desc_mapa
114   -
115   - ext_mapa
116   -
117   - imagem_mapa
118   -
119   - outros_mapa
120   -
121   - nome_mapa
122   -
123   - linkdireto_mapa
124   -
125   - temas_mapa
126   -
127   - ligados_mapa
128   -
129   - perfil_mapa
130   -
131   - Retorno:
132   -
133   - {JSON}
134   - */
135   - case "ALTERARMAPA":
136   - $novo = alterarMapa();
137   - $sql = "SELECT * from ".$esquemaadmin."i3geoadmin_mapas WHERE id_mapa = '".$novo."'";
138   - retornaJSON(pegaDados($sql));
139   - exit;
140   - break;
141   - /*
142   - Valor: EXCLUIRMAPA
143   -
144   - Exclui um link
145   -
146   - Parametro:
147   -
148   - id {string}
149   -
150   - Retorno:
151   -
152   - {JSON}
153   - */
154   - case "EXCLUIRMAPA":
155   - retornaJSON(excluirMapa());
156   - exit;
157   - break;
158   - /*
159   - Valor: SALVAMAPFILE
160   -
161   - Salva um mapfile no banco
162   -
163   - Parametro:
164   -
165   - url {string} - url de acesso a interface do mapa que iniciou o processo de salvar o mapa
166   -
167   - titulo {string} - titulo do mapa
168   -
169   - mapfile {string} - mapfile na pasta tempor&aacute;ria
170   -
171   - Retorno:
172   -
173   - {JSON}
174   - */
175   - case "SALVAMAPFILE":
176   - retornaJSON(salvaMapfile());
177   - exit;
178   - break;
179   -}
180   -function salvaMapfile(){
181   - global $esquemaadmin,$id_mapa;
182   - //as preferencias sao criadas via javascript e guardadas junto com o mapa
183   - try{
184   - //
185   - //as configuracoes especiais do mapa, definidas nas preferencias ou em ferramentas abertas quando o mapa e salvo,
186   - //sao convertidas em base64 do lado do cliente
187   - //esses dados sao entao armazenados como tags METADATA no mapfile
188   - //quando o mapa e restaurado, esses valores sao recuperados
189   - //a string que vai no metadata segue o padrao JSON
190   - //o parser para reconstruir os valores e feito em javascript, no cliente
191   - //
192   - $_GET["arqmapfile"] = str_replace(".map","",$_GET["arqmapfile"]);
193   - $_GET["arqmapfile"] = str_replace(".","",$_GET["arqmapfile"]).".map";
194   - $customizacoesinit = array();
195   - if(isset($_GET["preferenciasbase64"]) || isset($_GET["geometriasbase64"]) || isset($_GET["graficosbase64"]) || isset($_GET["tabelasbase64"])){
196   - $customizacoesinit[] = '"preferenciasbase64":"'.$_GET["preferenciasbase64"].'"';
197   - $customizacoesinit[] = '"geometriasbase64":"'.$_GET["geometriasbase64"].'"';
198   - $customizacoesinit[] = '"graficosbase64":"'.$_GET["graficosbase64"].'"';
199   - $customizacoesinit[] = '"tabelasbase64":"'.$_GET["tabelasbase64"].'"';
200   - $m = ms_newMapObj($_GET["arqmapfile"]);
201   - $m->setmetadata("CUSTOMIZACOESINIT",'{'.implode(",",$customizacoesinit).'}');
202   - $m->save($_GET["arqmapfile"]);
203   - }
204   - if($_GET["ext"] && $_GET["ext"] != ""){
205   - $e = explode(" ",$_GET["ext"]);
206   - $m = ms_newMapObj($_GET["arqmapfile"]);
207   - $extatual = $m->extent;
208   - $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3])));
209   - $m->save($_GET["arqmapfile"]);
210   - }
211   - $handle = fopen ($_GET["arqmapfile"], 'r');
212   - $conteudo = fread ($handle, filesize ($_GET["arqmapfile"]));
213   - fclose ($handle);
214   - //$conteudo = base64_encode($conteudo);
215   - $conteudo = str_replace("'","_!_",$conteudo);
216   - $conteudo = str_replace('"',"_!!_",$conteudo);
217   - $conteudo = str_replace(array("<?","?>"),"",$conteudo);
218   -
219   - require_once("conexao.php");
220   - if($convUTF){
221   - $_GET["nome_mapa"] = utf8_encode($_GET["nome_mapa"]);
222   - $conteudo = utf8_encode($conteudo);
223   - }
224   - $retorna = "";
225   - if(empty($id_mapa)){
226   - $dataCol = array(
227   - "publicado_mapa" => '',
228   - "ordem_mapa" => 0,
229   - "perfil_mapa" => '',
230   - "desc_mapa" => '',
231   - "ext_mapa" => '',
232   - "imagem_mapa" => '',
233   - "linkdireto_mapa" => '',
234   - "outros_mapa" => '',
235   - "temas_mapa" => '',
236   - "ligados_mapa" => '',
237   - "nome_mapa" => ''
238   - );
239   - $id = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_mapas",$dataCol,"nome_mapa","id_mapa");
240   - }
241   - else{
242   - $id = $id_mapa;
243   - }
244   - if (filter_var($id, FILTER_VALIDATE_INT) === false){
245   - return array("id"=>"","status"=>"Error!: ");
246   - }
247   - $dataCol = array(
248   - "mapfile" => $conteudo,
249   - "publicado_mapa" => "sim",
250   - "nome_mapa" => $_GET["nome_mapa"],
251   - "outros_mapa" => "&restauramapa=$id&interface=".$_GET["url"]
252   - );
253   - i3GeoAdminUpdate($dbhw,"i3geoadmin_mapas",$dataCol, "WHERE id_mapa =".$id);
254   - $dbhw = null;
255   - $dbh = null;
256   - return array("id"=>$id,"status"=>"ok");
257   - }
258   - catch (PDOException $e){
259   - return array("id"=>"","status"=>"Error!: ");
260   - }
261   -}
262   -/*
263   -Altera o registro de um mapa
264   -*/
265   -function alterarMapa(){
266   - global $esquemaadmin,$id_mapa;
267   - //substitui a string do parametro outros
268   - $_GET["outros_mapa"] = str_replace("*","&",$_GET["outros_mapa"]);
269   - try{
270   - require_once("conexao.php");
271   - if($convUTF){
272   - $_GET["nome_mapa"] = utf8_encode($_GET["nome_mapa"]);
273   - $_GET["desc_mapa"] = utf8_encode($_GET["desc_mapa"]);
274   - }
275   - $retorna = "";
276   - if($id_mapa != ""){
277   - $dataCol = array(
278   - "publicado_mapa" => $_GET["publicado_mapa"],
279   - "ordem_mapa" => $_GET["ordem_mapa"],
280   - "desc_mapa" => $_GET["desc_mapa"],
281   - "ext_mapa" => $_GET["ext_mapa"],
282   - "imagem_mapa" => $_GET["imagem_mapa"],
283   - "outros_mapa" => $_GET["outros_mapa"],
284   - "nome_mapa" => $_GET["nome_mapa"],
285   - "linkdireto_mapa" => $_GET["linkdireto_mapa"],
286   - "temas_mapa" => $_GET["temas_mapa"],
287   - "ligados_mapa" => $_GET["ligados_mapa"],
288   - "perfil_mapa" => $_GET["perfil_mapa"]
289   - );
290   - i3GeoAdminUpdate($dbhw,"i3geoadmin_mapas",$dataCol, "WHERE id_mapa =".$id_mapa);
291   - $retorna = $id_mapa;
292   - }
293   - else{
294   - $dataCol = array(
295   - "publicado_mapa" => '',
296   - "ordem_mapa" => 0,
297   - "perfil_mapa" => '',
298   - "desc_mapa" => '',
299   - "ext_mapa" => '',
300   - "imagem_mapa" => '',
301   - "linkdireto_mapa" => '',
302   - "outros_mapa" => '',
303   - "temas_mapa" => '',
304   - "ligados_mapa" => '',
305   - "nome_mapa" => '',
306   - "mapfile" => ''
307   - );
308   - $id = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_mapas",$dataCol,"nome_mapa","id_mapa");
309   - $retorna = $id;
310   - }
311   - $dbhw = null;
312   - $dbh = null;
313   - return $retorna;
314   - }
315   - catch (PDOException $e){
316   - return "Error!: ";
317   - }
318   -}
319   -function excluirMapa(){
320   - global $id,$esquemaadmin;
321   - try{
322   - exclui($esquemaadmin."i3geoadmin_mapas","id_mapa",$id);
323   - return "ok";
324   - }
325   - catch (PDOException $e){
326   - return "Error!: ";
327   - }
328   -}
329   -?>
330 0 \ No newline at end of file
admin/php/xxxmapas.php 0 → 100755
... ... @@ -0,0 +1,329 @@
  1 +<?php
  2 +/*
  3 +Title: mapas.php
  4 +
  5 +Fun&ccedil;&otilde;es utilizadas pelo editor do cadastro de mapas (links).
  6 +
  7 +&Eacute; utilizado nas fun&ccedil;&otilde;es em AJAX da interface de edi&ccedil;&atilde;o dos links para mapas
  8 +
  9 +Licenca:
  10 +
  11 +GPL2
  12 +
  13 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  14 +
  15 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  16 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  17 +
  18 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  19 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  20 +GNU conforme publicada pela Free Software Foundation;
  21 +
  22 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  23 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  24 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  25 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  26 +Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
  27 + GNU junto com este programa; se n&atilde;o, escreva para a
  28 +Free Software Foundation, Inc., no endere&ccedil;o
  29 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  30 +
  31 +Arquivo:
  32 +
  33 +i3geo/admin/php/mapas.php
  34 +
  35 +Parametros:
  36 +
  37 +O par&acirc;metro principal &eacute; "funcao", que define qual opera&ccedil;&atilde;o ser&aacute; executada, por exemplo, mapas.php?funcao=pegamapas.
  38 +
  39 +Cada opera&ccedil;&atilde;o possu&iacute; seus pr&oacute;prios par&acirc;metros, que devem ser enviados tamb&eacute;m na requisi&ccedil;&atilde;o da opera&ccedil;&atilde;o.
  40 +
  41 +*/
  42 +include_once(dirname(__FILE__)."/login.php");
  43 +$funcoesEdicao = array(
  44 + "ALTERARMAPA",
  45 + "EXCLUIRMAPA",
  46 + "SALVAMAPFILE"
  47 +);
  48 +if(in_array(strtoupper($funcao),$funcoesEdicao)){
  49 + if(verificaOperacaoSessao("admin/html/mapas") == false){
  50 + retornaJSON("Vc nao pode realizar essa operacao. Tente fazer login novamente.");exit;
  51 + }
  52 +}
  53 +$id = $_GET["id"];
  54 +$id_mapa = $_GET["id_mapa"];
  55 +testaSafeNumerico([$id,$id_mapa]);
  56 +
  57 +
  58 +//error_reporting(0);
  59 +//faz a busca da fun&ccedil;&atilde;o que deve ser executada
  60 +switch (strtoupper($funcao))
  61 +{
  62 + /*
  63 + Note:
  64 +
  65 + Valores que o par&acirc;metro &funcao pode receber. Os par&acirc;metros devem ser enviados na requisi&ccedil;&atilde;o em AJAX.
  66 + */
  67 + /*
  68 + Valor: PEGAMAPAS
  69 +
  70 + Lista os links existentes
  71 +
  72 + Retorno:
  73 +
  74 + {JSON}
  75 + */
  76 + case "PEGAMAPAS":
  77 + $semmapfile = pegaDados("SELECT id_mapa,nome_mapa,ordem_mapa,'nao' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile = '' or mapfile is null order by ordem_mapa");
  78 + $commapfile = pegaDados("SELECT id_mapa,nome_mapa,ordem_mapa,'sim' as contemmapfile from ".$esquemaadmin."i3geoadmin_mapas where mapfile != '' and mapfile is not null order by ordem_mapa");
  79 + retornaJSON(array_merge($semmapfile,$commapfile));
  80 + exit;
  81 + break;
  82 + /*
  83 + Valor: PEGADADOSMAPA
  84 +
  85 + Lista os dados de um link
  86 +
  87 + Parametro:
  88 +
  89 + id_mapa {string}
  90 +
  91 + Retorno:
  92 +
  93 + {JSON}
  94 + */
  95 + case "PEGADADOSMAPA":
  96 + $dadosMapa = pegaDados("SELECT * from ".$esquemaadmin."i3geoadmin_mapas where id_mapa =".$id_mapa);
  97 + retornaJSON($dadosMapa);
  98 + exit;
  99 + break;
  100 + /*
  101 + Valor: ALTERARMAPA
  102 +
  103 + Altera os dados de um link
  104 +
  105 + Parametro:
  106 +
  107 + publicado_mapa
  108 +
  109 + ordem_mapa
  110 +
  111 + id_mapa
  112 +
  113 + desc_mapa
  114 +
  115 + ext_mapa
  116 +
  117 + imagem_mapa
  118 +
  119 + outros_mapa
  120 +
  121 + nome_mapa
  122 +
  123 + linkdireto_mapa
  124 +
  125 + temas_mapa
  126 +
  127 + ligados_mapa
  128 +
  129 + perfil_mapa
  130 +
  131 + Retorno:
  132 +
  133 + {JSON}
  134 + */
  135 + case "ALTERARMAPA":
  136 + $novo = alterarMapa();
  137 + $sql = "SELECT * from ".$esquemaadmin."i3geoadmin_mapas WHERE id_mapa = '".$novo."'";
  138 + retornaJSON(pegaDados($sql));
  139 + exit;
  140 + break;
  141 + /*
  142 + Valor: EXCLUIRMAPA
  143 +
  144 + Exclui um link
  145 +
  146 + Parametro:
  147 +
  148 + id {string}
  149 +
  150 + Retorno:
  151 +
  152 + {JSON}
  153 + */
  154 + case "EXCLUIRMAPA":
  155 + retornaJSON(excluirMapa());
  156 + exit;
  157 + break;
  158 + /*
  159 + Valor: SALVAMAPFILE
  160 +
  161 + Salva um mapfile no banco
  162 +
  163 + Parametro:
  164 +
  165 + url {string} - url de acesso a interface do mapa que iniciou o processo de salvar o mapa
  166 +
  167 + titulo {string} - titulo do mapa
  168 +
  169 + mapfile {string} - mapfile na pasta tempor&aacute;ria
  170 +
  171 + Retorno:
  172 +
  173 + {JSON}
  174 + */
  175 + case "SALVAMAPFILE":
  176 + retornaJSON(salvaMapfile());
  177 + exit;
  178 + break;
  179 +}
  180 +function salvaMapfile(){
  181 + global $esquemaadmin,$id_mapa;
  182 + //as preferencias sao criadas via javascript e guardadas junto com o mapa
  183 + try{
  184 + //
  185 + //as configuracoes especiais do mapa, definidas nas preferencias ou em ferramentas abertas quando o mapa e salvo,
  186 + //sao convertidas em base64 do lado do cliente
  187 + //esses dados sao entao armazenados como tags METADATA no mapfile
  188 + //quando o mapa e restaurado, esses valores sao recuperados
  189 + //a string que vai no metadata segue o padrao JSON
  190 + //o parser para reconstruir os valores e feito em javascript, no cliente
  191 + //
  192 + $_GET["arqmapfile"] = str_replace(".map","",$_GET["arqmapfile"]);
  193 + $_GET["arqmapfile"] = str_replace(".","",$_GET["arqmapfile"]).".map";
  194 + $customizacoesinit = array();
  195 + if(isset($_GET["preferenciasbase64"]) || isset($_GET["geometriasbase64"]) || isset($_GET["graficosbase64"]) || isset($_GET["tabelasbase64"])){
  196 + $customizacoesinit[] = '"preferenciasbase64":"'.$_GET["preferenciasbase64"].'"';
  197 + $customizacoesinit[] = '"geometriasbase64":"'.$_GET["geometriasbase64"].'"';
  198 + $customizacoesinit[] = '"graficosbase64":"'.$_GET["graficosbase64"].'"';
  199 + $customizacoesinit[] = '"tabelasbase64":"'.$_GET["tabelasbase64"].'"';
  200 + $m = ms_newMapObj($_GET["arqmapfile"]);
  201 + $m->setmetadata("CUSTOMIZACOESINIT",'{'.implode(",",$customizacoesinit).'}');
  202 + $m->save($_GET["arqmapfile"]);
  203 + }
  204 + if($_GET["ext"] && $_GET["ext"] != ""){
  205 + $e = explode(" ",$_GET["ext"]);
  206 + $m = ms_newMapObj($_GET["arqmapfile"]);
  207 + $extatual = $m->extent;
  208 + $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3])));
  209 + $m->save($_GET["arqmapfile"]);
  210 + }
  211 + $handle = fopen ($_GET["arqmapfile"], 'r');
  212 + $conteudo = fread ($handle, filesize ($_GET["arqmapfile"]));
  213 + fclose ($handle);
  214 + //$conteudo = base64_encode($conteudo);
  215 + $conteudo = str_replace("'","_!_",$conteudo);
  216 + $conteudo = str_replace('"',"_!!_",$conteudo);
  217 + $conteudo = str_replace(array("<?","?>"),"",$conteudo);
  218 +
  219 + require_once("conexao.php");
  220 + if($convUTF){
  221 + $_GET["nome_mapa"] = utf8_encode($_GET["nome_mapa"]);
  222 + $conteudo = utf8_encode($conteudo);
  223 + }
  224 + $retorna = "";
  225 + if(empty($id_mapa)){
  226 + $dataCol = array(
  227 + "publicado_mapa" => '',
  228 + "ordem_mapa" => 0,
  229 + "perfil_mapa" => '',
  230 + "desc_mapa" => '',
  231 + "ext_mapa" => '',
  232 + "imagem_mapa" => '',
  233 + "linkdireto_mapa" => '',
  234 + "outros_mapa" => '',
  235 + "temas_mapa" => '',
  236 + "ligados_mapa" => '',
  237 + "nome_mapa" => ''
  238 + );
  239 + $id = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_mapas",$dataCol,"nome_mapa","id_mapa");
  240 + }
  241 + else{
  242 + $id = $id_mapa;
  243 + }
  244 + if (filter_var($id, FILTER_VALIDATE_INT) === false){
  245 + return array("id"=>"","status"=>"Error!: ");
  246 + }
  247 + $dataCol = array(
  248 + "mapfile" => $conteudo,
  249 + "publicado_mapa" => "sim",
  250 + "nome_mapa" => $_GET["nome_mapa"],
  251 + "outros_mapa" => "&restauramapa=$id&interface=".$_GET["url"]
  252 + );
  253 + i3GeoAdminUpdate($dbhw,"i3geoadmin_mapas",$dataCol, "WHERE id_mapa =".$id);
  254 + $dbhw = null;
  255 + $dbh = null;
  256 + return array("id"=>$id,"status"=>"ok");
  257 + }
  258 + catch (PDOException $e){
  259 + return array("id"=>"","status"=>"Error!: ");
  260 + }
  261 +}
  262 +/*
  263 +Altera o registro de um mapa
  264 +*/
  265 +function alterarMapa(){
  266 + global $esquemaadmin,$id_mapa;
  267 + //substitui a string do parametro outros
  268 + $_GET["outros_mapa"] = str_replace("*","&",$_GET["outros_mapa"]);
  269 + try{
  270 + require_once("conexao.php");
  271 + if($convUTF){
  272 + $_GET["nome_mapa"] = utf8_encode($_GET["nome_mapa"]);
  273 + $_GET["desc_mapa"] = utf8_encode($_GET["desc_mapa"]);
  274 + }
  275 + $retorna = "";
  276 + if($id_mapa != ""){
  277 + $dataCol = array(
  278 + "publicado_mapa" => $_GET["publicado_mapa"],
  279 + "ordem_mapa" => $_GET["ordem_mapa"],
  280 + "desc_mapa" => $_GET["desc_mapa"],
  281 + "ext_mapa" => $_GET["ext_mapa"],
  282 + "imagem_mapa" => $_GET["imagem_mapa"],
  283 + "outros_mapa" => $_GET["outros_mapa"],
  284 + "nome_mapa" => $_GET["nome_mapa"],
  285 + "linkdireto_mapa" => $_GET["linkdireto_mapa"],
  286 + "temas_mapa" => $_GET["temas_mapa"],
  287 + "ligados_mapa" => $_GET["ligados_mapa"],
  288 + "perfil_mapa" => $_GET["perfil_mapa"]
  289 + );
  290 + i3GeoAdminUpdate($dbhw,"i3geoadmin_mapas",$dataCol, "WHERE id_mapa =".$id_mapa);
  291 + $retorna = $id_mapa;
  292 + }
  293 + else{
  294 + $dataCol = array(
  295 + "publicado_mapa" => '',
  296 + "ordem_mapa" => 0,
  297 + "perfil_mapa" => '',
  298 + "desc_mapa" => '',
  299 + "ext_mapa" => '',
  300 + "imagem_mapa" => '',
  301 + "linkdireto_mapa" => '',
  302 + "outros_mapa" => '',
  303 + "temas_mapa" => '',
  304 + "ligados_mapa" => '',
  305 + "nome_mapa" => '',
  306 + "mapfile" => ''
  307 + );
  308 + $id = i3GeoAdminInsertUnico($dbhw,"i3geoadmin_mapas",$dataCol,"nome_mapa","id_mapa");
  309 + $retorna = $id;
  310 + }
  311 + $dbhw = null;
  312 + $dbh = null;
  313 + return $retorna;
  314 + }
  315 + catch (PDOException $e){
  316 + return "Error!: ";
  317 + }
  318 +}
  319 +function excluirMapa(){
  320 + global $id,$esquemaadmin;
  321 + try{
  322 + exclui($esquemaadmin."i3geoadmin_mapas","id_mapa",$id);
  323 + return "ok";
  324 + }
  325 + catch (PDOException $e){
  326 + return "Error!: ";
  327 + }
  328 +}
  329 +?>
0 330 \ No newline at end of file
... ...
admin1/black_editor.php
... ... @@ -15,30 +15,25 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
15 15 }
16 16 ?>
17 17 <!DOCTYPE html>
18   -<html>
  18 +<html lang="pt-br">
19 19 <head>
20 20 <meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile">
21 21 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
22 22 <meta name="viewport"
23 23 content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0">
24 24 <title>i3GEO - OpenLayers</title>
25   -<script src="../pacotes/ol3/ol.js"></script>
26   -<script src="../js/i3geonaocompacto.js"></script>
  25 +<script src="../pacotes/ol4/ol.js"></script>
  26 +<script src="../js/i3geo.js"></script>
27 27 <!-- lista com os links que serao mostrados na guia ferramentas -->
28 28 <script src="../js/listaDeFerramentas.js"></script>
29 29 <!-- configuracoes default tipo pode ser OL (openLayers) ou GM (googlemaps) -->
30 30 <script src="../interface/config.php?tipo=OL"></script>
31   -<script src="../admin1/js/core.js"></script>
32   -<link rel="stylesheet" type="text/css" href="../pacotes/ol3/ol.css">
  31 +<link rel="stylesheet" type="text/css" href="../pacotes/ol4/ol.css">
33 32 <link rel="stylesheet" type="text/css" href="../pacotes/bootstrap/css/bootstrap.min.css">
34 33 <link rel="stylesheet" type="text/css" href="../pacotes/bootstrap-material-design/dist/css/bootstrap-material-design.min.css">
35 34 <!-- <link rel="stylesheet" type="text/css" href="../pacotes/bootstrap-accessibility-plugin/plugins/js/bootstrap-accessibility.min.js"> -->
36 35 <link rel="stylesheet" type="text/css" href="../css/default.css">
37 36 <style>
38   -.ol-attribution img {
39   - display: none;
40   -}
41   -
42 37 .ol-attribution.ol-uncollapsible {
43 38 height: 2.1em;
44 39 right: 24px;
... ... @@ -118,25 +113,36 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
118 113 </div>
119 114 <!-- barra de icones de navegacao -->
120 115 <div class="ol-i3GEOcontrols ol-control" data-traduzir="true">
121   - <button title="{{{d2t}}}" onclick="i3GEO.Interface.zoom2ext(i3GEO.parametros.extentTotal)" style="float: left;">
122   - <img style="width:20px;" src="../imagens/gisicons/projection.png">
  116 + <button title="{{{d2t}}}" onclick="i3GEO.Interface.zoom2ext(i3GEO.parametros.extentTotal)" style="float: left;">
  117 + <!--<img style="width:20px;" src="../imagens/gisicons/projection.png">-->
  118 + <i class="material-icons">public</i>
123 119 </button>
124 120 <button onclick="i3GEO.Interface.zoomli()" style="float: left;">
125   - <img style="width:20px;" src="../imagens/gisicons/zoom-region.png">
  121 + <!--<img style="width:20px;" src="../imagens/gisicons/zoom-region.png">-->
  122 + <i class="material-icons">zoom_in</i>
126 123 </button>
127 124 <br>
128 125 <button title="{{{volta}}}" onclick="i3GEO.navega.extensaoAnterior()" style="float: left;">
129   - <img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle1.png">
  126 + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle1.png">-->
  127 + <i class="material-icons">undo</i>
130 128 </button>
131 129 <button title="{{{avanca}}}" onclick="i3GEO.navega.extensaoProximo()" style="float: left;">
132   - <img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle2.png">
  130 + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle2.png">-->
  131 + <i class="material-icons">redo</i>
133 132 </button>
134 133 <br>
135   - <button class="hidden-xs hidden-sm" title="{{{x79}}}" data-template="../interface/templates/ferramentasLink.html" onclick="i3GEO.marcador.inicia(this)" style="float: left;">
136   - <img style="width:20px;" src="../imagens/gisicons/save1.png">
  134 + <button title="{{{graticule}}}" onclick="i3GEO.Interface.grade()" style="float: left;">
  135 + <!--<img style="width:16px;" src="../imagens/gisicons/graticule.png">-->
  136 + <i class="material-icons">grid_on</i>
  137 + </button>
  138 + <button class="hidden-xs hidden-sm" title="{{{x79}}}" data-template="../interface/templates/ferramentasSend.html" onclick="i3GEO.marcador.inicia(this)" style="float: left;">
  139 + <!--<img style="width:20px;" src="../imagens/gisicons/save1.png">-->
  140 + <i class="material-icons">bookmark_border</i>
137 141 </button>
  142 + <br>
138 143 <button class="hidden-xs hidden-sm" title="{{{d9}}}" onclick="i3GEO.maparef.inicia()" style="float: left;">
139   - <img style="width:20px;" src="../imagens/gisicons/map-reference.png">
  144 + <!--<img style="width:20px;" src="../imagens/gisicons/map-reference.png">-->
  145 + <i class="material-icons">picture_in_picture</i>
140 146 </button>
141 147 </div>
142 148 <!--barra de progresso que e mostrada conforme as camadas sao desenhadas no mapa. Esse elemento deve ter o id="i3GEOprogressoCamadas" -->
... ... @@ -156,15 +162,15 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
156 162 <!-- configuracao para todos os botoes
157 163 data-idconteudo - id do DIV que contem o conteudo da guia e que sera mostrado ao ser clicado
158 164 -->
159   - <div class="iconesGuiaMovel" data-traduzir="true" style="right:0px;border-radius:4px; padding:2px;cursor: pointer; position: absolute; top: 5px; width: auto; z-index: 5000; background-color: rgba(255,255,255,.4);">
  165 + <div class="iconesGuiaMovel ol-control" data-traduzir="true">
160 166 <!-- ferramentas
161 167 data-idLista - id do DIV dentro de idconteudo que sera utilizado para mostrar as "pastas" que abrem o proximo nivel
162 168 data-idLinks - id do DIV dentro de idconteudo que sera utilizado para mostrar a lista de links que abre cada ferramenta
163 169 data-idMigalha - id do DIV que sera utilizado para mostrar o link de retorno ao nivel anterior
164 170 -->
165 171 <div data-idconteudo="guia8obj" data-idLinks="listaFerramentasLinks" data-idMigalha="migalhaFerramentas" data-idLista="listaFerramentas" onclick="i3GEO.guias.ativa('ferramentas',this)">
166   - <button title="{{{u15a}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
167   - <img src="../imagens/gisicons/tools.png" style="cursor: pointer; padding: 3px;">
  172 + <button title="{{{iconeFerramentas}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  173 + <i class="material-icons">business_center</i>
168 174 </button>
169 175 </div>
170 176 <!-- temas existentes no mapa
... ... @@ -175,8 +181,8 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
175 181 do metadata existente na camada. Deixe vazio para nao ativar a operacao.
176 182 -->
177 183 <div onclick="i3GEO.guias.ativa('temas',this)" data-verificaAbrangencia="" data-idconteudo="guia1obj" data-idListaFundo="listaFundo" data-idListaDeCamadas="listaTemas" style="margin-top: 3px;">
178   - <button title="{{{g4a}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
179   - <img src="../imagens/layer.png" style="cursor: pointer; padding: 3px;">
  184 + <button title="{{{iconeMapa}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  185 + <i class="material-icons"><i class="material-icons">visibility</i></i>
180 186 </button>
181 187 </div>
182 188 <!-- catalogo de adicao de temas ao mapa
... ... @@ -188,38 +194,40 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
188 194 Variaveis javascript:
189 195 i3GEO.catalogoMenus.IDSMENUS - (array) apenas os menus com idmenu que constem nessa lista serao mostrados. Por default e vazio.
190 196 -->
191   - <div onclick="i3GEO.guias.ativa('adiciona',this)" data-idconteudo="guia2obj" data-idMigalha="catalogoMigalha" data-idNavegacao="catalogoNavegacao" data-idCatalogo="catalogoPrincipal" data-idMenus="catalogoMenus" style="margin-top: 3px;">
192   - <button title="{{{g1a}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
193   - <img src="../imagens/catalogo.png" style="cursor: pointer; padding: 3px;">
  197 + <div onclick="i3GEO.guias.ativa('adiciona',this)" data-idconteudo="guia2obj" data-idMigalha="catalogoMigalha" data-idNavegacao="catalogoNavegacao" data-idCatalogo="catalogoPrincipal" data-idMenus="catalogoMenus" style="margin-top: 3px;">
  198 + <button title="{{{iconeCatalogo}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  199 + <i class="material-icons">layers</i>
194 200 </button>
195 201 </div>
196 202 <!-- legenda -->
197 203 <div onclick="i3GEO.guias.ativa('legenda',this)" data-idconteudo="guia4obj" data-idLegenda="legendaHtml" style="margin-top: 3px;">
198   - <button title="{{{g3}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
199   - <img src="../imagens/legenda.png" style="cursor: pointer; padding: 3px;">
  204 + <button title="{{{iconeLegenda}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  205 + <i class="material-icons">view_list</i>
200 206 </button>
201 207 </div>
202 208 <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('dobraPagina',this)" style="margin-top: 3px;">
203   - <button title="{{{trocaInterface}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
204   - <img src="../imagens/googlemaps.png" style="cursor: pointer; padding: 3px;">
  209 + <button title="{{{trocaInterface}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  210 + <i class="material-icons">compare_arrows</i>
205 211 </button>
206 212 </div>
207 213 <!-- Busca -->
208 214 <div onclick="i3GEO.guias.ativa('buscaRapida',this)" data-idconteudo="guia7obj" style="margin-top: 3px;">
209   - <button class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
210   - <img src="../imagens/gisicons/search.png" style="cursor: pointer; padding: 3px;">
  215 + <button class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  216 + <i class="material-icons">search</i>
211 217 </button>
212 218 </div>
213 219 <div onclick="i3GEO.guias.ativa('identificaBalao',this)" style="margin-top: 3px;" >
214   - <button title="{{{d7a}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
215   - <img src="../imagens/gisicons/tips.png" style="cursor: pointer; padding: 3px;">
  220 + <button title="{{{iconeBalao}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  221 + <i class="material-icons">location_on</i>
216 222 </button>
217 223 </div>
  224 + <!-- A opcao de identificacao esta integrada ao balao de informacoes, mas pode aparecer aqui tambem
218 225 <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('identifica',this)" style="margin-top: 3px;">
219   - <button title="{{{d7}}}" class="btn btn-default iconeGuiaMovel" style="box-shadow: none;">
  226 + <button title="{{{iconeIdentifica}}}" class="iconeGuiaMovel" style="box-shadow: none;">
220 227 <img src="../imagens/gisicons/pointer-info.png" style="cursor: pointer; padding: 3px;">
221 228 </button>
222 229 </div>
  230 + -->
223 231 </div>
224 232 <!-- veja i3GEO.guias.CONFIGURA -->
225 233 <!-- Os IDs sao definidos no botao que ativa a guia veja: "i3GEOguiaMovel" -->
... ... @@ -228,25 +236,27 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
228 236 <div id="i3GEOguiaMovelConteudo" >
229 237 <!-- camadas existentes no mapa -->
230 238 <div id='guia1obj' data-traduzir="true" style='display: none;'>
231   - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{g4a}}}</span>X</div>
  239 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');">
  240 + <span class="pull-left">{{{iconeMapa}}}</span>X</div>
232 241 <div class="separadorCabecalhoGuias">&nbsp;</div>
233   - <div class="noprint" >
234   - <a href="javascript:void(0)" data-target="#" class="dropdown-toggle" data-toggle="dropdown">
235   - {{{opcoes}}}
236   - <span class="caret"></span>
237   - </a>
238   - <ul class="dropdown-menu">
239   - <li><a onclick="i3GEO.arvoreDeCamadas.atualiza(i3GEO.arvoreDeCamadas.CAMADAS,true)" href="javascript:void(0)" >Refresh</a></li>
240   - <li><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('ligartodos')" href="javascript:void(0)" >{{{t3a}}}</a></li>
241   - <li><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('desligartodos')" href="javascript:void(0)" >{{{t3b}}}</a></li>
242   - <li><a onclick="i3GEO.arvoreDeCamadas.dialogo.excluir()" href="javascript:void(0)" >{{{t12}}}</a></li>
243   - <li><a onclick="i3GEO.arvoreDeCamadas.dialogo.filtro()" href="javascript:void(0)" >{{{t2a}}}</a></li>
244   - <li><a onclick="i3GEO.mapa.dialogo.opacidade()" href="javascript:void(0)" >{{{t20}}}</a></li>
245   - <li><a onclick="i3GEO.mapa.dialogo.animacao()" href="javascript:void(0)" >{{{p21}}}</a></li>
246   - <li><a onclick="i3GEO.mapa.dialogo.imprimir()" href="javascript:void(0)" >{{{d12}}}</a></li>
247   - <li><a onclick="i3GEO.mapa.limpasel()" href="javascript:void(0)" >{{{t4}}}</a></li>
248   - </ul>
  242 + <div class="list-group condensed noprint" >
  243 + <label>{{{opcoes}}}</label>
  244 + <a data-target="#opcoesGuia1" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
  245 + <span class="caret"></span>
  246 + </a>
  247 + <div class="text-left collapse" id="opcoesGuia1" style="margin-left: 30px;">
  248 + <p><a onclick="i3GEO.arvoreDeCamadas.atualiza(i3GEO.arvoreDeCamadas.CAMADAS,true)" href="javascript:void(0)" >Refresh</a></p>
  249 + <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('ligartodos')" href="javascript:void(0)" >{{{t3a}}}</a></p>
  250 + <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('desligartodos')" href="javascript:void(0)" >{{{t3b}}}</a></p>
  251 + <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.excluir()" href="javascript:void(0)" >{{{t12}}}</a></p>
  252 + <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.filtro()" href="javascript:void(0)" >{{{t2a}}}</a></p>
  253 + <p><a onclick="i3GEO.mapa.dialogo.opacidade()" href="javascript:void(0)" >{{{t20}}}</a></p>
  254 + <p><a onclick="i3GEO.mapa.dialogo.animacao()" href="javascript:void(0)" >{{{p21}}}</a></p>
  255 + <p><a onclick="i3GEO.mapa.dialogo.imprimir()" href="javascript:void(0)" >{{{d12}}}</a></p>
  256 + <p><a onclick="i3GEO.mapa.limpasel()" href="javascript:void(0)" >{{{t4}}}</a></p>
  257 + </div>
249 258 </div>
  259 + <hr>
250 260 <!-- Esta div acrescenta a lista de de camadas dispon&iacute;veis no mapa atual -->
251 261 <div id="listaTemas" style="overflow:none;" data-template="../interface/templates/camada.html"></div>
252 262 <!-- Esta div acrescenta a lista de de camadas de fundo
... ... @@ -255,7 +265,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
255 265 no programa interface/config.php
256 266 -->
257 267 <div class="list-group condensed">
258   - <label>Camadas de fundo</label>
  268 + <label>{{{camadasDeFundo}}}</label>
259 269 <a data-target="#collapseFundo" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
260 270 <span class="caret"></span>
261 271 </a>
... ... @@ -268,56 +278,56 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
268 278 </div>
269 279 <!-- Catalogo de temas -->
270 280 <div id='guia2obj' data-traduzir="true" style='display: none; text-align:left;'>
271   - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');i3GEO.catalogoMenus.mostraCatalogoPrincipal();"><span class="pull-left">{{{g1a}}}</span> X</div>
  281 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');i3GEO.catalogoMenus.mostraCatalogoPrincipal();"><span class="pull-left">{{{iconeCatalogo}}}</span> X</div>
272 282 <div class="separadorCabecalhoGuias">&nbsp;</div>
273 283 <!-- aqui entra a lista de elementos quando uma das opcoes e clicada -->
274 284 <div id="catalogoMigalha" data-template="../interface/templates/catalogoMigalha.html"></div>
275 285 <div id="catalogoNavegacao"></div>
276 286 <!-- Opcoes -->
277 287 <div id="catalogoPrincipal">
278   - <div class="noprint" >
279   - <a href="javascript:void(0)" data-target="#" class="dropdown-toggle" data-toggle="dropdown">
280   - {{{opcoes}}}
281   - <span class="caret"></span>
282   - </a>
283   - <ul class="dropdown-menu">
284   - <li>
  288 + <div class="list-group condensed noprint" >
  289 + <label>{{{opcoes}}}</label>
  290 + <a data-target="#opcoesGuia2" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
  291 + <span class="caret"></span>
  292 + </a>
  293 + <div class="text-left collapse" id="opcoesGuia2" style="margin-left: 30px;">
  294 + <p>
285 295 <a href="javascript:void(0)" onclick="i3GEO.login.dialogo.abreLogin()">Login/Logout</a>
286   - </li>
287   -
288   - <li>
289   - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.atualiza()">Refresh</a>
290   - </li>
291   - <li class="divider"></li>
292   - <li>
  296 + </p>
  297 + <p>
  298 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.atualiza()">Refresh</a> -->
  299 + </p>
  300 + <li class="divider"></p>
  301 + <p>
293 302 <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.conectaservico()" >{{{a15}}}</a>
294   - </li>
295   - <li>
  303 + </p>
  304 + <p>
296 305 <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.uploadarquivo()">{{{a14}}}</a>
297   - </li>
298   - <li>
  306 + </p>
  307 + <p>
299 308 <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.downloadbase()">{{{a3}}}</a>
300   - </li>
301   - <li>
  309 + </p>
  310 + <p>
302 311 <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.importarwmc()">{{{a3a}}}</a>
303   - </li>
304   - <li>
305   - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.nuvemTags()">{{{a5a}}}</a>
306   - </li>
307   - <li>
308   - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.carouselTemas()">Miniaturas</a>
309   - </li>
310   - <li>
  312 + </p>
  313 + <p>
  314 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.nuvemTags()">{{{a5a}}}</a> -->
  315 + </p>
  316 + <p>
  317 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.carouselTemas()">Miniaturas</a> -->
  318 + </p>
  319 + <p>
311 320 <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.buscaInde()">Busca na INDE</a>
312   - </li>
313   - <li>
  321 + </p>
  322 + <p>
314 323 <a href="javascript:void(0)" onclick="i3GEO.mapa.dialogo.metaestat()">Cartogramas estatisticos</a>
315   - </li>
316   - <li><a href="http://localhost/i3geo/kml.php?tipoxml=kml" target="_blank">{{{a13}}}</a>
317   - </li>
318   - </ul>
  324 + </p>
  325 + <p><a href="http://localhost/i3geo/kml.php?tipoxml=kml" target="_blank">{{{a13}}}</a>
  326 + </p>
  327 + </div>
319 328 </div>
320   - <!-- busca tema no catalogo -->
  329 + <hr>
  330 + <!-- busca tema no catalogo
321 331 <div class="form-group label-floating">
322 332 <label class="control-label" for="i3GEObuscatema">{{{a1}}}</label>
323 333 <div class="input-group">
... ... @@ -329,6 +339,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
329 339 </span>
330 340 </div>
331 341 </div>
  342 + -->
332 343 <!-- A lista de menus e uma funcao de i3GEO.guias.CONFIGURA.adiciona
333 344 Nessa funcao ficam tambem os parametros:
334 345 "idOndeMenus": "catalogoMenus",
... ... @@ -358,7 +369,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
358 369 <!-- servicos da INDE brasileira -->
359 370 <div class="list-group condensed"><div class="row-content text-left">
360 371 <a onclick="i3GEO.catalogoInde.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
361   - <label style="width: 265px;vertical-align: middle;">
  372 + <label style="width: 255px;vertical-align: middle;">
362 373 <a onclick="i3GEO.catalogoInde.inicia()" role="button" href="javascript:void(0)">
363 374 <h4>INDE-Br</h4></a>
364 375 <h6>Infraestrutura Nacional de Dados Espaciais do Brasil</h6>
... ... @@ -367,7 +378,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
367 378 <!-- lista de wms cadastrados no sistema de administracao -->
368 379 <div class="list-group condensed"><div class="row-content text-left">
369 380 <a onclick="i3GEO.catalogoOgc.inicia();return false;" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
370   - <label style="width: 265px;vertical-align: middle;">
  381 + <label style="width: 255px;vertical-align: middle;">
371 382 <a onclick="i3GEO.catalogoOgc.inicia()" role="button" href="javascript:void(0)">
372 383 <h4>OGC-WMS</h4></a>
373 384 <h6>{{{descOgcWms}}}</h6>
... ... @@ -376,7 +387,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
376 387 <!-- regioes cadastradas no sistema de metadados -->
377 388 <div class="list-group condensed"><div class="row-content text-left">
378 389 <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
379   - <label style="width: 265px;vertical-align: middle;">
  390 + <label style="width: 255px;vertical-align: middle;">
380 391 <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" href="javascript:void(0)">
381 392 <h4>{{{x87}}}</h4></a>
382 393 <h6>{{{descLimLoc}}}</h6>
... ... @@ -385,7 +396,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
385 396 <!-- camadas que vem do sistema de metadados estatisticos -->
386 397 <div class="list-group condensed"><div class="row-content text-left">
387 398 <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
388   - <label style="width: 265px;vertical-align: middle;">
  399 + <label style="width: 255px;vertical-align: middle;">
389 400 <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" href="javascript:void(0)">
390 401 <h4>{{{x57}}}</h4></a>
391 402 <h6>{{{descMeta}}}</h6>
... ... @@ -394,7 +405,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
394 405 <!-- mapas cadastrados no sistema de administracao (nao funcional)
395 406 <div class="list-group condensed"><div class="row-content text-left">
396 407 <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
397   - <label style="width: 265px;vertical-align: middle;">
  408 + <label style="width: 255px;vertical-align: middle;">
398 409 <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" href="javascript:void(0)">
399 410 <h4>{{{x90}}}</h4></a>
400 411 <h6>{{{descMapas}}}</h6>
... ... @@ -404,7 +415,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
404 415 <!-- camadas por estrelas -->
405 416 <div class="list-group condensed"><div class="row-content text-left">
406 417 <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
407   - <label style="width: 265px;vertical-align: middle;">
  418 + <label style="width: 255px;vertical-align: middle;">
408 419 <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" href="javascript:void(0)">
409 420 <h4>{{{t46}}}</h4></a>
410 421 <h6>{{{descEstrelas}}}</h6>
... ... @@ -413,7 +424,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
413 424 <!-- sistemas que adicionam camadas -->
414 425 <div class="list-group condensed"><div class="row-content text-left">
415 426 <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
416   - <label style="width: 265px;vertical-align: middle;">
  427 + <label style="width: 255px;vertical-align: middle;">
417 428 <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" href="javascript:void(0)">
418 429 <h4>{{{a11}}}</h4></a>
419 430 <h6>{{{descSistemas}}}</h6>
... ... @@ -422,7 +433,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
422 433 <!-- navegacao em diretorios -->
423 434 <div class="list-group condensed"><div class="row-content text-left">
424 435 <a onclick="i3GEO.catalogoDir.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
425   - <label style="width: 265px;vertical-align: middle;">
  436 + <label style="width: 255px;vertical-align: middle;">
426 437 <a onclick="i3GEO.catalogoDir.inicia()" role="button" href="javascript:void(0)">
427 438 <h4>{{{a6}}}</h4></a>
428 439 <h6>{{{descDir}}}</h6>
... ... @@ -432,7 +443,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
432 443 </div>
433 444 <!-- Legenda -->
434 445 <div data-traduzir="true" id='guia4obj' style='display: none; text-align: left'>
435   - <div class="i3GEOfechaGuia" onclick="i3GEO.legenda.off('legendaHtml');i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{g3}}}</span>X</div>
  446 + <div class="i3GEOfechaGuia" onclick="i3GEO.legenda.off('legendaHtml');i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeLegenda}}}</span>X</div>
436 447 <div class="separadorCabecalhoGuias">&nbsp;</div>
437 448 <a href='javascript:void(0)' onclick="i3GEO.legenda.inicia({'janela':true})" >{{{x11}}}</a>
438 449 <div id="legendaHtml" data-template="../interface/templates/legenda.html" data-size="35,25" style='display: none; text-align: left'></div>
... ... @@ -443,9 +454,9 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
443 454 Esses parametros indicam qual o checkbox que define o tipo de busca, o local onde os dados serao mostrados e o template para formatar o resultado
444 455 -->
445 456 <div data-traduzir="true" id='guia7obj' style='display: none; text-align: left'>
446   - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{u15a}}}</span> X</div>
  457 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{t23}}}</span> X</div>
447 458 <div class="separadorCabecalhoGuias">&nbsp;</div>
448   - <form>
  459 + <form onSubmit="return false;" >
449 460 <div class="form-group label-floating">
450 461 <label class="control-label" for="valorBuscaRapida">{{{x36}}}</label>
451 462 <div class="input-group">
... ... @@ -506,7 +517,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
506 517 </div>
507 518 <!-- Ferramentas -->
508 519 <div data-traduzir="true" id='guia8obj' style='display: none; text-align: left'>
509   - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{u15a}}}</span> X</div>
  520 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeFerramentas}}}</span> X</div>
510 521 <div class="separadorCabecalhoGuias">&nbsp;</div>
511 522 <div class="form-inline" style="width:100%;">
512 523 <div class="text-center form-group" style="margin:4px;">
... ... @@ -543,7 +554,6 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
543 554 </div>
544 555 </div>
545 556 </div>
546   -
547 557 <!-- para mostrar o banner de abertura -->
548 558 <script id="i3GEOlogoMarcaTemplate" type="x-tmpl-mustache">
549 559 <div>
... ... @@ -567,12 +577,85 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
567 577 //ativa o banner de inicializacao
568 578 i3GEO.janela.tempoMsg($i("i3GEOlogoMarcaTemplate").innerHTML,4000);
569 579 (function() {
  580 + //parametros aplicados na criacao do arquivo mapfile
570 581 var parametrosMapa = {
  582 + //arquivo mapfile que servira de base para a criacao do mapa. Por default, sao utilizados os arquivos existentes em i3geo/aplicmap (geral1windows, geral1,...)
  583 + //Essa variavel pode ser definida em ms_configura tambem. Se nao estiver definida em nenhum lugar, o i3Geo tentara descobrir o arquivo adequado a ser utilizado. Voce pode utilizar essa opcao para abrir um mapa com as camadas que voce quiser, mas para evitar redundâncias, prefira o uso de &temasa
  584 + mapfilebase: "",
  585 + //extensao geografica do mapa
  586 + //deve ser definida em coordenadas no formato decimos de grau e na projecao geografica na sequencia xmin ymin xmax ymax
  587 + //exemplo [-77,-26,-30,6]
  588 + mapext: [],
  589 + //perfil utilizado para restringir os menus de temas mostrando apenas os que correspondem a determinado perfil
  590 + perfil: "",
  591 + //layers que serao adicionados ao mapa.
  592 +
571 593 layers: {
572 594 add: ["<?php echo strip_tags($_GET["temaEdicao"]); ?>"],
573 595 on: ["<?php echo strip_tags($_GET["temaEdicao"]); ?>"],
574 596 off: []
575   - }
  597 + },
  598 + points: {
  599 + //array com a lista de coordenadas
  600 + coord: [],
  601 + //titulo da nova camada
  602 + title: ""
  603 + },
  604 + //lista de coordenadas x e y que serao adicionadas como linhas no mapa
  605 + lines: {
  606 + //array de arrays com a lista de coordenadas de cada linha
  607 + //exemplo [[-54,-12,-50,-12],[-50,-1,-50,-2,-50,-3]]
  608 + coord: [[]],
  609 + //titulo da nova camada
  610 + title:""
  611 + },
  612 + //lista de coordenadas x e y que serao adicionadas como poligonos no mapa
  613 + polygons: {
  614 + //array de arrays com a lista de coordenadas de cada poligono. A primeira coordenada deve ser igual a ultima.
  615 + //exemplo [[-50,-1,-48,-2,-50,-3,-50,-1]]
  616 + coord: [[]],
  617 + //titulo da nova camada
  618 + title:""
  619 + },
  620 + //insere elementos no mapa com coordenadas definidas em wkt
  621 + wkt: {
  622 + //string no formato wkt
  623 + coord: "",
  624 + //titulo da nova camada
  625 + title: ""
  626 + },
  627 + //simbolo que sera utilizado para desenhar os elementos inseridos
  628 + symbol: {
  629 + //codigo do simbolo conforme definido em i3geo/symbols
  630 + name: "",
  631 + //em rgb, exemplo "0 255 0"
  632 + color: "",
  633 + //em pixels
  634 + size: ""
  635 + },
  636 + //arquivo KML que sera incluido no mapa. Valido apenas na interface google maps
  637 + kml: {
  638 + url: ""
  639 + },
  640 + //endereco de um WMS (sera incluido como uma camada no mapa)
  641 + wms: {
  642 + url: "",
  643 + layer: "",
  644 + style: "",
  645 + title: "",
  646 + srs: "",
  647 + imagetype: "",
  648 + version: ""
  649 + },
  650 + //filtros que serao aplicados aos layers. Utilize a expressaso conforme definido na documentacao
  651 + //do mapserver, exemplo
  652 + //{layer: "_lbiomashp",expression: "(('[CD_LEGENDA]'='CAATINGA'))"} ou {layer: "_lbiomashp",expression: "cd_legenda='CAATINGA'"}
  653 + filters: [{
  654 + layer: "",
  655 + expression: ""
  656 + }],
  657 + //id de um mapa salvo e que sera recuperado
  658 + restoreMapId : ""
576 659 };
577 660 var config = {
578 661 //id do elemento HTML onde o corpo do mapa sera renderizado
... ... @@ -593,9 +676,79 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
593 676 i3GeoServer : "",
594 677 //Funcao que sera executada apos a inicializacao do mapa
595 678 afterStart : function(){
  679 + $('.iconeGuiaMovel').tooltip({animation: false, trigger: "manual", placement: "left"});
  680 + $('.iconeGuiaMovel').tooltip('show');
  681 + $("#i3GEOguiaMovelConteudo").mCustomScrollbar({scrollbarPosition: "outside",theme:"inset-2-dark"});
  682 +
596 683 i3GEO.mapa.ativaTema("<?php echo strip_tags($_GET["temaEdicao"]); ?>");
597 684 i3GEO.mapa.dialogo.atalhosedicao();
598 685 },
  686 + //parametros de configuracao de diferentes componentes do mapa, como o catalogo de temas, balao de info, etc
  687 + components : {
  688 + //define se ao clicar no mapa sera feita a busca de atributos nas camadas existentes no mapa
  689 + info: true,
  690 + //template mustache usado para o balao de info
  691 + //se for vazio, utiliza o default interface/templates/info.html
  692 + infoTemplate: "",
  693 + //define se ao clicar no mapa sera feita a busca de atributos nas camadas existentes no mapa
  694 + info: true,
  695 + //lista com os codigos dos menus que serao considerados na montagem do catalogo de temas
  696 + idsMenus : [],
  697 + //webservice utilizado na opcao de encontrar lugares
  698 + searchService : "http://mapas.mma.gov.br/webservices/geonames.php",
  699 + //webservice wms que faz a apresentacao do lugar encontrado por searchService
  700 + searchWms : "http://mapas.mma.gov.br/webservices/geonameswms.php",
  701 + //posicao do mapa de referencia, em pixels [top,right]
  702 + referenceMapPosition : [4,120],
  703 + //propriedades do balao de informacoes mostrado quando o usuario clica no mapa
  704 + tooltip : {
  705 + //o resultado sera mostrado em uma janela do tipo modal
  706 + modal : false,
  707 + //url que sera utilizada para obter os dados via $.get. Deve estar no mesmo dominio do i3Geo.
  708 + //Ao final da url serao inseridos os parametros &xx=&yy= com valores em decimos de grau
  709 + //use apenas se modal for true
  710 + //exemplo: http://i3geo.saude.gov.br/i3geo/sage_tabelas/odm/odm6.php?
  711 + url: "",
  712 + //template que sera usado para compor o resultado da busca de dados
  713 + //se for vazio, serao utilizadas as outras opcoes
  714 + //se contiver a string {{{url}}} a mesma sera substituida por url
  715 + //exemplo: "<iframe style='width:400px;height:190px;border:0px white solid' src='{{{url}}}'></iframe>"
  716 + templateModal: "",
  717 + //serao mostrados todos os dados ou apenas aqueles definidos na configuracao da camada
  718 + simple: true,
  719 + removeAoAdicionar : true,
  720 + //parametros exclusivos da interface openlayers
  721 + autoPan : true,
  722 + autoPanAnimation : {
  723 + duration : 250
  724 + },
  725 + minWidth : '200px',
  726 + //Altura e largura do tooltip (balao)
  727 + toolTipSize : ["100px","200px"]
  728 + },
  729 + //barra de rolagem - ver plugin jquery https://github.com/malihu/malihu-custom-scrollbar-plugin
  730 + scrollBar: {
  731 + theme: "inset-2",
  732 + axis: "yx",
  733 + scrollbarPosition: "inside",
  734 + scrollButtons:{ enable: true },
  735 + advanced:{ autoExpandHorizontalScroll: true }
  736 + }
  737 + },
  738 + //parametros de configuracao das ferramentas que sao acionadas sob demanda
  739 + //ferramentas localizadas em i3geo/ferramentas
  740 + tools : {
  741 + //ferramenta de busca de camadas em um servico CSW
  742 + buscainde : {
  743 + //endereco do servico no padrao CSW
  744 + csw : "http://www.metadados.inde.gov.br/geonetwork/srv/br"
  745 + },
  746 + //ferramenta de identificacao
  747 + identifica : {
  748 + //resolucao em pixels para busca de elementos
  749 + resolution : 8
  750 + }
  751 + },
599 752 //configuracoes especificas para a interface que utiliza o OpenLayers
600 753 openLayers : {
601 754 //utiliza ou nao tiles ao renderizar as camadas do mapa
... ... @@ -609,7 +762,7 @@ if ($_SESSION [&quot;usuario&quot;] != $_COOKIE [&quot;i3geousuariologin&quot;]) {
609 762 new ol.control.ZoomSlider(),
610 763 new ol.control.ScaleLine(),
611 764 new ol.control.Attribution({
612   - collapsible: false
  765 + collapsible: true
613 766 })
614 767 ],
615 768 loadTilesWhileAnimating : true,
... ...
admin1/black_editorCriaMapa.php 0 → 100755
... ... @@ -0,0 +1,804 @@
  1 +<?php
  2 +//verifica login
  3 +session_write_close ();
  4 +session_name ( "i3GeoLogin" );
  5 +if(empty($_COOKIE ["i3geocodigologin"])){
  6 + exit;
  7 +}
  8 +session_id ( $_COOKIE ["i3geocodigologin"] );
  9 +session_start ();
  10 +if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) {
  11 + $_COOKIE = array ();
  12 + $_SESSION = array ();
  13 + session_destroy ();
  14 + exit;
  15 +}
  16 +if(!isset($_GET["id_mapa"])){
  17 + exit;
  18 +}
  19 +$id_mapa = $_GET["id_mapa"] * 1;
  20 +?>
  21 +<!DOCTYPE html>
  22 +<html lang="pt-br">
  23 +<head>
  24 +<meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile">
  25 +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  26 +<meta name="viewport"
  27 + content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0">
  28 +<title>i3GEO - OpenLayers</title>
  29 +<script src="../pacotes/ol4/ol.js"></script>
  30 +<script src="../js/i3geo.js"></script>
  31 +<!-- lista com os links que serao mostrados na guia ferramentas -->
  32 +<script src="../js/listaDeFerramentas.js"></script>
  33 +<!-- configuracoes default tipo pode ser OL (openLayers) ou GM (googlemaps) -->
  34 +<script src="../interface/config.php?tipo=OL"></script>
  35 +<link rel="stylesheet" type="text/css" href="../pacotes/ol4/ol.css">
  36 +<link rel="stylesheet" type="text/css" href="../pacotes/bootstrap/css/bootstrap.min.css">
  37 +<link rel="stylesheet" type="text/css" href="../pacotes/bootstrap-material-design/dist/css/bootstrap-material-design.min.css">
  38 +<!-- <link rel="stylesheet" type="text/css" href="../pacotes/bootstrap-accessibility-plugin/plugins/js/bootstrap-accessibility.min.js"> -->
  39 +<link rel="stylesheet" type="text/css" href="../css/default.css">
  40 +<script src="../ferramentas/salvamapabanco/dependencias.php"></script>
  41 +<style>
  42 +.ol-attribution.ol-uncollapsible {
  43 + height: 2.1em;
  44 + right: 24px;
  45 + background: none;
  46 + margin-bottom: 15px;
  47 +}
  48 +.foraDoMapa + span > span {
  49 + background-color: yellow;
  50 +}
  51 +</style>
  52 +</head>
  53 + <!-- As palavras entre {{{}}} sao utilizadas para a traducao. Veja i3geo/js/dicionario.js
  54 + Marque com data-traduzir="true" os elementos que deverao passar pelo tradutor
  55 + -->
  56 +<body id="i3geo" style='background: white;'>
  57 + <!-- inclui o nome do usuario logado
  58 + <div id="i3GEONomeLogin"
  59 + style="position: absolute; left: 10px; top: 2px; font-size: 11px; z-index: 50000"></div>
  60 + -->
  61 + <!-- Aqui vai o mapa. O div a ser inserido e padronizado e depende da interface usar openlayers ou googlemaps
  62 + Se os estilos width e height nao estiverem definidos, o tamanho do mapa abrangera a tela toda
  63 + -->
  64 + <div id="mapai3Geo" >
  65 + </div>
  66 + <!-- aqui sera incluida a escala numerica. E necessario ter o id=i3GEOescalanum para que o valor seja atualizado-->
  67 + <form class="escalanumerica hidden-xs" onsubmit="javascript:i3GEO.navega.aplicaEscala($i('i3GEOescalanum').value);return false;">
  68 + <input id='i3GEOescalanum' type='text' name='' value='' size='10' title='' >
  69 + </form>
  70 +
  71 + <!-- aqui sera incluido o gadget que mostra a coordenada geografica da posicao do mouse -->
  72 + <div class="localizarxy fundoRodape hidden-xs hidden-sm" >
  73 + <div class="i3GeoMascaraCoord" style="display: block;">
  74 + <select onchange="javascript:i3GEO.coordenadas.mudaTipo(this,'localizarxy');" class="i3geoCoordenadasComboTipo">
  75 + <option>DMS:</option>
  76 + <option value="janela">janela</option>
  77 + <option value="geoProj">DMS</option>
  78 + <option value="dd">Dec. de grau</option>
  79 + <option value="geohash">GeoHash</option>
  80 + <option value="policonicaSad69">Polic SAD-69</option>
  81 + <option value="utmSad69Proj">UTM Sad-69</option>
  82 + <option value="utmSirgas2000Proj">UTM Sirgas</option>
  83 + </select>
  84 + </div>
  85 + <div class="i3GeoMascaraCoord" id="localizarxygeoProj" style="display: block;position: absolute;top: 0px;left: 60px;">
  86 + X:
  87 + <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjxg" type="text">
  88 + <input name="" value="00" size="2" title="minuto" id="localizarxygeoProjxm" type="text">
  89 + <input name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjxs" type="text">
  90 + Y:
  91 + <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjyg" type="text">
  92 + <input name="" value="00" size="2" title="minuto" id="localizarxygeoProjym" type="text">
  93 + <input name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjys" type="text">
  94 + <img class="ticfind" style="margin-left:8px;" title="zoom" onclick="i3GEO.coordenadas.zoomPontoGeo()" src="../imagens/branco.gif">
  95 + </div>
  96 + <div id="localizarxydd" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;">
  97 + X: <input name="" value="00" size="12" title="X" id="localizarxyddX" type="text">
  98 + Y: <input name="" value="00" size="12" title="Y" id="localizarxyddY" type="text">
  99 + </div>
  100 + <div id="localizarxygeohash" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;">
  101 + GeoHash <input name="" value="00" size="12" title="Cod" id="localizarxygeohashCodigo" type="text">
  102 + <img class="ticfind" style="margin-left:8px;" title="zoom" onclick="i3GEO.coordenadas.geohash.zoomCodigo('localizarxygeohashCodigo')" src="../imagens/branco.gif">
  103 + </div>
  104 + <div id="localizarxypoliconicaSad69" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;">
  105 + X: <input name="" value="00" size="12" title="X" id="localizarxypoliconicaSad69X" type="text">
  106 + Y: <input name="" value="00" size="12" title="Y" id="localizarxypoliconicaSad69Y" type="text">
  107 + </div>
  108 + <div id="localizarxyutmSad69Proj" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;">
  109 + X: <input name="" value="00" size="12" title="X" id="localizarxyutmSad69ProjX" type="text">
  110 + Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSad69ProjY" type="text">
  111 + Zn: <input name="" value="--" size="2" title="Zona" id="localizarxyutmSad69ProjZN" type="text">
  112 + </div>
  113 + <div id="localizarxyutmSirgas2000Proj" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;">
  114 + X: <input name="" value="00" size="12" title="X" id="localizarxyutmSirgas2000ProjX" type="text">
  115 + Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSirgas2000ProjY" type="text">
  116 + Zn: <input name="" value="--" size="2" title="Zona" id="localizarxyutmSirgas2000ProjZN" type="text">
  117 + </div>
  118 + </div>
  119 + <!-- barra de icones de navegacao -->
  120 + <div class="ol-i3GEOcontrols ol-control" data-traduzir="true">
  121 + <button title="{{{d2t}}}" onclick="i3GEO.Interface.zoom2ext(i3GEO.parametros.extentTotal)" style="float: left;">
  122 + <!--<img style="width:20px;" src="../imagens/gisicons/projection.png">-->
  123 + <i class="material-icons">public</i>
  124 + </button>
  125 + <button onclick="i3GEO.Interface.zoomli()" style="float: left;">
  126 + <!--<img style="width:20px;" src="../imagens/gisicons/zoom-region.png">-->
  127 + <i class="material-icons">zoom_in</i>
  128 + </button>
  129 + <br>
  130 + <button title="{{{volta}}}" onclick="i3GEO.navega.extensaoAnterior()" style="float: left;">
  131 + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle1.png">-->
  132 + <i class="material-icons">undo</i>
  133 + </button>
  134 + <button title="{{{avanca}}}" onclick="i3GEO.navega.extensaoProximo()" style="float: left;">
  135 + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle2.png">-->
  136 + <i class="material-icons">redo</i>
  137 + </button>
  138 + <br>
  139 + <button title="{{{graticule}}}" onclick="i3GEO.Interface.grade()" style="float: left;">
  140 + <!--<img style="width:16px;" src="../imagens/gisicons/graticule.png">-->
  141 + <i class="material-icons">grid_on</i>
  142 + </button>
  143 + <button class="hidden-xs hidden-sm" title="{{{x79}}}" data-template="../interface/templates/ferramentasSend.html" onclick="i3GEO.marcador.inicia(this)" style="float: left;">
  144 + <!--<img style="width:20px;" src="../imagens/gisicons/save1.png">-->
  145 + <i class="material-icons">bookmark_border</i>
  146 + </button>
  147 + <br>
  148 + <button class="hidden-xs hidden-sm" title="{{{d9}}}" onclick="i3GEO.maparef.inicia()" style="float: left;">
  149 + <!--<img style="width:20px;" src="../imagens/gisicons/map-reference.png">-->
  150 + <i class="material-icons">picture_in_picture</i>
  151 + </button>
  152 + </div>
  153 + <!--barra de progresso que e mostrada conforme as camadas sao desenhadas no mapa. Esse elemento deve ter o id="i3GEOprogressoCamadas" -->
  154 + <div id="i3GEOprogressoCamadas" class="progress" style="display:block;position:absolute;top:0px; height:5px;width:0%;margin:auto;">
  155 + <div class="progress-bar progress-bar-striped active" role="progressbar" style="width:100%">
  156 + </div>
  157 + </div>
  158 + <!--barra de aguarde id="i3GEObarraAguarde" -->
  159 + <div id="i3GEObarraAguarde" class="progress" style="display:block;position:absolute;top:0px; height:5px;width:0%;margin:auto;">
  160 + <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" style="width:100%">
  161 + </div>
  162 + </div>
  163 + <!-- mensagem de copyright -->
  164 + <div id="i3GEOcopyright">i3Geo</div>
  165 + <!-- botoes laterais que abrem guias moveis -->
  166 + <div id="i3GEOguiaMovel" >
  167 + <!-- configuracao para todos os botoes
  168 + data-idconteudo - id do DIV que contem o conteudo da guia e que sera mostrado ao ser clicado
  169 + -->
  170 + <div class="iconesGuiaMovel ol-control" data-traduzir="true">
  171 + <!-- ferramentas
  172 + data-idLista - id do DIV dentro de idconteudo que sera utilizado para mostrar as "pastas" que abrem o proximo nivel
  173 + data-idLinks - id do DIV dentro de idconteudo que sera utilizado para mostrar a lista de links que abre cada ferramenta
  174 + data-idMigalha - id do DIV que sera utilizado para mostrar o link de retorno ao nivel anterior
  175 + -->
  176 + <div data-idconteudo="guia8obj" data-idLinks="listaFerramentasLinks" data-idMigalha="migalhaFerramentas" data-idLista="listaFerramentas" onclick="i3GEO.guias.ativa('ferramentas',this)">
  177 + <button title="{{{iconeFerramentas}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  178 + <i class="material-icons">business_center</i>
  179 + </button>
  180 + </div>
  181 + <!-- temas existentes no mapa
  182 + data-idListaDeCamadas - id onde sera incluida a lista de camadas
  183 + data-idListaFundo - id onde sera incluida a lista de camadas de fundo (mapa base)
  184 + data-verificaAbrangencia - se for uma string, faz a verificacao se a camada esta fora da abrangencia atual do mapa,
  185 + inserindo ou nao a string como uma classe CSS. Pode degradar a performance e depende
  186 + do metadata existente na camada. Deixe vazio para nao ativar a operacao.
  187 + -->
  188 + <div onclick="i3GEO.guias.ativa('temas',this)" data-verificaAbrangencia="" data-idconteudo="guia1obj" data-idListaFundo="listaFundo" data-idListaDeCamadas="listaTemas" style="margin-top: 3px;">
  189 + <button title="{{{iconeMapa}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  190 + <i class="material-icons"><i class="material-icons">visibility</i></i>
  191 + </button>
  192 + </div>
  193 + <!-- catalogo de adicao de temas ao mapa
  194 + data-idCatalogo - id do DIV que contem a primeira pagina do catalogo. Esse DIV sera escondido e mostrado conforme o usuario navega pelo catalogo
  195 + data-idMenus - id do DIV que recebera a lista de menus cadastrados no sistema de administracao
  196 + data-idNavegacao - id do DIV que recebera a lista de opcoes apos o usuario clicar em um item do catalogo principal
  197 + data-idMigalha - id do DIV que recebera o link para retorno ao nivel anterior do catalogo
  198 +
  199 + Variaveis javascript:
  200 + i3GEO.catalogoMenus.IDSMENUS - (array) apenas os menus com idmenu que constem nessa lista serao mostrados. Por default e vazio.
  201 + -->
  202 + <div onclick="i3GEO.guias.ativa('adiciona',this)" data-idconteudo="guia2obj" data-idMigalha="catalogoMigalha" data-idNavegacao="catalogoNavegacao" data-idCatalogo="catalogoPrincipal" data-idMenus="catalogoMenus" style="margin-top: 3px;">
  203 + <button title="{{{iconeCatalogo}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  204 + <i class="material-icons">layers</i>
  205 + </button>
  206 + </div>
  207 + <!-- legenda -->
  208 + <div onclick="i3GEO.guias.ativa('legenda',this)" data-idconteudo="guia4obj" data-idLegenda="legendaHtml" style="margin-top: 3px;">
  209 + <button title="{{{iconeLegenda}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  210 + <i class="material-icons">view_list</i>
  211 + </button>
  212 + </div>
  213 + <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('dobraPagina',this)" style="margin-top: 3px;">
  214 + <button title="{{{trocaInterface}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  215 + <i class="material-icons">compare_arrows</i>
  216 + </button>
  217 + </div>
  218 + <!-- Busca -->
  219 + <div onclick="i3GEO.guias.ativa('buscaRapida',this)" data-idconteudo="guia7obj" style="margin-top: 3px;">
  220 + <button class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  221 + <i class="material-icons">search</i>
  222 + </button>
  223 + </div>
  224 + <div onclick="i3GEO.guias.ativa('identificaBalao',this)" style="margin-top: 3px;" >
  225 + <button title="{{{iconeBalao}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;">
  226 + <i class="material-icons">location_on</i>
  227 + </button>
  228 + </div>
  229 + <!-- A opcao de identificacao esta integrada ao balao de informacoes, mas pode aparecer aqui tambem
  230 + <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('identifica',this)" style="margin-top: 3px;">
  231 + <button title="{{{iconeIdentifica}}}" class="iconeGuiaMovel" style="box-shadow: none;">
  232 + <img src="../imagens/gisicons/pointer-info.png" style="cursor: pointer; padding: 3px;">
  233 + </button>
  234 + </div>
  235 + -->
  236 + </div>
  237 + <!-- veja i3GEO.guias.CONFIGURA -->
  238 + <!-- Os IDs sao definidos no botao que ativa a guia veja: "i3GEOguiaMovel" -->
  239 + <!-- se height nao estiver definido sera utilizada a altura do mapa -->
  240 + <div id="i3GEOguiaMovelMolde" >
  241 + <div id="i3GEOguiaMovelConteudo" >
  242 + <!-- camadas existentes no mapa -->
  243 + <div id='guia1obj' data-traduzir="true" style='display: none;'>
  244 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');">
  245 + <span class="pull-left">{{{iconeMapa}}}</span>X</div>
  246 + <div class="separadorCabecalhoGuias">&nbsp;</div>
  247 + <div class="list-group condensed noprint" >
  248 + <label>{{{opcoes}}}</label>
  249 + <a data-target="#opcoesGuia1" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
  250 + <span class="caret"></span>
  251 + </a>
  252 + <div class="text-left collapse" id="opcoesGuia1" style="margin-left: 30px;">
  253 + <p><a onclick="i3GEO.arvoreDeCamadas.atualiza(i3GEO.arvoreDeCamadas.CAMADAS,true)" href="javascript:void(0)" >Refresh</a></p>
  254 + <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('ligartodos')" href="javascript:void(0)" >{{{t3a}}}</a></p>
  255 + <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('desligartodos')" href="javascript:void(0)" >{{{t3b}}}</a></p>
  256 + <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.excluir()" href="javascript:void(0)" >{{{t12}}}</a></p>
  257 + <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.filtro()" href="javascript:void(0)" >{{{t2a}}}</a></p>
  258 + <p><a onclick="i3GEO.mapa.dialogo.opacidade()" href="javascript:void(0)" >{{{t20}}}</a></p>
  259 + <p><a onclick="i3GEO.mapa.dialogo.animacao()" href="javascript:void(0)" >{{{p21}}}</a></p>
  260 + <p><a onclick="i3GEO.mapa.dialogo.imprimir()" href="javascript:void(0)" >{{{d12}}}</a></p>
  261 + <p><a onclick="i3GEO.mapa.limpasel()" href="javascript:void(0)" >{{{t4}}}</a></p>
  262 + </div>
  263 + </div>
  264 + <hr>
  265 + <!-- Esta div acrescenta a lista de de camadas dispon&iacute;veis no mapa atual -->
  266 + <div id="listaTemas" style="overflow:none;" data-template="../interface/templates/camada.html"></div>
  267 + <!-- Esta div acrescenta a lista de de camadas de fundo
  268 + A lista de camadas de fundo e obtida da variavel i3GEO.Interface.openlayers.LAYERSADICIONAIS
  269 + Essa variavel e definida via javascript, e no caso das interfaces padrao do i3Geo, e definida
  270 + no programa interface/config.php
  271 + -->
  272 + <div class="list-group condensed">
  273 + <label>{{{camadasDeFundo}}}</label>
  274 + <a data-target="#collapseFundo" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
  275 + <span class="caret"></span>
  276 + </a>
  277 + <div style="margin-left:0px;" class="collapse text-left" id="collapseFundo">
  278 + <form>
  279 + <div id="listaFundo" class="form-group" data-template="../interface/templates/camadaFundo.html"></div>
  280 + </form>
  281 + </div>
  282 + </div>
  283 + </div>
  284 + <!-- Catalogo de temas -->
  285 + <div id='guia2obj' data-traduzir="true" style='display: none; text-align:left;'>
  286 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');i3GEO.catalogoMenus.mostraCatalogoPrincipal();"><span class="pull-left">{{{iconeCatalogo}}}</span> X</div>
  287 + <div class="separadorCabecalhoGuias">&nbsp;</div>
  288 + <!-- aqui entra a lista de elementos quando uma das opcoes e clicada -->
  289 + <div id="catalogoMigalha" data-template="../interface/templates/catalogoMigalha.html"></div>
  290 + <div id="catalogoNavegacao"></div>
  291 + <!-- Opcoes -->
  292 + <div id="catalogoPrincipal">
  293 + <div class="list-group condensed noprint" >
  294 + <label>{{{opcoes}}}</label>
  295 + <a data-target="#opcoesGuia2" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" >
  296 + <span class="caret"></span>
  297 + </a>
  298 + <div class="text-left collapse" id="opcoesGuia2" style="margin-left: 30px;">
  299 + <p>
  300 + <a href="javascript:void(0)" onclick="i3GEO.login.dialogo.abreLogin()">Login/Logout</a>
  301 + </p>
  302 + <p>
  303 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.atualiza()">Refresh</a> -->
  304 + </p>
  305 + <li class="divider"></p>
  306 + <p>
  307 + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.conectaservico()" >{{{a15}}}</a>
  308 + </p>
  309 + <p>
  310 + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.uploadarquivo()">{{{a14}}}</a>
  311 + </p>
  312 + <p>
  313 + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.downloadbase()">{{{a3}}}</a>
  314 + </p>
  315 + <p>
  316 + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.importarwmc()">{{{a3a}}}</a>
  317 + </p>
  318 + <p>
  319 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.nuvemTags()">{{{a5a}}}</a> -->
  320 + </p>
  321 + <p>
  322 + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.carouselTemas()">Miniaturas</a> -->
  323 + </p>
  324 + <p>
  325 + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.buscaInde()">Busca na INDE</a>
  326 + </p>
  327 + <p>
  328 + <a href="javascript:void(0)" onclick="i3GEO.mapa.dialogo.metaestat()">Cartogramas estatisticos</a>
  329 + </p>
  330 + <p><a href="http://localhost/i3geo/kml.php?tipoxml=kml" target="_blank">{{{a13}}}</a>
  331 + </p>
  332 + </div>
  333 + </div>
  334 + <hr>
  335 + <!-- busca tema no catalogo
  336 + <div class="form-group label-floating">
  337 + <label class="control-label" for="i3GEObuscatema">{{{a1}}}</label>
  338 + <div class="input-group">
  339 + <input id="i3GEObuscatema" class="form-control" type="text" value="">
  340 + <span class="input-group-btn">
  341 + <a onclick="i3GEO.arvoreDeTemas.buscaTema2($i('i3GEObuscatema').value);return false;" role="button" type="button" class="btn btn-warning btn-fab btn-fab-max" href="javascript:void(0)">
  342 + <span class="material-icons ">send</span>
  343 + </a>
  344 + </span>
  345 + </div>
  346 + </div>
  347 + -->
  348 + <!-- A lista de menus e uma funcao de i3GEO.guias.CONFIGURA.adiciona
  349 + Nessa funcao ficam tambem os parametros:
  350 + "idOndeMenus": "catalogoMenus",
  351 + "idCatalogoPrincipal": "catalogoPrincipal",
  352 + "idCatalogoNavegacao": "catalogoNavegacao",
  353 + "idOndeMigalha": "catalogoMigalha"
  354 + -->
  355 + <div id="catalogoMenus" data-templateDir="../interface/templates/dir.html" data-templateTema="../interface/templates/tema.html"></div>
  356 +
  357 + <div id="arvoreAdicionaTema"></div>
  358 +
  359 + <!--
  360 + As funcoes de inicializacao recebem um objeto com parametros. Que por padrao sao:
  361 + config: {
  362 + 'templateDir': '../interface/templates/dir.html',
  363 + 'templateTema': '../interface/templates/tema.html',
  364 + 'idCatalogoPrincipal': 'catalogoPrincipal',
  365 + 'idCatalogoNavegacao': 'catalogoNavegacao',
  366 + 'idOndeMigalha': 'catalogoMigalha'
  367 + }
  368 +
  369 + exemplo:
  370 +
  371 + onclick="i3GEO.catalogoInde.inicia({'templateDir': '../interface/templates/dir.html','templateTema': '../interface/templates/tema.html','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})"
  372 + -->
  373 +
  374 + <!-- servicos da INDE brasileira -->
  375 + <div class="list-group condensed"><div class="row-content text-left">
  376 + <a onclick="i3GEO.catalogoInde.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  377 + <label style="width: 255px;vertical-align: middle;">
  378 + <a onclick="i3GEO.catalogoInde.inicia()" role="button" href="javascript:void(0)">
  379 + <h4>INDE-Br</h4></a>
  380 + <h6>Infraestrutura Nacional de Dados Espaciais do Brasil</h6>
  381 + </label>
  382 + </div></div><hr>
  383 + <!-- lista de wms cadastrados no sistema de administracao -->
  384 + <div class="list-group condensed"><div class="row-content text-left">
  385 + <a onclick="i3GEO.catalogoOgc.inicia();return false;" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  386 + <label style="width: 255px;vertical-align: middle;">
  387 + <a onclick="i3GEO.catalogoOgc.inicia()" role="button" href="javascript:void(0)">
  388 + <h4>OGC-WMS</h4></a>
  389 + <h6>{{{descOgcWms}}}</h6>
  390 + </label>
  391 + </div></div><hr>
  392 + <!-- regioes cadastradas no sistema de metadados -->
  393 + <div class="list-group condensed"><div class="row-content text-left">
  394 + <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  395 + <label style="width: 255px;vertical-align: middle;">
  396 + <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" href="javascript:void(0)">
  397 + <h4>{{{x87}}}</h4></a>
  398 + <h6>{{{descLimLoc}}}</h6>
  399 + </label>
  400 + </div></div><hr>
  401 + <!-- camadas que vem do sistema de metadados estatisticos -->
  402 + <div class="list-group condensed"><div class="row-content text-left">
  403 + <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  404 + <label style="width: 255px;vertical-align: middle;">
  405 + <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" href="javascript:void(0)">
  406 + <h4>{{{x57}}}</h4></a>
  407 + <h6>{{{descMeta}}}</h6>
  408 + </label>
  409 + </div></div><hr>
  410 + <!-- mapas cadastrados no sistema de administracao (nao funcional)
  411 + <div class="list-group condensed"><div class="row-content text-left">
  412 + <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  413 + <label style="width: 255px;vertical-align: middle;">
  414 + <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" href="javascript:void(0)">
  415 + <h4>{{{x90}}}</h4></a>
  416 + <h6>{{{descMapas}}}</h6>
  417 + </label>
  418 + </div></div><hr>
  419 + -->
  420 + <!-- camadas por estrelas -->
  421 + <div class="list-group condensed"><div class="row-content text-left">
  422 + <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  423 + <label style="width: 255px;vertical-align: middle;">
  424 + <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" href="javascript:void(0)">
  425 + <h4>{{{t46}}}</h4></a>
  426 + <h6>{{{descEstrelas}}}</h6>
  427 + </label>
  428 + </div></div><hr>
  429 + <!-- sistemas que adicionam camadas -->
  430 + <div class="list-group condensed"><div class="row-content text-left">
  431 + <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  432 + <label style="width: 255px;vertical-align: middle;">
  433 + <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" href="javascript:void(0)">
  434 + <h4>{{{a11}}}</h4></a>
  435 + <h6>{{{descSistemas}}}</h6>
  436 + </label>
  437 + </div></div><hr>
  438 + <!-- navegacao em diretorios -->
  439 + <div class="list-group condensed"><div class="row-content text-left">
  440 + <a onclick="i3GEO.catalogoDir.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a>
  441 + <label style="width: 255px;vertical-align: middle;">
  442 + <a onclick="i3GEO.catalogoDir.inicia()" role="button" href="javascript:void(0)">
  443 + <h4>{{{a6}}}</h4></a>
  444 + <h6>{{{descDir}}}</h6>
  445 + </label>
  446 + </div></div><hr>
  447 + </div>
  448 + </div>
  449 + <!-- Legenda -->
  450 + <div data-traduzir="true" id='guia4obj' style='display: none; text-align: left'>
  451 + <div class="i3GEOfechaGuia" onclick="i3GEO.legenda.off('legendaHtml');i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeLegenda}}}</span>X</div>
  452 + <div class="separadorCabecalhoGuias">&nbsp;</div>
  453 + <a href='javascript:void(0)' onclick="i3GEO.legenda.inicia({'janela':true})" >{{{x11}}}</a>
  454 + <div id="legendaHtml" data-template="../interface/templates/legenda.html" data-size="35,25" style='display: none; text-align: left'></div>
  455 + </div>
  456 + <!-- busca
  457 + Funcoes de busca por registros. Pode ser feita nos temas existentes no mapa, em um servico de busca e no google
  458 + No botao que dispara a busca, ficam os parametros de configuracao
  459 + Esses parametros indicam qual o checkbox que define o tipo de busca, o local onde os dados serao mostrados e o template para formatar o resultado
  460 + -->
  461 + <div data-traduzir="true" id='guia7obj' style='display: none; text-align: left'>
  462 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{t23}}}</span> X</div>
  463 + <div class="separadorCabecalhoGuias">&nbsp;</div>
  464 + <form onSubmit="return false;" >
  465 + <div class="form-group label-floating">
  466 + <label class="control-label" for="valorBuscaRapida">{{{x36}}}</label>
  467 + <div class="input-group">
  468 + <input class="form-control" type="text" value="" name="valorBuscaRapida">
  469 + <span class="input-group-btn">
  470 + <a onclick="i3GEO.busca.inicia(this);return false;"
  471 + data-templateGoogle="../interface/templates/buscaEmTemas.html"
  472 + data-inputGoogle="[name=google]"
  473 + data-ondeGoogle=".i3GEOresultadoBuscaGoogle"
  474 + data-templateTemasMapa="../interface/templates/buscaEmTemas.html"
  475 + data-inputTemasMapa="[name=temasMapa]"
  476 + data-ondeTemasMapa=".i3GEOresultadoBuscaTemasMapa"
  477 + data-templateServico="../interface/templates/buscaEmServico.html"
  478 + data-ondeConteiner="#guia7obj"
  479 + data-inputOndePalavra="[name=valorBuscaRapida]"
  480 + data-inputServicosExternos="[name=servicosExternos]"
  481 + data-ondeServicosExternos=".i3GEOresultadoBuscaServicos" role="button" type="button" class="btn btn-warning btn-fab btn-fab-max" href="javascript:void(0)">
  482 + <span class="material-icons ">send</span>
  483 + </a>
  484 + </span>
  485 + </div>
  486 + </div>
  487 + <h4>{{{x37}}}:</h4>
  488 + <div class="form-inline" style="width:100%;">
  489 + <div class="list-group condensed">
  490 + <div class="checkbox text-left">
  491 + <label>
  492 + <input checked class="noprint" value="on" type="checkbox" value="" name="servicosExternos" >
  493 + <span class="checkbox-material noprint"><span class="check"></span></span> {{{x38}}}
  494 + </label>
  495 + </div>
  496 + </div>
  497 + <div class="list-group condensed">
  498 + <div class="checkbox text-left">
  499 + <label>
  500 + <input class="noprint" value="on" type="checkbox" name="temasMapa">
  501 + <span class="checkbox-material noprint"><span class="check"></span></span> {{{x39}}}
  502 + </label>
  503 + </div>
  504 + </div>
  505 + <!-- Apenas para a interface google maps
  506 + <div class="list-group condensed">
  507 + <div class="checkbox text-left">
  508 + <label>
  509 + <input class="noprint" value="on" type="checkbox" name="google">
  510 + <span class="checkbox-material noprint"><span class="check"></span></span> Google
  511 + </label>
  512 + </div>
  513 + </div>
  514 + -->
  515 + </div>
  516 + </form>
  517 + <hr>
  518 + <div class="i3GEOresultadoBuscaServicos" ></div>
  519 + <div class="i3GEOresultadoBuscaTemasMapa" ></div>
  520 + <div class="i3GEOresultadoBuscaGoogle" ></div>
  521 + <div class="alert alert-info" role="alert">{{{x40}}}</div>
  522 + </div>
  523 + <!-- Ferramentas -->
  524 + <div data-traduzir="true" id='guia8obj' style='display: none; text-align: left'>
  525 + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeFerramentas}}}</span> X</div>
  526 + <div class="separadorCabecalhoGuias">&nbsp;</div>
  527 + <div class="form-inline" style="width:100%;">
  528 + <div class="text-center form-group" style="margin:4px;">
  529 + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.area();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)">
  530 + <img style="margin-top:4px;" src="../imagens/gisicons/area-measure.png">
  531 + </a>
  532 + <h6>{{{d21at}}}</h6>
  533 + </div>
  534 + <div class="text-center form-group" style="margin:4px;">
  535 + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.distancia();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)">
  536 + <img style="margin-top:4px;" src="../imagens/gisicons/length-measure.png">
  537 + </a>
  538 + <h6>{{{d21t}}}</h6>
  539 + </div>
  540 + <div class="text-center form-group" style="margin:4px;">
  541 + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.selecao();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)">
  542 + <img style="margin-top:4px;" src="../imagens/gisicons/select.png">
  543 + </a>
  544 + <h6>{{{d24t}}}</h6>
  545 + </div>
  546 + <div class="text-center form-group" style="margin:4px;">
  547 + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.geolocal();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)">
  548 + <img style="margin-top:4px;" src="../imagens/gisicons/layer-gps.png">
  549 + </a>
  550 + <h6>{{{localiza}}}</h6>
  551 + </div>
  552 + </div>
  553 + <div class="clearfix"></div>
  554 + <hr>
  555 + <div id="migalhaFerramentas" data-template="../interface/templates/ferramentasMigalha.html" style='display: block; text-align: left;'></div>
  556 + <div id="listaFerramentasLinks" data-template="../interface/templates/ferramentasLink.html" style='display: block; text-align: left'></div>
  557 + <div id="listaFerramentas" data-template="../interface/templates/ferramentasFolder.html" style='display: block; text-align: left'></div>
  558 + </div>
  559 + </div>
  560 + </div>
  561 + </div>
  562 + <!-- para mostrar o banner de abertura -->
  563 + <script id="i3GEOlogoMarcaTemplate" type="x-tmpl-mustache">
  564 + <div>
  565 + <table>
  566 + <tr>
  567 + <td>
  568 + <h4 >i3Geo - Software livre para cria&ccedil;&atilde;o de mapas
  569 + interativos e geoprocessamento</h4>
  570 + <h4 >Baseado no Mapserver, &eacute; licenciado sob GPL e integra o
  571 + Portal do Software P&uacute;blico Brasileiro</h4>
  572 + </td>
  573 + </tr>
  574 + </table>
  575 + <img class="img-thumbnail" src="../imagens/i3Geo_big.png" style="width:50px">
  576 + <img class="img-thumbnail" src="../imagens/mapserv.png" style="width:50px">
  577 + <img class="img-thumbnail" src="../imagens/pspb.png" style="width:50px">
  578 + <div>&nbsp;</div>
  579 + </div>
  580 + </script>
  581 + <script>
  582 + //ativa o banner de inicializacao
  583 + i3GEO.janela.tempoMsg($i("i3GEOlogoMarcaTemplate").innerHTML,4000);
  584 + (function() {
  585 + //parametros aplicados na criacao do arquivo mapfile
  586 + var parametrosMapa = {
  587 + //arquivo mapfile que servira de base para a criacao do mapa. Por default, sao utilizados os arquivos existentes em i3geo/aplicmap (geral1windows, geral1,...)
  588 + //Essa variavel pode ser definida em ms_configura tambem. Se nao estiver definida em nenhum lugar, o i3Geo tentara descobrir o arquivo adequado a ser utilizado. Voce pode utilizar essa opcao para abrir um mapa com as camadas que voce quiser, mas para evitar redundâncias, prefira o uso de &temasa
  589 + mapfilebase: "",
  590 + //extensao geografica do mapa
  591 + //deve ser definida em coordenadas no formato decimos de grau e na projecao geografica na sequencia xmin ymin xmax ymax
  592 + //exemplo [-77,-26,-30,6]
  593 + mapext: [],
  594 + //perfil utilizado para restringir os menus de temas mostrando apenas os que correspondem a determinado perfil
  595 + perfil: "",
  596 + //layers que serao adicionados ao mapa.
  597 +
  598 + layers: {
  599 + add: [],
  600 + on: [],
  601 + off: []
  602 + },
  603 + points: {
  604 + //array com a lista de coordenadas
  605 + coord: [],
  606 + //titulo da nova camada
  607 + title: ""
  608 + },
  609 + //lista de coordenadas x e y que serao adicionadas como linhas no mapa
  610 + lines: {
  611 + //array de arrays com a lista de coordenadas de cada linha
  612 + //exemplo [[-54,-12,-50,-12],[-50,-1,-50,-2,-50,-3]]
  613 + coord: [[]],
  614 + //titulo da nova camada
  615 + title:""
  616 + },
  617 + //lista de coordenadas x e y que serao adicionadas como poligonos no mapa
  618 + polygons: {
  619 + //array de arrays com a lista de coordenadas de cada poligono. A primeira coordenada deve ser igual a ultima.
  620 + //exemplo [[-50,-1,-48,-2,-50,-3,-50,-1]]
  621 + coord: [[]],
  622 + //titulo da nova camada
  623 + title:""
  624 + },
  625 + //insere elementos no mapa com coordenadas definidas em wkt
  626 + wkt: {
  627 + //string no formato wkt
  628 + coord: "",
  629 + //titulo da nova camada
  630 + title: ""
  631 + },
  632 + //simbolo que sera utilizado para desenhar os elementos inseridos
  633 + symbol: {
  634 + //codigo do simbolo conforme definido em i3geo/symbols
  635 + name: "",
  636 + //em rgb, exemplo "0 255 0"
  637 + color: "",
  638 + //em pixels
  639 + size: ""
  640 + },
  641 + //arquivo KML que sera incluido no mapa. Valido apenas na interface google maps
  642 + kml: {
  643 + url: ""
  644 + },
  645 + //endereco de um WMS (sera incluido como uma camada no mapa)
  646 + wms: {
  647 + url: "",
  648 + layer: "",
  649 + style: "",
  650 + title: "",
  651 + srs: "",
  652 + imagetype: "",
  653 + version: ""
  654 + },
  655 + //filtros que serao aplicados aos layers. Utilize a expressaso conforme definido na documentacao
  656 + //do mapserver, exemplo
  657 + //{layer: "_lbiomashp",expression: "(('[CD_LEGENDA]'='CAATINGA'))"} ou {layer: "_lbiomashp",expression: "cd_legenda='CAATINGA'"}
  658 + filters: [{
  659 + layer: "",
  660 + expression: ""
  661 + }],
  662 + //id de um mapa salvo e que sera recuperado
  663 + restoreMapId : "<?php echo $id_mapa;?>"
  664 + };
  665 + var config = {
  666 + //id do elemento HTML onde o corpo do mapa sera renderizado
  667 + mapBody : "mapai3Geo",
  668 + //tipo de mapa. Pode ser:
  669 + //OL - utiliza o OpenLayers e coordenadas geograficas
  670 + //OSM - utiliza o OpenLayers e o OpenStreetMap como fundo, em projecao semelhante ao GoogleMaps
  671 + //GM - utiliza o GoogleMaps como motor de controle do mapa
  672 + mapType : "OL",
  673 + //armazena em um cookie a ultima extensao geografica do mapa e utiliza essa extensao quando o mapa for aberto
  674 + saveExtension : false,
  675 + //aplica um filtro de cores apos a renderizacao da imagem de cada camada que compoe o mapa cinza|sepiaclara|sepianormal
  676 + posRenderType : "",
  677 + //Altura e largura do tooltip (balao identifica)
  678 + toolTipSize : ["100px","200px"],
  679 + //Endereco do servidor i3Geo. Utilizado para gerar as requisicoes AJAX
  680 + //Por default e definido como: i3GEO.util.protocolo() + "://" + window.location.host + "/i3geo"
  681 + i3GeoServer : "",
  682 + //Funcao que sera executada apos a inicializacao do mapa
  683 + afterStart : function(){
  684 + $('.iconeGuiaMovel').tooltip({animation: false, trigger: "manual", placement: "left"});
  685 + $('.iconeGuiaMovel').tooltip('show');
  686 + $("#i3GEOguiaMovelConteudo").mCustomScrollbar({scrollbarPosition: "outside",theme:"inset-2-dark"});
  687 +
  688 + i3GEOF.salvaMapaBanco.iniciaJanelaFlutuante(<?php echo $id_mapa;?>);
  689 + },
  690 + //parametros de configuracao de diferentes componentes do mapa, como o catalogo de temas, balao de info, etc
  691 + components : {
  692 + //define se ao clicar no mapa sera feita a busca de atributos nas camadas existentes no mapa
  693 + info: true,
  694 + //template mustache usado para o balao de info
  695 + //se for vazio, utiliza o default interface/templates/info.html
  696 + infoTemplate: "",
  697 + //define se ao clicar no mapa sera feita a busca de atributos nas camadas existentes no mapa
  698 + info: true,
  699 + //lista com os codigos dos menus que serao considerados na montagem do catalogo de temas
  700 + idsMenus : [],
  701 + //webservice utilizado na opcao de encontrar lugares
  702 + searchService : "http://mapas.mma.gov.br/webservices/geonames.php",
  703 + //webservice wms que faz a apresentacao do lugar encontrado por searchService
  704 + searchWms : "http://mapas.mma.gov.br/webservices/geonameswms.php",
  705 + //posicao do mapa de referencia, em pixels [top,right]
  706 + referenceMapPosition : [4,120],
  707 + //propriedades do balao de informacoes mostrado quando o usuario clica no mapa
  708 + tooltip : {
  709 + //o resultado sera mostrado em uma janela do tipo modal
  710 + modal : false,
  711 + //url que sera utilizada para obter os dados via $.get. Deve estar no mesmo dominio do i3Geo.
  712 + //Ao final da url serao inseridos os parametros &xx=&yy= com valores em decimos de grau
  713 + //use apenas se modal for true
  714 + //exemplo: http://i3geo.saude.gov.br/i3geo/sage_tabelas/odm/odm6.php?
  715 + url: "",
  716 + //template que sera usado para compor o resultado da busca de dados
  717 + //se for vazio, serao utilizadas as outras opcoes
  718 + //se contiver a string {{{url}}} a mesma sera substituida por url
  719 + //exemplo: "<iframe style='width:400px;height:190px;border:0px white solid' src='{{{url}}}'></iframe>"
  720 + templateModal: "",
  721 + //serao mostrados todos os dados ou apenas aqueles definidos na configuracao da camada
  722 + simple: true,
  723 + removeAoAdicionar : true,
  724 + //parametros exclusivos da interface openlayers
  725 + autoPan : true,
  726 + autoPanAnimation : {
  727 + duration : 250
  728 + },
  729 + minWidth : '200px',
  730 + //Altura e largura do tooltip (balao)
  731 + toolTipSize : ["100px","200px"]
  732 + },
  733 + //barra de rolagem - ver plugin jquery https://github.com/malihu/malihu-custom-scrollbar-plugin
  734 + scrollBar: {
  735 + theme: "inset-2",
  736 + axis: "yx",
  737 + scrollbarPosition: "inside",
  738 + scrollButtons:{ enable: true },
  739 + advanced:{ autoExpandHorizontalScroll: true }
  740 + }
  741 + },
  742 + //parametros de configuracao das ferramentas que sao acionadas sob demanda
  743 + //ferramentas localizadas em i3geo/ferramentas
  744 + tools : {
  745 + //ferramenta de busca de camadas em um servico CSW
  746 + buscainde : {
  747 + //endereco do servico no padrao CSW
  748 + csw : "http://www.metadados.inde.gov.br/geonetwork/srv/br"
  749 + },
  750 + //ferramenta de identificacao
  751 + identifica : {
  752 + //resolucao em pixels para busca de elementos
  753 + resolution : 8
  754 + }
  755 + },
  756 + //configuracoes especificas para a interface que utiliza o OpenLayers
  757 + openLayers : {
  758 + //utiliza ou nao tiles ao renderizar as camadas do mapa
  759 + //a utilizacao de tiles pode ser definida em cada camada, mas se essa propriedade for true, a definicao das camadas nao serao consideradas
  760 + singleTile : false,
  761 + //opcoes de inicializacao do mapa conforme definido na API do OpenLayers
  762 + MapOptions : {
  763 + layers : [],
  764 + controls : [
  765 + new ol.control.Zoom(),
  766 + new ol.control.ZoomSlider(),
  767 + new ol.control.ScaleLine(),
  768 + new ol.control.Attribution({
  769 + collapsible: true
  770 + })
  771 + ],
  772 + loadTilesWhileAnimating : true,
  773 + loadTilesWhileInteracting : true,
  774 + //os objetos devem ser comentados na interface googleMaps
  775 + interactions : [
  776 + new ol.interaction.DoubleClickZoom(),
  777 + new ol.interaction.KeyboardPan(),
  778 + new ol.interaction.KeyboardZoom(),
  779 + new ol.interaction.MouseWheelZoom(),
  780 + new ol.interaction.PinchRotate(),
  781 + new ol.interaction.PinchZoom(),
  782 + new ol.interaction.DragZoom(),
  783 + new ol.interaction.DragPan()
  784 + ]
  785 + },
  786 + //opcoes para o objeto view, que e uma instancia de MapOptions
  787 + ViewOptions : {
  788 +
  789 + }
  790 + }
  791 + };
  792 + //
  793 + //inicia o mapa
  794 + //Veja tambem config.php
  795 + //
  796 + //O primeiro parametro permite alterar o mapa, inserindo camadas e outras definicoes que afetam o corpo do mapa
  797 + //O segundo parametro inclui configuracoes que afetam o funcionamento da interface que controla a visualizacao do mapa
  798 + //
  799 + i3GEO.init(parametrosMapa,config);
  800 + })();
  801 + </script>
  802 +</body>
  803 +
  804 +</html>
... ...
admin1/catalogo/mapas/exec.php
... ... @@ -32,11 +32,12 @@ if (\admin\php\funcoesAdmin\verificaOperacaoSessao(&quot;admin/html/mapas&quot;) === false
32 32 header("HTTP/1.1 403 Vc nao pode realizar essa operacao");
33 33 exit();
34 34 }
35   -$id_mapa = $_POST["id_mapa"];
36   -\admin\php\funcoesAdmin\testaSafeNumerico(array(
37   - $id_mapa
38   -));
39   -
  35 +if(isset($_POST["id_mapa"])){
  36 + $id_mapa = $_POST["id_mapa"];
  37 + \admin\php\funcoesAdmin\testaSafeNumerico(array(
  38 + $id_mapa
  39 + ));
  40 +}
40 41 $funcao = strtoupper($funcao);
41 42 switch ($funcao) {
42 43 case "ADICIONAR":
... ...
admin1/catalogo/mapas/index.php
1 1 <?php
2   -define ( "ONDEI3GEO", "../../.." );
  2 +define("ONDEI3GEO", "../../..");
3 3 include ("exec.php");
4 4  
5 5 include "../../head.php";
6 6 ?>
7 7 <div class="container-fluid migalha">
8   - <div class="row">
9   - <div class="btn-group btn-breadcrumb">
10   - <a class="btn btn-default" href="../../../init/index.php"><span>i3Geo</span></a>
11   - <a class="btn btn-default" href="../../index.php"><span>Admin</span></a>
12   - <a class="btn btn-default" style="pointer-events: none"><span>Cat&aacute;logo</span></a>
13   - <a class="btn btn-default" style="pointer-events: none"><span>Mapas</span></a>
14   - </div>
15   - </div>
  8 + <div class="row">
  9 + <div class="btn-group btn-breadcrumb">
  10 + <a class="btn btn-default" href="../../../init/index.php"><span>i3Geo</span></a> <a class="btn btn-default" href="../../index.php"><span>Admin</span></a> <a class="btn btn-default"
  11 + style="pointer-events: none"><span>Cat&aacute;logo</span></a> <a class="btn btn-default" style="pointer-events: none"><span>Mapas</span></a>
  12 + </div>
  13 + </div>
16 14 </div>
17 15 <div class="container">
18   - <div class="row center-block">
19   - <div class="col-md-12" id="titulo">
20   - <div class="well hidden" >
21   - <button data-toggle="modal" data-target="#ajudaPrincipal"
22   - class="btn btn-primary btn-fab btn-fab-mini pull-right">
23   - <i class="material-icons">help</i>
24   - </button>
25   - <span class="pull-right">&nbsp;&nbsp;</span>
26   - <button data-toggle="modal" data-target="#modalFiltro"
27   - class="btn btn-primary btn-fab btn-fab-mini pull-right">
28   - <i class="material-icons">search</i>
29   - </button>
30   - <h2><small>{{{txtTitulo}}}</small></h2>
31   - <blockquote>{{{txtDesc}}}</blockquote>
32   - <div class="clearfix"></div>
33   - <div id="ajudaPrincipal" class="modal fade" tabindex="-1">
34   - <div class="modal-dialog">
35   - <div class="modal-content">
36   - <div class="modal-body">
37   - <p>{{{txtAjuda}}}</p>
38   - </div>
39   - </div>
40   - </div>
41   - </div>
42   - </div>
43   - <div class="well hidden">
44   - <div class="panel-heading">
45   - <p class="lead" style="margin:0px;">&nbsp;
46   - <a title="{{{adicionar}}}" onclick="i3GEOadmin.mapas.adicionaDialogo();" href="javascript:void(0)"
47   - class="pull-right btn btn-danger btn-fab btn-fab-mini" role="button" ><i class="material-icons ">add</i>
48   - </a>
49   - </p>
50   - </div>
51   - <div class="clearfix"></div>
52   - <div id="corpo">
53   - </div>
54   - </div>
55   - </div>
56   - </div>
  16 + <div class="row center-block">
  17 + <div class="col-md-12" id="titulo">
  18 + <div class="well hidden">
  19 + <button data-toggle="modal" data-target="#ajudaPrincipal" class="btn btn-primary btn-fab btn-fab-mini pull-right">
  20 + <i class="material-icons">help</i>
  21 + </button>
  22 + <span class="pull-right">&nbsp;&nbsp;</span>
  23 + <button data-toggle="modal" data-target="#modalFiltro" class="btn btn-primary btn-fab btn-fab-mini pull-right">
  24 + <i class="material-icons">search</i>
  25 + </button>
  26 + <h2>
  27 + <small>{{{txtTitulo}}}</small>
  28 + </h2>
  29 + <blockquote>{{{txtDesc}}}<p>{{{criaEditaMapa}}}</p></blockquote>
  30 + <div class="clearfix"></div>
  31 + <div id="ajudaPrincipal" class="modal fade" tabindex="-1">
  32 + <div class="modal-dialog">
  33 + <div class="modal-content">
  34 + <div class="modal-body">
  35 + <p>{{{txtAjuda}}}</p>
  36 + </div>
  37 + </div>
  38 + </div>
  39 + </div>
  40 + </div>
  41 + <div class="well hidden">
  42 + <div class="panel-heading">
  43 + <p class="lead" style="margin: 0px;">
  44 + &nbsp; <a title="{{{adicionar}}}" onclick="i3GEOadmin.mapas.adicionaDialogo();" href="javascript:void(0)" class="pull-right btn btn-danger btn-fab btn-fab-mini" role="button"><i
  45 + class="material-icons ">add</i> </a>
  46 + </p>
  47 + </div>
  48 + <div class="clearfix"></div>
  49 + <div class="clearfix"></div>
  50 + <div id="corpo"></div>
  51 + </div>
  52 + </div>
  53 + </div>
57 54 </div>
58 55 <?php
59   -include("templates/templateTemas.php");
60   -include("templates/templateLista.php");
61   -include("templates/templateFormLista.php");
62   -include("templates/templateFiltro.php");
63   -include("templates/templateOpcoesPerfil.php");
64   -include("../../templates/templateOpcoesPublicado.php");
  56 +include ("templates/templateTemas.php");
  57 +include ("templates/templateLista.php");
  58 +include ("templates/templateFormLista.php");
  59 +include ("templates/templateFiltro.php");
  60 +include ("templates/templateOpcoesPerfil.php");
  61 +include ("../../templates/templateOpcoesPublicado.php");
65 62 ?>
66 63 <script type="text/javascript" src="index.js"></script>
67 64 <script type="text/javascript" src="../../dicionario/mapas.js"></script>
... ...
admin1/catalogo/mapas/templates/templateLista.php
... ... @@ -2,11 +2,15 @@
2 2 <div class="list-group-item" id="form-{{id_mapa}}">
3 3 <div class="row-content">
4 4 <h4 class="list-group-item-heading {{escondido}}">
5   - <a href="javascript:void(0)" onclick="{{onEditar}}('{{id_mapa}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
  5 + <a title="i3Geo" href="javascript:void(0)" onclick="window.open('../../../admin1/black_editorCriaMapa.php?id_mapa={{id_mapa}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
  6 + <i class="material-icons md-18">send</i>
  7 + </a>
  8 + <span class="pull-right">&nbsp;&nbsp;</span>
  9 + <a href="javascript:void(0)" onclick="{{onEditar}}('{{id_mapa}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
6 10 <i class="material-icons md-18">edit</i>
7 11 </a>
8 12 <span class="pull-right">&nbsp;&nbsp;</span>
9   - <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_mapa}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
  13 + <a href="javascript:void(0)" onclick="{{onExcluir}}('{{id_mapa}}')" class="btn btn-danger btn-fab btn-fab-mini pull-right" role="button">
10 14 <i class="material-icons md-18">delete_forever</i>
11 15 </a>
12 16 &nbsp;{{{nome_mapa}}}
... ...
admin1/catalogo/mapfile/exec.php
... ... @@ -30,14 +30,16 @@ if (\admin\php\funcoesAdmin\verificaOperacaoSessao ( &quot;admin/html/editormapfile&quot;
30 30 header ( "HTTP/1.1 403 Vc nao pode realizar essa operacao" );
31 31 exit ();
32 32 }
33   -$codigo = $_POST ["codigo"];
34   -$codigo = str_replace ( " ", "", \admin\php\funcoesAdmin\removeAcentos ( $codigo ) );
35   -$codigo = str_replace ( ".", "", $codigo );
36   -$codigo = strip_tags ( $codigo );
37   -$codigo = htmlspecialchars ( $codigo, ENT_QUOTES );
38   -
39   -setcookie("palavraFiltro", strip_tags($_POST ["palavra"]));
40   -
  33 +if(isset($_POST ["codigo"])){
  34 + $codigo = $_POST ["codigo"];
  35 + $codigo = str_replace ( " ", "", \admin\php\funcoesAdmin\removeAcentos ( $codigo ) );
  36 + $codigo = str_replace ( ".", "", $codigo );
  37 + $codigo = strip_tags ( $codigo );
  38 + $codigo = htmlspecialchars ( $codigo, ENT_QUOTES );
  39 +}
  40 +if(isset($_POST ["palavra"])){
  41 + setcookie("palavraFiltro", strip_tags($_POST ["palavra"]));
  42 +}
41 43 $funcao = strtoupper ( $funcao );
42 44 switch ($funcao) {
43 45 case "ADICIONAR" :
... ...
admin1/catalogo/mapfile/index.php
... ... @@ -2,8 +2,10 @@
2 2 //TODO incluir novamente ou nao a ativacao do metadata editorsql?
3 3 define ( "ONDEI3GEO", "../../.." );
4 4 include ("exec.php");
5   -
6 5 include "../../head.php";
  6 +if(!isset($_COOKIE["palavraFiltro"])){
  7 + $_COOKIE["palavraFiltro"] = "";
  8 +}
7 9 ?>
8 10 <div class="container-fluid migalha">
9 11 <div class="row">
... ...
admin1/dicionario/mapas.js
... ... @@ -78,5 +78,10 @@ i3GEOadmin.mapas.dicionario = {
78 78 pt : "Link direto para abertura do mapa (despreza os outros par&acirc;metros)",
79 79 en : "",
80 80 es : ""
  81 + } ],
  82 + 'criaEditaMapa' : [ {
  83 + pt : "Voc&ecirc; pode tamb&eacute;m criar um novo mapa ou editar um existente utilizando a interface interativa. Essa op&ccedil;&atilde;o permite salvar o mapfile completo no banco de dados, dessa forma &eacute; poss&iacute;vel, por exemplo, alterar a legenda padr&atilde;o das camadas, adicionar camadas e servi&ccedil;os WMS, etc.",
  84 + en : "",
  85 + es : ""
81 86 } ]
82 87 };
... ...
admin1/index.php
... ... @@ -7,7 +7,10 @@ session_name ( &quot;i3GeoLogin&quot; );
7 7 if (! empty ( $_COOKIE ["i3geocodigologin"] )) {
8 8 session_id ( $_COOKIE ["i3geocodigologin"] );
9 9 session_start ();
10   - if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) {
  10 + if(!isset($_SESSION ["usuario"])){
  11 + $_SESSION ["usuario"] = "";
  12 + }
  13 + if ($_SESSION ["usuario"] == "" || $_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) {
11 14 $_COOKIE = array ();
12 15 $_SESSION = array ();
13 16 session_destroy ();
... ...
admin1/php/salvamapabanco.php 0 → 100644
... ... @@ -0,0 +1,129 @@
  1 +<?php
  2 +/****************************************************************/
  3 +// include (dirname ( __FILE__ ) . "/../../../ms_configura.php");
  4 +//
  5 +// checa login
  6 +// valida _GET e _POST, juntando em _GET
  7 +// pega algumas variaveis de uso mais comum
  8 +// session_start
  9 +//
  10 +include ("checaLogin.php");
  11 +\admin\php\login\checaLogin();
  12 +// funcoes de administracao
  13 +include ("funcoesAdmin.php");
  14 +//
  15 +// carrega outras funcoes e extensoes do PHP
  16 +//
  17 +include ("../../classesphp/carrega_ext.php");
  18 +//
  19 +// conexao com o banco de administracao
  20 +// cria as variaveis $dbh e $dbhw alem de conexaoadmin
  21 +//
  22 +include ("conexao.php");
  23 +
  24 +/**
  25 + * ************************************************************
  26 + */
  27 +if (\admin\php\funcoesAdmin\verificaOperacaoSessao("admin/html/mapas") === false) {
  28 + header("HTTP/1.1 403 Vc nao pode realizar essa operacao");
  29 + exit();
  30 +}
  31 +if (isset($_POST["id_mapa"])) {
  32 + $id_mapa = $_POST["id_mapa"];
  33 + \admin\php\funcoesAdmin\testaSafeNumerico(array(
  34 + $id_mapa
  35 + ));
  36 +} else {
  37 + exit;
  38 +}
  39 +$funcao = strtoupper($funcao);
  40 +switch ($funcao) {
  41 + case "SALVAMAPFILE":
  42 + $nameatual = session_name();
  43 + $idatual = session_id();
  44 + session_write_close();
  45 +
  46 + session_name("i3GeoPHP");
  47 + session_id($_POST["sid"]);
  48 + session_start();
  49 + $arqmapfile = $_SESSION["map_file"];
  50 + $interface = $_SESSION["customDir"]."/".$_SESSION["interfacePadrao"];
  51 +
  52 + session_write_close();
  53 + session_name("$nameatual");
  54 + session_id($idatual);
  55 + session_start();
  56 + //
  57 + // as configuracoes especiais do mapa, definidas nas preferencias ou em ferramentas abertas quando o mapa e salvo,
  58 + // sao convertidas em base64 do lado do cliente
  59 + // esses dados sao entao armazenados como tags METADATA no mapfile
  60 + // quando o mapa e restaurado, esses valores sao recuperados
  61 + // a string que vai no metadata segue o padrao JSON
  62 + // o parser para reconstruir os valores e feito em javascript, no cliente
  63 + //
  64 + $customizacoesinit = array();
  65 + if (isset($_POST["preferenciasbase64"]) || isset($_POST["geometriasbase64"]) || isset($_POST["graficosbase64"]) || isset($_POST["tabelasbase64"])) {
  66 + $customizacoesinit[] = '"preferenciasbase64":"' . $_POST["preferenciasbase64"] . '"';
  67 + $customizacoesinit[] = '"geometriasbase64":"' . $_POST["geometriasbase64"] . '"';
  68 + $customizacoesinit[] = '"graficosbase64":"' . $_POST["graficosbase64"] . '"';
  69 + $customizacoesinit[] = '"tabelasbase64":"' . $_POST["tabelasbase64"] . '"';
  70 + $m = ms_newMapObj($arqmapfile);
  71 + $m->setmetadata("CUSTOMIZACOESINIT", '{' . implode(",", $customizacoesinit) . '}');
  72 + $m->save($arqmapfile);
  73 + }
  74 + if ($_POST["ext"] && $_POST["ext"] != "") {
  75 + $e = explode(" ", $_POST["ext"]);
  76 + $m = ms_newMapObj($arqmapfile);
  77 + $extatual = $m->extent;
  78 + $extatual->setextent((min($e[0], $e[2])), (min($e[1], $e[3])), (max($e[0], $e[2])), (max($e[1], $e[3])));
  79 + $m->save($arqmapfile);
  80 + }
  81 + $handle = fopen($arqmapfile, 'r');
  82 + $conteudo = fread($handle, filesize($arqmapfile));
  83 + fclose($handle);
  84 + // $conteudo = base64_encode($conteudo);
  85 + $conteudo = str_replace("'", "_!_", $conteudo);
  86 + $conteudo = str_replace('"', "_!!_", $conteudo);
  87 + $conteudo = str_replace(array(
  88 + "<?",
  89 + "?>"
  90 + ), "", $conteudo);
  91 + $dataCol = array(
  92 + "mapfile" => $conteudo,
  93 + "outros_mapa" => "&restauramapa=$id_mapa&interface=" . $_POST["url"]."/".$interface
  94 + );
  95 + $resultado = \admin\php\funcoesAdmin\i3GeoAdminUpdate ( $dbhw, "i3geoadmin_mapas", $dataCol, "WHERE id_mapa = $id_mapa" );
  96 + $dbhw = null;
  97 + $dbh = null;
  98 + if ($resultado === false) {
  99 + header("HTTP/1.1 500 erro ao consultar banco de dados");
  100 + }
  101 + $dbh = null;
  102 + \admin\php\funcoesAdmin\retornaJSON( array(
  103 + "status" => "ok"
  104 + ));
  105 + exit();
  106 + break;
  107 + case "REMOVEMAPFILE":
  108 + $dataCol = array(
  109 + "mapfile" => "",
  110 + "outros_mapa" => ""
  111 + );
  112 + $resultado = \admin\php\funcoesAdmin\i3GeoAdminUpdate ( $dbhw, "i3geoadmin_mapas", $dataCol, "WHERE id_mapa = $id_mapa" );
  113 + $dbhw = null;
  114 + $dbh = null;
  115 + if ($resultado === false) {
  116 + header("HTTP/1.1 500 erro ao consultar banco de dados");
  117 + }
  118 + $dbh = null;
  119 + \admin\php\funcoesAdmin\retornaJSON( array(
  120 + "status" => "ok"
  121 + ));
  122 + exit();
  123 + break;
  124 + default:
  125 + if (! empty($funcao))
  126 + header("HTTP/1.1 500 erro funcao nao existe");
  127 + break;
  128 +}
  129 +?>
0 130 \ No newline at end of file
... ...
css/default.css
... ... @@ -955,7 +955,7 @@ td {
955 955 background: none !important;
956 956 text-indent: 0px !important;
957 957 color: white;
958   - top: 0px;
  958 + top: 3px;
959 959 }
960 960 /*
961 961 .yui-skin-sam .container-close::after {
... ...
ferramentas/atalhosedicao/index.js
... ... @@ -198,7 +198,7 @@ i3GEOF.atalhosedicao =
198 198 ""
199 199 );
200 200 divid = janela[2].id;
201   - janela[0].moveTo(100,60);
  201 + janela[0].moveTo(180,60);
202 202 $i("i3GEOF.atalhosedicao_corpo").style.backgroundColor = "white";
203 203 i3GEOF.atalhosedicao.inicia(divid, "i3GEOF.atalhosedicao");
204 204 },
... ...
ferramentas/graficointerativo1/index.js
... ... @@ -312,7 +312,7 @@ i3GEOF.graficointerativo1 =
312 312 * Retorna um objeto contendo os valores de todos os parametros utilizados no grafico de tal forma que um grafico possa ser
313 313 * renderizado novamente
314 314 *
315   - * A funcao i3GEO.php.salvaMapaBanco utiliza retornaConfig e cria um objeto que ira armazenar os parametros de cada janela
  315 + * A funcao que salva o mapa no banco de adm utiliza retornaConfig e cria um objeto que ira armazenar os parametros de cada janela
316 316 */
317 317 retornaConfig : function(idjanela,novoid) {
318 318 // as chaves do objeto correspondem ao ID de cada elemento
... ...
ferramentas/salvamapa/dicionario.js
... ... @@ -10,46 +10,21 @@ i3GEOF.salvaMapa.dicionario = {
10 10 en : "",
11 11 es : ""
12 12 } ],
13   - 'editaListaMapas' : [ {
14   - pt : "Clique aqui para editar a lista de mapas",
15   - en : "",
16   - es : ""
17   - } ],
18 13 'baixaArquivo' : [ {
19 14 pt : "Baixar o arquivo",
20 15 en : "",
21 16 es : ""
22 17 } ],
23   - 'testaArquivo' : [ {
24   - pt : "Clique aqui para testar",
25   - en : "",
26   - es : ""
27   - } ],
28 18 'msgMapaSalvo' : [ {
29 19 pt : "Mapa salvo",
30 20 en : "",
31 21 es : ""
32 22 } ],
33   - 'atualizaIdMapa' : [ {
34   - pt : "ID do mapa que ser&aacute; atualizado (opcional).<br>Se for um mapa novo, deixe em branco",
35   - en : "",
36   - es : ""
37   - } ],
38   - 'tituloMapa' : [ {
39   - pt : "T&iacute;tulo do mapa",
40   - en : "",
41   - es : ""
42   - } ],
43 23 'ajuda' : [ {
44 24 pt : "Salvando o mapa atual, voc&ecirc; poder&aacute; carreg&aacute;-lo novamente. Gr&aacute;ficos e desenhos tamb&eacute;m s&atilde;o salvos.",
45 25 en : "",
46 26 es : ""
47 27 } ],
48   - 'ajuda2' : [ {
49   - pt : "Existem duas maneiras de fazer isso, conforme explicado a seguir.",
50   - en : "",
51   - es : ""
52   - } ],
53 28 'ajuda3' : [ {
54 29 pt : "Armazene o arquivo de configura&ccedil;&atilde;o do mapa em seu computador,",
55 30 en : "",
... ... @@ -65,11 +40,6 @@ i3GEOF.salvaMapa.dicionario = {
65 40 en : "",
66 41 es : ""
67 42 } ],
68   - 'cadastraMapa' : [ {
69   - pt : "Fa&ccedil;a login e cadastre o mapa atual no banco de dados existente no servidor web. Com isso o mapa ser&aacute; salvo de forma permanente e outros usu&aacute;rios poder&atilde;o utiliz&aacute;-lo. Consulte o admnistrador do site que voc&ecirc; est&aacute; utilizando para saber mais sobre a pol&iacute;tica de uso do mapa que for salvo",
70   - en : "",
71   - es : ""
72   - } ],
73 43 'salvaPreferencias' : [ {
74 44 pt : "As prefer&ecirc;ncias definidas atualmente ser&atilde;o salvas tamb&eacute;m.",
75 45 en : "",
... ...
ferramentas/salvamapa/index.js
... ... @@ -84,51 +84,6 @@ i3GEOF.salvaMapa = {
84 84 }
85 85 i3GEO.php.mudaext(temp,"nenhum",i3GEO.parametros.mapexten,i3GEO.configura.locaplic,i3GEO.configura.sid,atualiza,geo);
86 86 },
87   - htmlMapaBanco: function(onde){
88   - onde = $i(onde);
89   - if(onde){
90   - try{
91   - onde.innerHTML = "<a style='line-height:20px;font-size:12px;' href='#' onclick='i3GEOF.salvaMapa.salvaMapaBanco()' >"+$trad('salvaMapa',i3GEOF.salvaMapa.dicionario)+"</a><br>" +
92   - "<a style='line-height:20px;font-size:12px;' href='#' onclick='i3GEO.mapa.dialogo.listaDeMapasBanco()'>"+$trad('listaMapas',i3GEOF.salvaMapa.dicionario)+"</a><br>" +
93   - "<a style='line-height:20px;font-size:12px;' href='"+i3GEO.configura.locaplic+"/admin/html/mapas.html' target='_blank' >"+$trad('editaListaMapas',i3GEOF.salvaMapa.dicionario)+"</a>";
94   - }
95   - catch(erro){i3GEO.janela.tempoMsg(erro);}
96   - }
97   - },
98   -
99   - salvaMapaBanco: function(){
100   - var texto,funcaoOK,login = i3GEO.login.verificaCookieLogin();
101   - if(login === false){
102   - i3GEO.login.dialogo.abreLogin();
103   - }
104   - else{
105   - funcaoOK = function(){
106   - var temp,
107   - id_mapa = $i("i3GEOFsalvamapaMapaId").value,
108   - titulo = $i("i3GEOjanelaprompt").value;
109   - if(titulo === ""){
110   - return;
111   - }
112   - temp = function(retorno){
113   - if(retorno.id && retorno.id != ""){
114   - i3GEO.janela.tempoMsg($trad('msgMapaSalvo',i3GEOF.salvaMapa.dicionario));
115   - }
116   - else{
117   - if(retorno.status){
118   - i3GEO.janela.tempoMsg(retorno.status);
119   - }
120   - else{
121   - i3GEO.janela.tempoMsg(retorno);
122   - }
123   - }
124   - };
125   - i3GEO.php.salvaMapaBanco(temp,titulo,id_mapa,$i("i3GEOFsalvaPref").checked,true,true,true);
126   - };
127   - texto = $trad('atualizaIdMapa',i3GEOF.salvaMapa.dicionario)+"<br><div id=i3GEOFsalvamapaMapa ></div><br><br><input style='position:relative;top:2px;' checked type=checkbox id=i3GEOFsalvaPref />"+$trad('salvaPreferencias',i3GEOF.salvaMapa.dicionario);
128   - i3GEO.janela.prompt(texto + "<br><br>"+$trad('tituloMapa',i3GEOF.salvaMapa.dicionario),funcaoOK);
129   - i3GEOF.salvaMapa.comboMapas("i3GEOFsalvamapaMapa");
130   - }
131   - },
132 87 /*
133 88 Function: html
134 89  
... ... @@ -176,21 +131,5 @@ i3GEOF.salvaMapa = {
176 131 divid = janela[2].id;
177 132 i3GEOF.salvaMapa.aguarde = $i("i3GEOF.salvaMapa_imagemCabecalho").style;
178 133 i3GEOF.salvaMapa.inicia(divid);
179   - },
180   - comboMapas: function(onde){
181   - var p = i3GEO.configura.locaplic+"/admin/php/mapas.php?funcao=pegaMapas",
182   - combo = function(retorno){
183   - var n = retorno.length,
184   - i,
185   - ins = "" +
186   - "<select id='i3GEOFsalvamapaMapaId' onchange='$i(\"i3GEOjanelaprompt\").value = this.options[this.selectedIndex].text'>" +
187   - " <option value=''>---</option>";
188   - for(i=0;i<n;i++){
189   - ins += "<option value='"+retorno[i].id_mapa+"'>"+retorno[i].nome_mapa+"</option>";
190   - }
191   - ins += "</select>";
192   - $i(onde).innerHTML = ins;
193   - };
194   - i3GEO.util.ajaxGet(p,combo);
195 134 }
196 135 };
... ...
ferramentas/salvamapa/template_mst.html
1 1 <div class='container-fluid customScrollBar'>
2 2 <h5>{{{ajuda}}}</h5>
3   - <h5>{{{ajuda2}}}</h5>
4 3 <h5>
5   - <b>1- </b>{{{ajuda3}}} {{{ajuda4}}}
  4 + {{{ajuda3}}} {{{ajuda4}}}
6 5 </h5>
7   -
8 6 <a class='btn btn-primary btn-sm btn-raised' href='{{{locaplic}}}/ferramentas/salvamapa/forcedownload.php?g_sid={{{sid}}}' target='_blank'>{{{baixaArquivo}}}</a>
9   -
10   - <h5>
11   - <b>2- </b>{{{cadastraMapa}}}
12   - </h5>
13   - <a class='btn btn-primary btn-sm btn-raised' href='javascript:void(0)' onclick='i3GEOF.salvaMapa.salvaMapaBanco()'>{{{salvaMapa}}}</a>
14   - <a class='btn btn-primary btn-sm btn-raised' href='javascript:void(0)' onclick='i3GEO.mapa.dialogo.listaDeMapasBanco()'>{{{listaMapas}}}</a>
15 7 </div>
16 8 \ No newline at end of file
... ...
ferramentas/salvamapabanco/dependencias.php 0 → 100755
... ... @@ -0,0 +1,24 @@
  1 +<?php
  2 +include(dirname(__FILE__)."/../blacklist.php");
  3 +verificaBlFerramentas(basename(dirname(__FILE__)));
  4 +
  5 +
  6 +/**
  7 + * Carrega os programas javascript necessarios para a ferramenta
  8 + * Esse programa e usado na tag <script> ou com a funcao scripttag do i3Geo
  9 + * Alem de carregar os scripts, carrega tambem o template no formato MUSTACHE, definindo a variavel
  10 + * javascript i3GEOF.salvaMapa.MUSTACHE
  11 + * O template e substituido pelos valores definidos em index.js no momento da inicializacao da ferramenta
  12 + */
  13 +if(extension_loaded('zlib')){
  14 + ob_start('ob_gzhandler');
  15 +}
  16 +header("Content-type: text/javascript");
  17 +include("index.js");
  18 +include("dicionario.js");
  19 +echo "\n";
  20 +
  21 +if(extension_loaded('zlib')){
  22 + ob_end_flush();
  23 +}
  24 +?>
0 25 \ No newline at end of file
... ...
ferramentas/salvamapabanco/dicionario.js 0 → 100755
... ... @@ -0,0 +1,38 @@
  1 +//+$trad(1,i3GEOF.salvaMapa.dicionario)+
  2 +i3GEOF.salvaMapaBanco.dicionario = {
  3 + 'salvaMapa' : [ {
  4 + pt : "Salvar o mapa",
  5 + en : "",
  6 + es : ""
  7 + } ],
  8 + 'msgMapaSalvo' : [ {
  9 + pt : "Mapa salvo",
  10 + en : "",
  11 + es : ""
  12 + } ],
  13 + 'atualizaIdMapa' : [ {
  14 + pt : "ID do mapa que ser&aacute; atualizado (opcional).<br>Se for um mapa novo, deixe em branco",
  15 + en : "",
  16 + es : ""
  17 + } ],
  18 + 'tituloMapa' : [ {
  19 + pt : "T&iacute;tulo do mapa",
  20 + en : "",
  21 + es : ""
  22 + } ],
  23 + 'ajuda' : [ {
  24 + pt : "Mantenha essa janela aberta para poder salvar o mapa. Utilize as op&ccedil;&otilde;es do i3Geo para montar seu mapa.",
  25 + en : "",
  26 + es : ""
  27 + } ],
  28 + 'salvaPreferencias' : [ {
  29 + pt : "As prefer&ecirc;ncias definidas atualmente ser&atilde;o salvas tamb&eacute;m.",
  30 + en : "",
  31 + es : ""
  32 + } ],
  33 + 'remove' : [ {
  34 + pt : "Remover",
  35 + en : "",
  36 + es : ""
  37 + } ]
  38 +};
... ...
ferramentas/salvamapabanco/index.js 0 → 100755
... ... @@ -0,0 +1,252 @@
  1 +/*
  2 +Title: Salva mapa
  3 +
  4 +Faz o download do mapfile atualmente em uso. Posteriormente, o mapfile pode ser enviado de volta ao servidor para restaurar o mapa
  5 +
  6 +Veja:
  7 +
  8 +<i3GEO.mapa.dialogo.salvaMapa>
  9 +
  10 +Arquivo: i3geo/ferramentas/salvamapa/index.js.php
  11 +
  12 +About: Licen&ccedil;a
  13 +
  14 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  15 +
  16 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  17 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  18 +
  19 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  20 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  21 +GNU conforme publicada pela Free Software Foundation;
  22 +
  23 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  24 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  25 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  26 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  27 +Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
  28 +GNU junto com este programa; se n&atilde;o, escreva para a
  29 +Free Software Foundation, Inc., no endere&ccedil;o
  30 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  31 + */
  32 +if(typeof(i3GEOF) === 'undefined'){
  33 + var i3GEOF = {};
  34 +}
  35 +/*
  36 +Classe: i3GEOF.salvaMapa
  37 + */
  38 +i3GEOF.salvaMapaBanco = {
  39 + ID_MAPA: "",
  40 + /*
  41 + Variavel: aguarde
  42 +
  43 + Estilo do objeto DOM com a imagem de aguarde existente no cabe&ccedil;alho da janela.
  44 + */
  45 + aguarde: "",
  46 + /**
  47 + * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
  48 + */
  49 + MUSTACHE : "",
  50 + /**
  51 + * Susbtitutos para o template
  52 + */
  53 + mustacheHash : function() {
  54 + var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.salvaMapaBanco.dicionario);
  55 + dicionario["locaplic"] = i3GEO.configura.locaplic;
  56 + dicionario["sid"] = i3GEO.configura.sid;
  57 + return dicionario;
  58 + },
  59 + /*
  60 + Function: inicia
  61 +
  62 + Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
  63 +
  64 + Parametro:
  65 +
  66 + iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
  67 + */
  68 + inicia: function(iddiv){
  69 + if(i3GEOF.salvaMapaBanco.MUSTACHE == ""){
  70 + $.get(i3GEO.configura.locaplic + "/ferramentas/salvamapabanco/template_mst.html", function(template) {
  71 + i3GEOF.salvaMapaBanco.MUSTACHE = template;
  72 + i3GEOF.salvaMapaBanco.inicia(iddiv);
  73 + });
  74 + return;
  75 + }
  76 + $i(iddiv).innerHTML = i3GEOF.salvaMapaBanco.html(iddiv);
  77 + },
  78 +
  79 + /*
  80 + Function: html
  81 +
  82 + Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
  83 +
  84 + Retorno:
  85 +
  86 + String com o c&oacute;digo html
  87 + */
  88 + html: function() {
  89 + var ins = Mustache.render(i3GEOF.salvaMapaBanco.MUSTACHE, i3GEOF.salvaMapaBanco.mustacheHash());
  90 + return ins;
  91 + },
  92 + /*
  93 + Function: iniciaJanelaFlutuante
  94 +
  95 + Cria a janela flutuante para controle da ferramenta.
  96 + */
  97 + iniciaJanelaFlutuante: function(id_mapa){
  98 + i3GEOF.salvaMapaBanco.ID_MAPA = id_mapa;
  99 + var janela,divid,titulo;
  100 + if ($i("i3GEOF.salvaMapaBanco")) {
  101 + return;
  102 + }
  103 + cabecalho = function(){};
  104 + minimiza = function(){
  105 + i3GEO.janela.minimiza("i3GEOF.salvaMapaBanco",200);
  106 + };
  107 + titulo = "<span class='i3GeoTituloJanelaBsNolink' >" + $trad("u17") + "</span></div>";
  108 + janela = i3GEO.janela.cria(
  109 + "300px",
  110 + "180px",
  111 + "",
  112 + "",
  113 + "",
  114 + titulo,
  115 + "i3GEOF.salvaMapaBanco",
  116 + false,
  117 + "hd",
  118 + cabecalho,
  119 + minimiza,
  120 + "",
  121 + true,
  122 + "",
  123 + "",
  124 + "",
  125 + ""
  126 + );
  127 + divid = janela[2].id;
  128 + janela[0].moveTo(180,60);
  129 + i3GEOF.salvaMapaBanco.aguarde = $i("i3GEOF.salvaMapaBanco_imagemCabecalho").style;
  130 + i3GEOF.salvaMapaBanco.inicia(divid);
  131 + },
  132 + salva: function(){
  133 + var texto,preferencias,geometrias,
  134 + login = i3GEO.login.verificaCookieLogin(),
  135 + graficos = "",
  136 + tabelas = "";
  137 + if(login === false){
  138 + alert("Login!");
  139 + }
  140 + if(i3GEOF.salvaMapaBanco.ID_MAPA === ""){
  141 + return;
  142 + } else {
  143 + var id_mapa = i3GEOF.salvaMapaBanco.ID_MAPA;
  144 + }
  145 + // pega as preferencias do usuario tambem
  146 + try {
  147 + preferencias = i3GEO.util.base64encode(i3GEO.util.pegaDadosLocal("preferenciasDoI3Geo"));
  148 + } catch (e) {
  149 + preferencias = "";
  150 + }
  151 + // pega as geometrias no layer grafico
  152 + try {
  153 + geometrias = i3GEO.mapa.compactaLayerGrafico();
  154 + if (!geometrias) {
  155 + geometrias = "";
  156 + }
  157 + } catch (e) {
  158 + geometrias = "";
  159 + }
  160 + // pega as ferramentas do tipo grafico
  161 + if (i3GEOF.graficointerativo1) {
  162 + try {
  163 + graficos = i3GEOF.graficointerativo1.compactaConfig();
  164 + if (!graficos) {
  165 + graficos = "";
  166 + }
  167 + } catch (e) {
  168 + graficos = "";
  169 + }
  170 + }
  171 + // pega as ferramentas do tipo tabela
  172 + if (i3GEOF.tabela) {
  173 + try {
  174 + tabelas = i3GEOF.tabela.compactaConfig();
  175 + if (!tabelas) {
  176 + tabelas = "";
  177 + }
  178 + } catch (e) {
  179 + tabelas = "";
  180 + }
  181 + }
  182 + var url = (window.location.href.split("?")[0]),
  183 + p = i3GEO.configura.locaplic + "/admin1/php/salvamapabanco.php?";
  184 + var par =
  185 + "funcao=salvaMapfile"
  186 + + "&id_mapa="
  187 + + id_mapa
  188 + + "&ext="
  189 + + i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten)
  190 + + "&sid="
  191 + + i3GEO.configura.sid
  192 + + "&preferenciasbase64="
  193 + + preferencias
  194 + + "&geometriasbase64="
  195 + + geometrias
  196 + + "&graficosbase64="
  197 + + graficos
  198 + + "&tabelasbase64="
  199 + + tabelas
  200 + + "&url="
  201 + + i3GEO.configura.locaplic;
  202 + $.post(
  203 + p,
  204 + par
  205 + )
  206 + .done(
  207 + function(data, status){
  208 + i3GEO.janela.tempoMsg($trad('msgMapaSalvo',i3GEOF.salvaMapaBanco.dicionario));
  209 +
  210 + }
  211 + )
  212 + .fail(
  213 + function(data){
  214 + i3GEO.janela.tempoMsg(retorno);
  215 + }
  216 + );
  217 + },
  218 + remove: function(){
  219 + var login = i3GEO.login.verificaCookieLogin();
  220 + if(login === false){
  221 + alert("Login!");
  222 + }
  223 + if(i3GEOF.salvaMapaBanco.ID_MAPA === ""){
  224 + return;
  225 + } else {
  226 + var id_mapa = i3GEOF.salvaMapaBanco.ID_MAPA;
  227 + }
  228 +
  229 + p = i3GEO.configura.locaplic + "/admin1/php/salvamapabanco.php?";
  230 + var par =
  231 + "funcao=removeMapfile"
  232 + + "&id_mapa="
  233 + + id_mapa
  234 + + "&sid="
  235 + + i3GEO.configura.sid;
  236 + $.post(
  237 + p,
  238 + par
  239 + )
  240 + .done(
  241 + function(data, status){
  242 + i3GEO.janela.tempoMsg($trad('msgMapaSalvo',i3GEOF.salvaMapaBanco.dicionario));
  243 +
  244 + }
  245 + )
  246 + .fail(
  247 + function(data){
  248 + i3GEO.janela.tempoMsg(retorno);
  249 + }
  250 + );
  251 + }
  252 +};
0 253 \ No newline at end of file
... ...
ferramentas/salvamapabanco/template_mst.html 0 → 100755
... ... @@ -0,0 +1,7 @@
  1 +<div class='container-fluid customScrollBar'>
  2 + <div class='form-group condensed'>
  3 + <a class='btn btn-primary btn-sm btn-raised' href='javascript:void(0)' onclick='i3GEOF.salvaMapaBanco.salva()'>{{{salvaMapa}}}</a>
  4 + <a class='btn btn-primary btn-sm btn-raised' href='javascript:void(0)' onclick='i3GEOF.salvaMapaBanco.remove()'>{{{remove}}}</a>
  5 + </div>
  6 + <h5 class='alert alert-info'>{{{ajuda}}}</h5>
  7 +</div>
0 8 \ No newline at end of file
... ...
ferramentas/tabela/index.js
... ... @@ -373,7 +373,7 @@ i3GEOF.tabela =
373 373 * Retorna um objeto contendo os valores de todos os parametros utilizados na tabela de tal forma que possa ser renderizado
374 374 * novamente
375 375 *
376   - * A funcao i3GEO.php.salvaMapaBanco utiliza retornaConfig e cria um objeto que ira armazenar os parametros de cada janela
  376 + * A funcao que salva o mapa no banco utiliza retornaConfig e cria um objeto que ira armazenar os parametros de cada janela
377 377 */
378 378 retornaConfig : function(idjanela, novoid) {
379 379 // as chaves do objeto correspondem ao ID de cada elemento
... ...
js/php.js
... ... @@ -1643,83 +1643,6 @@ i3GEO.php =
1643 1643 i3GEO.util.ajaxGet(p, funcao);
1644 1644 },
1645 1645 /**
1646   - * Function: salvaMapaBanco
1647   - *
1648   - * Salva o mapfile atual no banco de dados de administracao
1649   - */
1650   - salvaMapaBanco : function(funcao, titulo, id_mapa, preferencias, geometrias, graficos, tabelas) {
1651   - // pega as preferencias do usuario tambem
1652   - if (preferencias) {
1653   - try {
1654   - preferencias = i3GEO.util.base64encode(i3GEO.util.pegaDadosLocal("preferenciasDoI3Geo"));
1655   - } catch (e) {
1656   - preferencias = "";
1657   - }
1658   - } else {
1659   - preferencias = "";
1660   - }
1661   - // pega as geometrias no layer grafico
1662   - if (geometrias) {
1663   - try {
1664   - geometrias = i3GEO.mapa.compactaLayerGrafico();
1665   - if (!geometrias) {
1666   - geometrias = "";
1667   - }
1668   - } catch (e) {
1669   - geometrias = "";
1670   - }
1671   - } else {
1672   - geometrias = "";
1673   - }
1674   - // pega as ferramentas do tipo grafico
1675   - if (graficos && i3GEOF && i3GEOF.graficointerativo1) {
1676   - try {
1677   - graficos = i3GEOF.graficointerativo1.compactaConfig();
1678   - if (!graficos) {
1679   - graficos = "";
1680   - }
1681   - } catch (e) {
1682   - graficos = "";
1683   - }
1684   - } else {
1685   - graficos = "";
1686   - }
1687   - // pega as ferramentas do tipo tabela
1688   - if (tabelas && i3GEOF && i3GEOF.tabela) {
1689   - try {
1690   - tabelas = i3GEOF.tabela.compactaConfig();
1691   - if (!tabelas) {
1692   - tabelas = "";
1693   - }
1694   - } catch (e) {
1695   - tabelas = "";
1696   - }
1697   - } else {
1698   - tabelas = "";
1699   - }
1700   - var url = (window.location.href.split("?")[0]),
1701   - p = i3GEO.configura.locaplic + "/admin/php/mapas.php?";
1702   - var par =
1703   - "funcao=salvaMapfile"
1704   - + "&url="
1705   - + url.replace("#", "")
1706   - + "&arqmapfile="
1707   - + i3GEO.parametros.mapfile
1708   - + "&nome_mapa="
1709   - + titulo
1710   - + "&id_mapa="
1711   - + id_mapa
1712   - + "&ext="
1713   - + i3GEO.util.extOSM2Geo(i3GEO.parametros.mapexten
1714   - );
1715   -
1716   - cp = new cpaint();
1717   - cp.set_transfer_mode('POST');
1718   - cp.set_response_type("JSON");
1719   - cp.call(p + par, "foo", funcao, "&preferenciasbase64=" + preferencias + "&geometriasbase64=" + geometrias + "&graficosbase64="
1720   - + graficos + "&tabelasbase64=" + tabelas);
1721   - },
1722   - /**
1723 1646 * Function: marcadores2shp
1724 1647 *
1725 1648 * Converte os marcadores de lugar em uma camada shapefile
... ...
ms_criamapa.php
... ... @@ -465,6 +465,10 @@ $_SESSION[&quot;mensagemInicia&quot;] = $mensagemInicia_;
465 465 $_SESSION["interfacePadrao"] = $interfacePadrao_;
466 466 $_SESSION["logExec"] = $logExec_;
467 467 $_SESSION["i3geoPermiteLogin"] = $i3geoPermiteLogin_;
  468 +if(!isset($customDir)){
  469 + $customDir = "";
  470 +}
  471 +$_SESSION["customDir"] = $customDir;
468 472 if(isset($interface_)){
469 473 $_SESSION["interface"] = $interface_;
470 474 }
... ...