Commit 285785ff2779e2cd0fc6ea89cf0ece22ffb43baf

Authored by Edmar Moretti
1 parent 39fa7f25

Inclusão de variável para definir a interface (ms_configura.php). Reformulação n…

…a inicialização para ganho de performance.
aplicmap/geral.htm
... ... @@ -159,9 +159,18 @@ vc pode optar por colocar mensagens de ajuda em algum lugar
159 159 <!-- aqui são mostradas imagens obtidas do metadata mensagem que pode existir em cada layer -->
160 160 <tr style="border:0px"><td colspan=3 style=background-color:black ><input style="border:0px none; background-color:black;color:white;font-size:12pt;" type="text" size="1" id="i3geo_letreiro" ></td></tr>
161 161 <tr style="border:0px"><td colspan=3 style=background-color:black;color:white >geoprocessamento@mma.gov.br</td></tr>
162   -
163 162 </table>
164 163  
  164 +<center>
  165 +<br><br>
  166 +<table><tr>
  167 +<td colspan=3 ><center><img src='../imagens/i3geo1.jpg'></td></tr>
  168 +<tr><td style="padding:10px;"><center><img src='../imagens/pspb.png'></td>
  169 +<td style="padding:10px;"><center><img src='../imagens/mapserv.png'></td>
  170 +<td style="padding:10px;"><center><a href='http://mapas.mma.gov.br/download' target=blank ><img src='../imagens/somerights20_pt.gif' ></a></td>
  171 +</tr></table>
  172 +
  173 +
165 174 <!--
166 175 Barra de botoes que serão incluídos na janela móvel de navegação
167 176 Para excluir um botão é só apagar a linha.
... ...
ms_configura.php
... ... @@ -16,9 +16,13 @@ As variáveis de configuração são definidas em blocos diferentes conforme o siste
16 16 O ms_criamapa.php carrega o ms_configura.php e armazena a maior parte das variáveis na seção. Algumas variáveis
17 17 são também fornecidas para o cliente (navegador) na inicialização do mapa e ficam disponíveis em variáveis javascript.
18 18  
19   -File: i3geo/ms_configura.php
  19 +Arquivo:
20 20  
21   -About: Licença
  21 +i3geo/ms_configura.php
  22 +
  23 +Licenca:
  24 +
  25 +GPL2
22 26  
23 27 I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
24 28  
... ... @@ -39,32 +43,41 @@ Free Software Foundation, Inc., no endereço
39 43 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
40 44 */
41 45 /*
42   - Variable: $mensagemInicia
  46 + Variavel: mensagemInicia
43 47  
44 48 Mensagem de inicialização mostrada pelo programa ms_criamapa.php
  49 +
  50 + Tipo:
  51 + {string}
45 52 */
46 53 $mensagemInicia = 'Versão 4.2 beta 3';
47 54 /*
48   - Variable: $tituloInstituicao
  55 + Variable: tituloInstituicao
  56 +
  57 + Nome que será utilizado em alguns cabeçalhos e títulos de páginas
49 58  
50   - Nome que será utilizado em alguns cabçalhos e títulos de páginas
  59 + Tipo:
  60 + {string}
51 61 */
52 62 $tituloInstituicao = "MMA - Ministerio do Meio Ambiente";
53 63 /*
54   - Variable: $googleApiKey
  64 + Variable: googleApiKey
55 65  
56 66 Chave utilizada pela API do Google maps.
57 67  
58 68 A API do Google maps é utilizada em algumas funcionalidades do i3geo. Vc deve registrar uma chave
59 69 no site do Google para o seu endereço de servidor web. veja como fazer em:
60 70 http://code.google.com/apis/maps/signup.html
  71 +
  72 + Tipo:
  73 + {string}
61 74 */
62 75 $googleApiKey = "ABQIAAAAKguAlmd-hSDulF2T_tfWMxT3OAK09d_ZSDyC36iPGlww-4j-9xSrR2ZZUxVeZC01q8anfe5ntl_U4w";
63 76  
64 77 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
65 78 {
66 79 /*
67   - Variable: $navegadoresLocais
  80 + Variable: navegadoresLocais
68 81  
69 82 Ip dos usuarios que podem navegar no servidor para acessar arquivos de dados geográficos.
70 83  
... ... @@ -81,7 +94,9 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
81 94 $navegadoresLocais = "";
82 95  
83 96 Com a opção ativa na interface do mapa, o ip do cliente é verificado e caso estiver registrado no array, a navegação pelos diretórios do servidor será permitida. Para mais detalhes, veja a ferramenta i3geo/ferramentas/navegacaodir
84   -
  97 +
  98 + Tipo:
  99 + {array}
85 100 */
86 101 $navegadoresLocais = array(
87 102 array(
... ... @@ -93,50 +108,68 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
93 108 )
94 109 );
95 110 /*
96   - Variable: $editores
  111 + Variable: editores
97 112  
98 113 Ip dos usuarios que podem administrar o i3geo via navegador.
99 114  
100 115 Separe os ips por vírgula. Os usuários que tiverem seus ips listados, poderão editar o diretório i3geo/temas, desde que os mesmos tenham direito de leitura e escrita nesse diretório.
  116 +
  117 + Tipo:
  118 + {array}
101 119 */
102 120 $editores = array("127.0.0.1","localhost");
103 121 /*
104   - Variable: $dir_tmp
  122 + Variable: dir_tmp
105 123  
106 124 Caminho completo do diretório temporário utilizado pelo mapserver.
  125 +
  126 + Tipo:
  127 + {string}
107 128 */
108 129 $dir_tmp = "c:/ms4w/tmp/ms_tmp";
109 130 /*
110   - Variable: $locaplic
  131 + Variable: locaplic
111 132  
112 133 Caminho completo onde fica o I3Geo
  134 +
  135 + Tipo:
  136 + {string}
113 137 */
114 138 $locaplic = "c:/ms4w/apache/htdocs/i3geo";
115 139 /*
116   - Variable: $temasdir
  140 + Variable: temasdir
117 141  
118 142 Caminho completo do diretório onde ficam os arquivos .map correspondentes aos temas disponíveis
119 143 Esta variável não está implementada completamente. Os mapfiles devem ficar obrigatoriamente no diretório temas
  144 +
  145 + Tipo:
  146 + {string}
120 147 */
121 148 $temasdir = $locaplic."/temas"; //"c:/ms4w/apache/htdocs/i3geo/temas";
122 149 /*
123   - Variable: $temasaplic
  150 + Variable: temasaplic
124 151  
125 152 Caminho completo onde ficam os arquivos .map específicos do I3Geo
  153 +
  154 + Tipo:
  155 + {string}
126 156 */
127 157 $temasaplic = $locaplic."/aplicmap";//"c:\ms4w\apache\htdocs\i3geo\aplicmap";
128 158 /*
129   - Variable: $locmapserv
  159 + Variable: locmapserv
130 160  
131 161 Localização do executável do Mapserver conforme deve ser acrescentado a URL após o nome do host.
132 162  
133 163 Essa variável é necessária em processos que utilizam o mapserver no modo CGI.
134 164  
135 165 Por exemplo, se o endereço for http://localhost/cgi-bin/mapserv.exe, a variável deverá conter apenas /cgi-bin/mapserv.exe
  166 +
  167 + Tipo:
  168 + {string}
136 169 */
137 170 $locmapserv = "/cgi-bin/mapserv.exe";
138 171 /*
139   - Variable: $locsistemas
  172 + Variable: locsistemas
140 173  
141 174 Onde fica o xml que será utilizado para complementar a lista de temas disponíveis na árvore de adição de temas.
142 175  
... ... @@ -147,10 +180,13 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
147 180 Por meio dessa nova árvore pode-se disparar programas PHP que executam operações especiais para a montagem de uma nova camada a ser adicionada ao mapa.
148 181  
149 182 Veja a documentação específica do arquivo sistemas.xml para maiores detalhes.
  183 +
  184 + Tipo:
  185 + {string}
150 186 */
151 187 $locsistemas = "";
152 188 /*
153   - Variable: $locidentifica
  189 + Variable: locidentifica
154 190  
155 191 Onde fica o xml que será utilizado para complementar a lista de temas dispponíveis na ferramenta de identificação.
156 192  
... ... @@ -161,10 +197,13 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
161 197 Por meio dessa lista pode-se disparar programas PHP que executam operações especiais para a obtenção de dados com base em um par de coordenadas xy.
162 198  
163 199 Veja a documentação específica do arquivo identifica.xml para maiores detalhes.
  200 +
  201 + Tipo:
  202 + {string}
164 203 */
165 204 $locidentifica = "";
166 205 /*
167   - Variable: $locmapas
  206 + Variable: locmapas
168 207  
169 208 Onde fica o xml, para preencher a guia mapas.
170 209  
... ... @@ -173,37 +212,36 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
173 212 A guia "Mapas" mostra uma lista de links que permitem abrir mapas específicos. Essa lista é utilizada também pela versão mobile do i3geo.
174 213  
175 214 Veja a documentação específica do arquivo mapas.xml para maiores detalhes.
  215 +
  216 + Tipo:
  217 + {string}
176 218 */
177 219 $locmapas = "";
178 220 /*
179   - Variable: $R_path
  221 + Variable: R_path
180 222  
181 223 Onde esta o executavel do software R
182 224  
183 225 O R é um pacote estatístico utilizado pelo I3Geo para geração de gráficos e análises estatísticas
184 226 Se vc não possui o R instalado, comente a linha abaixo
  227 +
  228 + Tipo:
  229 + {string}
185 230 */
186 231 $R_path = "c:/r/win/bin/R.exe";
187 232 /*
188   - Variable: $postgis_con
189   -
190 233 Depreciado - não é mais necessário na versão 5.x do Mapserver
191   -
192 234 string de conexão com o banco de dados postgis utilizada para reallização de cálculos
193   -
194 235 se não existir, deixe em branco
195 236 */
196 237 $postgis_con = "";
197 238 /*
198   - Variable: $srid_area
199   -
200 239 Depreciado - não é mais necessário na versão 5.x do Mapserver
201   -
202 240 srid utilizado nos cálculos que exigem projeção equivalente
203 241 */
204 242 $srid_area = 1;
205 243 /*
206   - Variable: $postgis_mapa
  244 + Variable: postgis_mapa
207 245  
208 246 String de conexão para acesso aos dados (opcional).
209 247  
... ... @@ -214,10 +252,13 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
214 252 Se vc especificar essa variável, o mapa será forçado a recusar o modo de operação CGI.
215 253  
216 254 Para mais detalhes veja a função substituiCon em classesphp/funcoes_gerais.php
  255 +
  256 + Tipo:
  257 + {array}
217 258 */
218 259 $postgis_mapa = ""; //"user=geodados password=geodados dbname=geodados host=10.1.1.36 port=5432";
219 260 /*
220   - Variable: $menutemas
  261 + Variable: menutemas
221 262  
222 263 Array com a lista de arquivos xml que serão incluidos na guia de adição de temas. Se for "", será utilizado o arquivo default menutemas/menutemas.xml.
223 264  
... ... @@ -237,10 +278,13 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
237 278  
238 279 Para usar o menu default, utilize apenas $menutemas = ""; nesse caso, os menus serão obtidos do
239 280 banco de dados de administração. Para editar o banco de dados utilize http://localhost/i3geo/admin
  281 +
  282 + Tipo:
  283 + {string}
240 284 */
241 285 $menutemas = "";
242 286 /*
243   - Variable: $utilizacgi
  287 + Variable: utilizacgi
244 288  
245 289 Variável indicando se o desenho do corpo do mapa será baseado no modo cgi.
246 290  
... ... @@ -252,26 +296,35 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
252 296 o endereço do cgi acrescentado do nome do mapfile, fazendo com que a imagem seja retornada diretamente.
253 297  
254 298 Em alguns casos o uso do cgi torna a aplicação mais rápida.
  299 +
  300 + Tipo:
  301 + {string}
255 302 */
256 303 $utilizacgi = "nao";
257 304 /*
258   - Variable: $atlasxml
  305 + Variable: atlasxml
259 306  
260 307 Indica o nome do arquivo xml que será utilizado na interface Atlas do i3geo.
261 308  
262 309 Pode ser utilizado o caminho relativo, tendo como base i3geo/diretorio
  310 +
  311 + Tipo:
  312 + {string}
263 313 */
264 314 $atlasxml = "";
265 315 /*
266   - Variable: $expoeMapfile
  316 + Variable: expoeMapfile
267 317  
268 318 Essa variável controla se o nome do mapfile atual será ou não retornado para a aplicação via ajax.
269 319  
270 320 Quando essa variável for definida como "nao" algumas das funcionalidades do i3geo poderão ficar prejudicadas, mas sem comprometimento das funções principais.
  321 +
  322 + Tipo:
  323 + {string}
271 324 */
272 325 $expoeMapfile = "";
273 326 /*
274   - Variable: $conexaoadmin
  327 + Variable: conexaoadmin
275 328  
276 329 Arquivo PHP que define a string de conexão (PDO) com o banco de dados administrativo.
277 330  
... ... @@ -287,8 +340,23 @@ if (strtoupper(substr(PHP_OS, 0, 3) == &#39;WIN&#39;))
287 340  
288 341 O programa PHP que estabelece a conexão deve retornar objetos com nomes padronizados. Veja o arquivo i3geo/admin/conexao.php para maiores detalhes.
289 342  
  343 + Tipo:
  344 + {string}
290 345 */
291 346 $conexaoadmin = "";//$locaplic."/admin/php/conexaomma.php";
  347 + /*
  348 + Variable: interfacePadrao
  349 +
  350 + Interface padrão utilizada para abrir o mapa.
  351 +
  352 + A interface pode ser um arquivo com as extensões .htm .html .phtml
  353 +
  354 + O arquivo deve estar armazenado em i3geo/aplicmap
  355 +
  356 + Tipo:
  357 + {string}
  358 + */
  359 + $interfacePadrao = "geral.htm";
292 360 }
293 361 else //se for linux
294 362 {
... ... @@ -310,5 +378,6 @@ else //se for linux
310 378 $atlasxml = "";//"../menutemas/atlas.xml";
311 379 $expoeMapfile = "sim";
312 380 $conexaoadmin = "";
  381 + $interfacePadrao = "geral.htm";
313 382 }
314 383 ?>
... ...
ms_criamapa.php
... ... @@ -23,9 +23,13 @@ $temasa=bioma;
23 23 include("ms_criamapa.php");
24 24  
25 25  
26   -File: i3geo/ms_criamapa.php
  26 +Arquivo:
27 27  
28   -About: Licença
  28 +i3geo/ms_criamapa.php
  29 +
  30 +Licenca:
  31 +
  32 +GPL2
29 33  
30 34 I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
31 35  
... ... @@ -45,7 +49,7 @@ GNU junto com este programa; se não, escreva para a
45 49 Free Software Foundation, Inc., no endereço
46 50 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
47 51  
48   -About: Parâmetros
  52 +
49 53  
50 54 base - arquivo mapfile que servirá de base para a criação do mapa.Por default, são utilizados os arquivos aplicmap/geral1.map (para linux) ou aplicmap/geral1windows.map (para windows).
51 55  
... ... @@ -101,17 +105,17 @@ srs_wms - código da projeção
101 105  
102 106 image_wms - tipo de imagem disponível
103 107  
104   -versao_wms - versão do WMS
  108 +Parametro: versao_wms
105 109  
  110 +&versao_wms
  111 +
  112 +Versão do WMS
106 113  
107   -*/
108 114  
109   -/*
110   -Section: Fluxo do código
111 115 */
112   -$tempo = microtime(1);
  116 +
113 117 /*
114   -Note: Verifica a variável $caminho
  118 +Verifica a variável $caminho
115 119  
116 120 Essa variável deve ser definida em programas que utilizam o ms_criamapa.php via include.
117 121 Indica onde está o diretório i3geo para que os includes seguintes possam ser localizados.
... ... @@ -124,20 +128,21 @@ if (!file_exists($caminho.&quot;classesphp/carrega_ext.php&quot;))
124 128 if (isset($_GET["caminho"]))
125 129 {$caminho = $_GET["caminho"];}
126 130 /*
127   -Note: Carrega as extensões PHP
  131 + Carrega as extensões PHP
128 132  
129 133 Carrega as extensões utilizadas no programa de inicialização.
130 134 A carga das extensões geralmente é necessária nas instalações windows (ms4w) ou quando as mesmas não são carregadas pela própria inicialização do PHP.
131 135 */
132 136 include_once ($caminho."classesphp/carrega_ext.php");
133 137 /*
134   -Note: Include dos arquivos PHP.
  138 + Include dos arquivos PHP.
135 139  
136 140 Inclui os programas php com funções utilizadas pelo ms_criamapa.php
137 141 */
138 142 include_once ($caminho."classesphp/pega_variaveis.php");
139 143 include_once ($caminho."classesphp/funcoes_gerais.php");
140   -include_once ($caminho."ms_configura.php");
  144 +if(!isset($dir_tmp))
  145 +{include_once ($caminho."ms_configura.php");}
141 146 if (!isset($debug))
142 147 {error_reporting(0);$debug="nao";}
143 148 else
... ... @@ -148,7 +153,16 @@ Define o cookie para o idioma da interface
148 153 if(isset($idioma) && $idioma != "")
149 154 setcookie("i3geolingua", $idioma);
150 155 /*
151   -Note: Prepara as variáveis que serão incluidas na seção
  156 +Cria os diretórios temporários que serão utilizados pelo i3geo para armazenar as imagens e outros dados.
  157 +*/
  158 +$diretorios = criaDirMapa($dir_tmp);
  159 +if(!$diretorios)
  160 +{echo "<p style=color:red ><b>N&atilde;o foi po&iacute;vel criar os diret&oacute;rios tempor&aacute;rios em $dir_tmp.</b></p>";exit;}
  161 +criaIndex();
  162 +$tmpfname = $diretorios[0];
  163 +$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  164 +/*
  165 + Prepara as variáveis que serão incluidas na seção
152 166  
153 167 As variáveis vêm do arquivo ms_configura.php e são armazenadas em uma seção com nome específico para o i3geo.
154 168 */
... ... @@ -187,7 +201,7 @@ $navegadoresLocais_ = &quot;sim&quot;;
187 201 else
188 202 $navegadoresLocais_ = "nao";
189 203 /*
190   -Note: Inicia a seção
  204 + Inicia a seção
191 205  
192 206 O i3geo inicia uma seção específica no servidor, denominada i3GeoPHP.
193 207 Se já houver uma seção aberta, em função de outro browser estar ativo, cria uma nova. Faz a cópia das variáveis definidas para itens da seção.
... ... @@ -199,15 +213,15 @@ if(isset($_SESSION[&quot;map_file&quot;]) || $g_sid!=&quot;&quot;)
199 213 {session_regenerate_id();}
200 214  
201 215 /*
202   -Note: Aguarde
  216 + Aguarde
203 217  
204 218 Monta a apresentação do aguarde.
205 219  
206 220 Aqui é necessário verificar se $executa está definido
207 221 isso pq algumas aplicações podem ser prejudicadas caso o aguarde seja mostrado
208 222 */
209   -if (!isset($executa))
210   -{mostraAguarde();}
  223 +//if (!isset($executa))
  224 +//{mostraAguarde();}
211 225  
212 226 $_SESSION["dir_tmp"] = $dir_tmp_;
213 227 $_SESSION["temasdir"] = $temasdir_;
... ... @@ -236,6 +250,9 @@ $_SESSION[&quot;kmlurl&quot;] = $kmlurl_;
236 250 //rotina de segurança, ver http://shiflett.org/articles/the-truth-about-sessions
237 251 $fingerprint = 'I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'];
238 252 $_SESSION['fingerprint'] = md5($fingerprint . session_id());
  253 +$_SESSION["mapdir"] = $diretorios[1];
  254 +$_SESSION["imgdir"] = $diretorios[2];
  255 +
239 256 //
240 257 //pega todas as variáveis da sessão, mesmo as que foram definidas anteriormente
241 258 //
... ... @@ -243,7 +260,7 @@ foreach(array_keys($_SESSION) as $k)
243 260 {eval("\$".$k."='".$_SESSION[$k]."';");}
244 261 $postgis_mapa = $postgis_mapa_;
245 262 /*
246   -Note: Define os arquivos .map
  263 + Define os arquivos .map
247 264  
248 265 Seleciona os arquivos mapfile que serão carregados como base conforme o tipo de sistema operacional.
249 266  
... ... @@ -263,40 +280,11 @@ else
263 280 if (!isset($base) || $base == ""){$base = "geral1";}
264 281 $estadosl = "estadosl";
265 282 }
266   -if (file_exists($base))
267   -{$mapdefault = ms_newMapObj($base);}
268   -else
269   -{$mapdefault = ms_newMapObj($temasaplic."/".$base.".map");}
270   -/*
271   -Note: Parâmetros adicionais.
272   -
273   -Processa os parâmetros para a inicialização verificando se foram passados pela URL ou não.
274   -*/
275   -if (!isset($mapext))
276   -{$mapext = $mapdefault->extent->minx." ".$mapdefault->extent->miny." ".$mapdefault->extent->maxx." ".$mapdefault->extent->maxy;}
277   -if (!isset ($map_reference_image)) //arquivo com a imagem de refer&ecirc;ncia
278   -{$map_reference_image = $mapdefault->reference->image;}
279   -if (!isset ($map_reference_extent)) //extens&atilde;o geogr&aacute;fica da imagem do mapa de refer&ecirc;ncia
280   -{$map_reference_extent = $mapdefault->reference->extent->minx." ".$mapdefault->reference->extent->miny." ".$mapdefault->reference->extent->maxx." ".$mapdefault->reference->extent->maxy;}
281   -if (!isset($interface))
282   -{$interface = "geral.htm";}
283 283 /*
284   -Note: Diretórios temporários
285   -
286   -Cria os diretórios temporários que serão utilizados pelo i3geo para armazenar as imagens e outros dados.
287   -*/
288   -$diretorios = criaDirMapa($dir_tmp);
289   -if(!$diretorios)
290   -{echo "<p style=color:red ><b>N&atilde;o foi po&iacute;vel criar os diret&oacute;rios tempor&aacute;rios em $dir_tmp.</b></p>";exit;}
291   -$_SESSION["mapdir"] = $diretorios[1];
292   -$_SESSION["imgdir"] = $diretorios[2];
293   -criaIndex();
294   -/*
295   -Note: Cria os objetos map que serão processados
  284 + Cria os objetos map que serão processados
296 285  
297 286 O arquivo definido em $base é lido como um objeto map. Esse objeto será processado para incluir novos layers e alterar outros parâmetros definidos pelo usuário.
298 287 */
299   -ms_ResetErrorList();
300 288 if (file_exists($base))
301 289 {
302 290 $map = ms_newMapObj($base);
... ... @@ -307,40 +295,25 @@ else
307 295 $map = ms_newMapObj($temasaplic."/".$base.".map");
308 296 $mapn = ms_newMapObj($temasaplic."/".$base.".map");
309 297 }
310   -$error = ms_GetErrorObj();
311   -while($error && $error->code != MS_NOERR)
312   -{
313   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
314   - $error = $error->next();
315   -}
316   -ms_ResetErrorList();
317 298 /*
318   -Note: Incluí temas
  299 + Parâmetros adicionais.
319 300  
320   -Verifica a lista de temas da inicializacao, adicionando-os se necessário
  301 +Processa os parâmetros para a inicialização verificando se foram passados pela URL ou não.
321 302 */
  303 +if (!isset($mapext))
  304 +{$mapext = $map->extent->minx." ".$map->extent->miny." ".$map->extent->maxx." ".$map->extent->maxy;}
  305 +if (!isset ($map_reference_image)) //arquivo com a imagem de refer&ecirc;ncia
  306 +{$map_reference_image = $map->reference->image;}
  307 +if (!isset ($map_reference_extent)) //extens&atilde;o geogr&aacute;fica da imagem do mapa de refer&ecirc;ncia
  308 +{$map_reference_extent = $map->reference->extent->minx." ".$map->reference->extent->miny." ".$map->reference->extent->maxx." ".$map->reference->extent->maxy;}
  309 +if (!isset($interface))
  310 +{$interface = $interfacePadrao;}
  311 +
322 312 incluiTemasIniciais();
323   -$error = ms_GetErrorObj();
324   -while($error && $error->code != MS_NOERR)
325   -{
326   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
327   - $error = $error->next();
328   -}
329   -ms_ResetErrorList();
330   -/*
331   -Note: Liga os temas definidos em $layers
332   -*/
333   -ligaTemas();
334   -$error = ms_GetErrorObj();
335   -while($error && $error->code != MS_NOERR)
336   -{
337   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
338   - $error = $error->next();
339   -}
340   -ms_ResetErrorList();
341   -/*
342   -Note: Aplica ao mapa os parâmetros passados pela URL
343   -*/
  313 +
  314 +if(isset($layers))
  315 +{ligaTemas();}
  316 +
344 317 if (isset($map_reference_image))
345 318 {$mapn->reference->set("image",$map_reference_image);}
346 319 $extr = $mapn->reference->extent;
... ... @@ -368,39 +341,23 @@ if ((isset($mapext)) &amp;&amp; ($mapext != &quot;&quot;))
368 341 if (count($newext) == 4)
369 342 {$ext->setextent($newext[0], $newext[1], $newext[2], $newext[3]);}
370 343 }
371   -$error = ms_GetErrorObj();
372   -while($error && $error->code != MS_NOERR)
373   -{
374   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
375   - $error = $error->next();
376   -}
377   -ms_ResetErrorList();
378 344 /*
379   -Note: Configura os endereços corretos no mapfile.
  345 +Configura os endereços corretos no mapfile.
380 346  
381 347 Altera as propriedades imagepath e imageurl corrigindo os caminhos padrão conforme o diretório criado para armazenar o mapa de trabalho.
382 348 */
383   -
384   -$protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
385   -
386 349 $w = $mapn->web;
387 350 $atual = $w->imagepath;
388 351 $w->set("imagepath",$atual.$diretorios[2]."/");
389 352 $atual = $w->imageurl;
390 353 $w->set("imageurl",$atual.$diretorios[2]."/");
391   -$salvo = $mapn->save($diretorios[0]);
  354 +$salvo = $mapn->save($tmpfname);
  355 +
392 356 $_SESSION["imgurl"] = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].$atual.$diretorios[2]."/";
393 357 $_SESSION["tmpurl"] = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'].$atual;
394   -/*
395   -Note: Faz o include de um programa se tiver sido passado pela URL (parâmetro &executa)
396   -
397   -Nessa altura do processo, a variável $tmpfname guarda o nome do mapfile que será utilizado pelo i3geo.
398   -
399   -Esse mapfile pode ser modificado pelo programa que será incluido.
400   -*/
401   -$tmpfname = $diretorios[0];
402   -$_SESSION["map_file"] = $diretorios[0];
  358 +$_SESSION["map_file"] = $tmpfname;
403 359 $_SESSION["mapext"] = $mapext;
  360 +
404 361 if (isset($executa))
405 362 {
406 363 if (file_exists($executa))
... ... @@ -408,112 +365,69 @@ if (isset($executa))
408 365 if (function_exists($executa))
409 366 {eval($executa."();");}
410 367 }
411   -$error = ms_GetErrorObj();
412   -while($error && $error->code != MS_NOERR)
413   -{
414   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
415   - $error = $error->next();
416   -}
417   -ms_ResetErrorList();
418   -/*
419   -Note: Inclui uma camada de pontos utilizando os parâmetros passados pela URL
420   -*/
421   -if (isset($wkt))
  368 +
  369 +if(isset($wkt))
422 370 {insereWKTUrl();}
423   -$error = ms_GetErrorObj();
424   -while($error && $error->code != MS_NOERR)
425   -{
426   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
427   - $error = $error->next();
428   -}
429   -ms_ResetErrorList();
430   -if (isset($pontos))
  371 +
  372 +if(isset($pontos))
431 373 {inserePontosUrl();}
432   -$error = ms_GetErrorObj();
433   -while($error && $error->code != MS_NOERR)
434   -{
435   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
436   - $error = $error->next();
437   -}
438   -ms_ResetErrorList();
439   -/*
440   -Note: Inclui uma camada de linhas utilizando os parâmetros passados pela URL
441   -*/
442   -if (isset($linhas))
  374 +
  375 +if(isset($linhas))
443 376 {insereLinhasUrl();}
444   -$error = ms_GetErrorObj();
445   -while($error && $error->code != MS_NOERR)
446   -{
447   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
448   - $error = $error->next();
449   -}
450   -ms_ResetErrorList();
451   -/*
452   -Note: Inclui uma camada de polígonos utilizando os parâmetros passados pela URL
453   -*/
454   -if (isset($poligonos))
  377 +
  378 +if(isset($poligonos))
455 379 {inserePoligonosUrl();}
456   -/*
457   -Note: inclui um tema wms se for o caso
458 380  
459   -Verifica os parâmetros WMS e adiciona uma camada se for o caso
460   -*/
461 381 if(isset($url_wms))
462 382 {incluiTemaWms();}
463 383  
464   -$error = ms_GetErrorObj();
465   -while($error && $error->code != MS_NOERR)
466   -{
467   - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
468   - $error = $error->next();
469   -}
470   -ms_ResetErrorList();
  384 +adaptaLayers();
  385 +if (file_exists($locaplic."/pacotes/geoip") && file_exists($locaplic."/pacotes/geoip/GeoLiteCity.dat"))
  386 +{require_once($caminho."ms_registraip.php");}
  387 +
  388 +if ($interface != "mashup")
  389 +{abreInterface();}
471 390  
472   -//
473   -//se vc quiser parar o script aqui, para verificar erros, descomente a linha abaixo
474   -//
475   -//exit
476 391 /*
477   -Note: Adapta os dados de cada layer.
  392 +Function: adaptaLayers
  393 +
  394 +Adapta os dados de cada layer.
478 395  
479 396 Faz alterações em cada layer caso sejam necessárias.
480 397 */
481   -$mapa = ms_newMapObj($tmpfname);
482   -$path = $mapa->shapepath;
483   -for($i=0;$i<($mapa->numlayers);++$i)
484   -{
485   - $layer = $mapa->getLayer($i);
486   - $ok = true;
487   - if ($layer->connection == "")
  398 +function adaptaLayers(){
  399 + global $tmpfname;
  400 + $mapa = ms_newMapObj($tmpfname);
  401 + $path = $mapa->shapepath;
  402 + for($i=0;$i<($mapa->numlayers);++$i)
488 403 {
489   - $ok = false;
490   - $d = $layer->data;
491   - if((file_exists($d)) || (file_exists($d.".shp")))
492   - {$ok = true;}
493   - else
  404 + $layer = $mapa->getLayer($i);
  405 + $ok = true;
  406 + if ($layer->connection == "")
494 407 {
495   - if((file_exists($path."/".$d)) || (file_exists($path."/".$d.".shp")))
  408 + $ok = false;
  409 + $d = $layer->data;
  410 + if((file_exists($d)) || (file_exists($d.".shp")))
496 411 {$ok = true;}
  412 + else
  413 + {
  414 + if((file_exists($path."/".$d)) || (file_exists($path."/".$d.".shp")))
  415 + {$ok = true;}
  416 + }
497 417 }
  418 + if ($ok == false)
  419 + {$layer->set("status",MS_OFF);}
498 420 }
499   - if ($ok == false)
500   - {$layer->set("status",MS_OFF);}
  421 + $mapa->save($tmpfname);
  422 + erroCriacao();
501 423 }
502   -$mapa->save($tmpfname);
503   -/*
504   -Note: Obtem o IP do usuário e registra no banco de dados.
505   -
506   -Essa função pode ser comentada sem prejuízos ao funcionamento do I3Geo.
507   -Só opera corretamente se a rotina de registro tiver sido configurada corretamente.
508   -*/
509   -require_once($caminho."ms_registraip.php");
510 424 /*
511   -Note: Gera a url para abrir o mapa
  425 +Function: abreInterface
512 426  
513   -interface = arquivo html que será aberto
  427 +Redireciona para o HTML definido em $interface, abrindo o mapa
514 428 */
515   -if ($interface != "mashup")
516   -{
  429 +function abreInterface(){
  430 + global $interface,$caminho,$tempo;
517 431 if (count(explode(".php",$interface)) > 1)
518 432 {
519 433 if (file_exists($caminho."aplicmap/".$interface))
... ... @@ -524,19 +438,16 @@ if ($interface != &quot;mashup&quot;)
524 438 }
525 439 else
526 440 {
527   - echo "<br><br><span style='color:gray;font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;' >Tempo de processamento no servidor em segundos: ".((microtime(1) - $tempo))."<span>";
528   -
529 441 if (file_exists($caminho."aplicmap/".$interface))
530 442 {$urln = $caminho."aplicmap/".$interface."?".session_id();}
531 443 else
532 444 {$urln = $interface."?".session_id();}
533   - //header("Location:".$urln);
534   - echo "<meta http-equiv='refresh' content='0;url=$urln'>";
535   - }
  445 + if(!headers_sent())
  446 + {header("Location:".$urln);}
  447 + else
  448 + {echo "<meta http-equiv='refresh' content='0;url=$urln'>";}
  449 + }
536 450 }
537   -//////////////////////////////////////////////////////////////////////////////
538   -//funções
539   -/////////////////////////////////////////////////////////////////////////////
540 451 /*
541 452 Function: ligaTemas
542 453  
... ... @@ -570,6 +481,7 @@ function ligaTemas()
570 481 }
571 482 }
572 483 }
  484 + erroCriacao();
573 485 }
574 486 /*
575 487 Function: incluiTemasIniciais
... ... @@ -631,6 +543,7 @@ function incluiTemasIniciais()
631 543 $of = &$mapn->outputformat;
632 544 $of->set("imagemode",MS_IMAGEMODE_RGB);
633 545 }
  546 + erroCriacao();
634 547 }
635 548 /*
636 549 Function: criaIndex
... ... @@ -766,6 +679,7 @@ function insereWKTUrl()
766 679 $cor = $estilo->color;
767 680 $cor->setRGB(255,0,0);
768 681 $salvo = $mapa->save($tmpfname);
  682 + erroCriacao();
769 683 }
770 684 /*
771 685 Function: inserePontosUrl
... ... @@ -837,6 +751,7 @@ function inserePontosUrl()
837 751 $cor = $estilo->color;
838 752 $cor->setRGB(255,0,0);
839 753 $salvo = $mapa->save($tmpfname);
  754 + erroCriacao();
840 755 }
841 756 /*
842 757 Function: insereLinhasUrl
... ... @@ -917,6 +832,7 @@ function insereLinhasUrl()
917 832 $cor = $estilo->color;
918 833 $cor->setRGB(255,0,0);
919 834 $salvo = $mapa->save($tmpfname);
  835 + erroCriacao();
920 836 }
921 837 /*
922 838 Function: inserePoligonosUrl
... ... @@ -1000,9 +916,12 @@ function inserePoligonosUrl()
1000 916 $cor = $estilo->color;
1001 917 $cor->setRGB(255,0,0);
1002 918 $salvo = $mapa->save($tmpfname);
  919 + erroCriacao();
1003 920 }
1004 921 /*
1005 922 Function: incluiTemaWms
  923 +
  924 +Inclui no mapa um tema do tipo WMS
1006 925 */
1007 926 function incluiTemaWms()
1008 927 {
... ... @@ -1015,5 +934,16 @@ function incluiTemaWms()
1015 934 $m = new Mapa($tmpfname);
1016 935 $m->adicionatemawms($layer_wms,$url_wms,$style_wms,$srs_wms,$image_wms,$locaplic,"",$versao_wms,$nome,"","","","","nao","text/plain","");
1017 936 $salvo = $m->salva($tmpfname);
  937 + erroCriacao();
1018 938 }
  939 +function erroCriacao(){
  940 + $error = ms_GetErrorObj();
  941 + while($error && $error->code != MS_NOERR)
  942 + {
  943 + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
  944 + $error = $error->next();
  945 + }
  946 + ms_ResetErrorList();
  947 +}
  948 +
1019 949 ?>
1020 950 \ No newline at end of file
... ...
principal.htm
... ... @@ -358,7 +358,7 @@ Title: Página principal com a lista de aplicativos do i3geo
358 358  
359 359 Mostra a lista de aplicativos que são fornecidos junto com o i3geo.
360 360  
361   -Exemplo:
  361 +Link:
362 362  
363 363 http://localhost/i3geo/principal.htm
364 364  
... ...