Commit b6052a0c517d1163226c57bcc6e2a65e5738a6e5

Authored by Edmar Moretti
1 parent 2f527742

Inclusão do fluxo de processamento na documentação

Showing 1 changed file with 158 additions and 94 deletions   Show diff stats
ms_criamapa.php
1 1 <?php
2 2 /*
3   -Title: Inicializa o I3Geo via URL
  3 +Title: Inicializa o I3Geo via URL ms_criamapa.php
4 4  
5 5 Cria os diretórios temporários para o I3Geo e o mapfile inicial.
6 6  
... ... @@ -54,42 +54,56 @@ About: Exemplo
54 54  
55 55 http://localhost/i3geo/ms_criamapa.php?temasa=estadosl
56 56 */
57   -//
58   -//verifica se o debug deve ser ativado, checando a variável debug
59   -//
  57 +/*
  58 +Section: Fluxo do código
  59 +*/
  60 +/*
  61 +Note: Verifica se o debug deve ser ativado, checando a variável debug
  62 +*/
60 63 if (!isset($debug))
61 64 {error_reporting(0);$debug="nao";}
62 65 else
63 66 {error_reporting(E_ALL);$debug="sim";}
64   -//
65   -//verifica se a variável $caminho está definida
66   -//
  67 +/*
  68 +Note: Verifica se a variável $caminho está definida
  69 +
  70 +Essa variável deve ser definida em programas que utilizam o ms_criamapa.php via include
  71 +indica onde está o diretório i3geo para que os includes seguintes possam ser localizados
  72 +*/
  73 +if (!file_exists($caminho."classesphp/carrega_ext.php"))
  74 +{echo "<b> Nao foi possivel localizar o diretório classephp. Provavelmente vc precisara definir a variavel $camino";exit;}
67 75 if (isset($_GET["caminho"]))
68 76 {$caminho = $_GET["caminho"];}
69 77 if (!isset($caminho)){$caminho = "";}
70   -//
71   -//carrega as extensões
72   -//
  78 +/*
  79 +Note: Carrega as extensões, geralmente necessário nas instalações windows
  80 +*/
73 81 require_once ($caminho."classesphp/carrega_ext.php");
74   -//
75   -//carrega as funções adicionais
76   -//
  82 +/*
  83 +Note: Carrega as funções adicionais
  84 +
  85 +Inclui os programas php com funções necessárias
  86 +*/
77 87 require_once ($caminho."classesphp/pega_variaveis.php");
78 88 require_once ($caminho."classesphp/funcoes_gerais.php");
79 89 require_once ($caminho."ms_configura.php");
80   -//
81   -//monta a apresentação do aguarde
82   -//
  90 +/*
  91 +Note: Monta a apresentação do aguarde
  92 +
  93 +Aqui é necessário verificar se $executa está definido
  94 +isso pq algumas aplicações podem ser prejudicadas caso o aguarde seja mostrado
  95 +*/
83 96 if (!isset($executa))
84 97 {mostraAguarde();}
85   -//
86   -//define a variável $mapext que define a extensão geográfica do mapa
87   -//
  98 +/*
  99 +Note: Define a variável $mapext que especifica a extensão geográfica do mapa
  100 +*/
88 101 if (!isset($mapext)){$mapext="";}
89   -//
90   -//prepara as variáveis que serão incluidas na sessão
91   -//as variáveis vêm do arquivo ms_configura
92   -//
  102 +/*
  103 +Note: Prepara as variáveis que serão incluidas na seção
  104 +
  105 +As variáveis vêm do arquivo ms_configura
  106 +*/
93 107 $dir_tmp_ = $dir_tmp;
94 108 $temasdir_ = $temasdir;
95 109 $temasaplic_ = $temasaplic;
... ... @@ -111,20 +125,17 @@ if ((isset($navegadoresLocais)) &amp;&amp; ($navegadoresLocais != &quot;&quot;))
111 125 $navegadoresLocais_ = "sim";
112 126 else
113 127 $navegadoresLocais_ = "nao";
114   -//
115   -//inicia a sessão
116   -//
  128 +/*
  129 +Note: Inicia a seção
  130 +
  131 +O i3geo inicia uma seção específica no servidor, denominada i3GeoPHP.
  132 +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.
  133 +*/
117 134 session_name("i3GeoPHP");
118 135 session_start();
119   -//
120   -//se já houver uma sessão aberta, em funçaõ de outro browser estar ativo, cria uma nova
121   -//
122 136 if (!isset($g_sid)){$g_sid="";}
123 137 if(isset($_SESSION["map_file"]) || $g_sid!="")
124 138 {session_regenerate_id();}
125   -//
126   -//copia as variáveis para a sessão
127   -//
128 139 $_SESSION["dir_tmp"] = $dir_tmp_;
129 140 $_SESSION["temasdir"] = $temasdir_;
130 141 $_SESSION["temasaplic"] = $temasaplic_;
... ... @@ -144,14 +155,16 @@ $_SESSION[&quot;perfil&quot;] = $perfil_;
144 155 $_SESSION["navegadoresLocais"] = $navegadoresLocais_;
145 156 $_SESSION["utilizacgi"] = $utilizacgi_;
146 157 //
147   -//pega todas as variáveis da sessão
  158 +//pega todas as variáveis da sessão, mesmo as que foram definidas anteriormente
148 159 //
149 160 foreach(array_keys($_SESSION) as $k)
150 161 {eval("\$".$k."='".$_SESSION[$k]."';");}
  162 +/*
  163 +Note: Define os arquivos .map conforme o tipo de sistema operacional.
151 164  
152   -//
153   -//define os arquivos .map conforme o tipo de sistema operacional
154   -//
  165 +Os arquivos .map de inicialização são fixos e são armazenados em i3geo/aplicmap.
  166 +O arquivo é lido conforma a característica do sistema operacional.
  167 +*/
155 168 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
156 169 {
157 170 if (!isset($base)){$base = "geral1windows";}
... ... @@ -166,9 +179,9 @@ if (file_exists($base))
166 179 {$mapdefault = ms_newMapObj($base);}
167 180 else
168 181 {$mapdefault = ms_newMapObj($temasaplic."/".$base.".map");}
169   -//
170   -//pega os parâmetros para a inicialização se os mesmos não forem passados pela URL
171   -//
  182 +/*
  183 +Note: Define os parâmetros para a inicialização se os mesmos não forem passados pela URL.
  184 +*/
172 185 if (!isset($mapext))
173 186 {$mapext = $mapdefault->extent->minx." ".$mapdefault->extent->miny." ".$mapdefault->extent->maxx." ".$mapdefault->extent->maxy;}
174 187 if (!isset ($map_reference_image)) //arquivo com a imagem de refer&ecirc;ncia
... ... @@ -177,19 +190,19 @@ if (!isset ($map_reference_extent)) //extens&amp;atilde;o geogr&amp;aacute;fica da image
177 190 {$map_reference_extent = $mapdefault->reference->extent->minx." ".$mapdefault->reference->extent->miny." ".$mapdefault->reference->extent->maxx." ".$mapdefault->reference->extent->maxy;}
178 191 if (!isset($interface))
179 192 {$interface = "geral.htm";}
180   -//
181   -//cria os diretórios temporários
182   -//
  193 +/*
  194 +Note: Cria os diretórios temporários que serão utilizados pelo i3geo para armazenar as imagens e outros dados
  195 +*/
183 196 $diretorios = criaDirMapa($dir_tmp);
184 197 $_SESSION["mapdir"] = $diretorios[1];
185 198 $_SESSION["imgdir"] = $diretorios[2];
186   -//
187   -//cria arquivos para impedir a leitura dos diretórios temporários
188   -//
  199 +/*
  200 +Note: Cria arquivos para impedir a leitura dos diretórios temporários diretamente no browser
  201 +*/
189 202 criaIndex();
190   -//
191   -//cria os objetos map
192   -//
  203 +/*
  204 +Note: Cria os objetos map que serão processados
  205 +*/
193 206 ms_ResetErrorList();
194 207 if (file_exists($base))
195 208 {
... ... @@ -208,13 +221,10 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
208 221 $error = $error->next();
209 222 }
210 223 ms_ResetErrorList();
211   -//
212   -//verifica a lista de temas da inicializacao, adicionando-os se necessário
213   -//
  224 +/*
  225 +Note: Verifica a lista de temas da inicializacao, adicionando-os se necessário
  226 +*/
214 227 incluiTemasIniciais();
215   -//
216   -//verifica erros
217   -//
218 228 $error = ms_GetErrorObj();
219 229 while($error && $error->code != MS_NOERR)
220 230 {
... ... @@ -222,13 +232,10 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
222 232 $error = $error->next();
223 233 }
224 234 ms_ResetErrorList();
225   -//
226   -//liga os temas definidos em $layers
227   -//
  235 +/*
  236 +Note: Liga os temas definidos em $layers
  237 +*/
228 238 ligaTemas();
229   -//
230   -//verifica erros
231   -//
232 239 $error = ms_GetErrorObj();
233 240 while($error && $error->code != MS_NOERR)
234 241 {
... ... @@ -236,9 +243,9 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
236 243 $error = $error->next();
237 244 }
238 245 ms_ResetErrorList();
239   -//
240   -//aplica ao mapa os parâmetros passados pela URL
241   -//
  246 +/*
  247 +Note: Aplica ao mapa os parâmetros passados pela URL
  248 +*/
242 249 if (isset($map_reference_image))
243 250 {$mapn->reference->set("image",$map_reference_image);}
244 251 $extr = $mapn->reference->extent;
... ... @@ -273,9 +280,11 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
273 280 $error = $error->next();
274 281 }
275 282 ms_ResetErrorList();
276   -//
277   -//configura os endereços corretos
278   -//
  283 +/*
  284 +Note: Configura os endereços corretos no mapfile para acessar os diretórios temporários.
  285 +
  286 +Altera as propriedades imagepath e imageurl
  287 +*/
279 288 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
280 289 $w = $mapn->web;
281 290 $atual = $w->imagepath;
... ... @@ -285,9 +294,12 @@ $w-&gt;set(&quot;imageurl&quot;,$atual.$diretorios[2].&quot;/&quot;);
285 294 $salvo = $mapn->save($diretorios[0]);
286 295 $_SESSION["imgurl"] = $protocolo[0]."://".$_SERVER['HTTP_HOST'].$atual.$diretorios[2]."/";
287 296 $_SESSION["tmpurl"] = $protocolo[0]."://".$_SERVER['HTTP_HOST'].$atual;
288   -//
289   -//faz o include de um programa se tiver sido passado pela URL
290   -//
  297 +/*
  298 +Note: Faz o include de um programa se tiver sido passado pela URL (parâmetro &executa)
  299 +
  300 +Nessa altura do processo, a variável $tmpfname guarda o nome do mapfile que será utilizado pelo i3geo.
  301 +Esse mapfile pode ser modificado pelo programa que será incluido.
  302 +*/
291 303 $tmpfname = $diretorios[0];
292 304 $_SESSION["map_file"] = $diretorios[0];
293 305 $_SESSION["mapext"] = $mapext;
... ... @@ -305,9 +317,9 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
305 317 $error = $error->next();
306 318 }
307 319 ms_ResetErrorList();
308   -//
309   -//inclui pontos via url
310   -//
  320 +/*
  321 +Note: Inclui uma camada de pontos utilizando os parâmetros passados pela URL
  322 +*/
311 323 if (isset($pontos))
312 324 {inserePontosUrl();}
313 325 $error = ms_GetErrorObj();
... ... @@ -317,9 +329,9 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
317 329 $error = $error->next();
318 330 }
319 331 ms_ResetErrorList();
320   -//
321   -//inclui linhas via url
322   -//
  332 +/*
  333 +Note: Inclui uma camada de linhas utilizando os parâmetros passados pela URL
  334 +*/
323 335 if (isset($linhas))
324 336 {insereLinhasUrl();}
325 337 $error = ms_GetErrorObj();
... ... @@ -329,9 +341,9 @@ while($error &amp;&amp; $error-&gt;code != MS_NOERR)
329 341 $error = $error->next();
330 342 }
331 343 ms_ResetErrorList();
332   -//
333   -//inclui pontos via url
334   -//
  344 +/*
  345 +Note: Inclui uma camada de polígonos utilizando os parâmetros passados pela URL
  346 +*/
335 347 if (isset($poligonos))
336 348 {inserePoligonosUrl();}
337 349 $error = ms_GetErrorObj();
... ... @@ -345,9 +357,11 @@ ms_ResetErrorList();
345 357 //se vc quiser parar o script aqui, para verificar erros, descomente a linha abaixo
346 358 //
347 359 //exit;
348   -//
349   -//verifica os dados de cada layer
350   -//
  360 +/*
  361 +Note: Adapta os dados de cada layer.
  362 +
  363 +Faz alterações em cada layer caso sejam necessárias.
  364 +*/
351 365 $mapa = ms_newMapObj($tmpfname);
352 366 $path = $mapa->shapepath;
353 367 for($i=0;$i<($mapa->numlayers);$i++)
... ... @@ -370,14 +384,18 @@ for($i=0;$i&lt;($mapa-&gt;numlayers);$i++)
370 384 {$layer->set("status",MS_OFF);}
371 385 }
372 386 $mapa->save($tmpfname);
373   -//
374   -//obtem o IP do usuário e registra no banco de dados
375   -//essa função pode ser comentada sem prejuízos ao funcionamento do I3Geo
  387 +/*
  388 +Note: Obtem o IP do usuário e registra no banco de dados.
  389 +
  390 +Essa função pode ser comentada sem prejuízos ao funcionamento do I3Geo.
  391 +Só opera corretamente se a rotina de registro tiver sido configurada corretamente.
  392 +*/
376 393 require_once($caminho."ms_registraip.php");
377   -//
378   -// gera a url para abrir o mapa
379   -// interface = arquivo html que será aberto
380   -//
  394 +/*
  395 +Note: Gera a url para abrir o mapa
  396 +
  397 +interface = arquivo html que será aberto
  398 +*/
381 399 if ($interface != "mashup")
382 400 {
383 401 if (count(explode(".php",$interface)) > 1)
... ... @@ -401,7 +419,12 @@ if ($interface != &quot;mashup&quot;)
401 419 //////////////////////////////////////////////////////////////////////////////
402 420 //funções
403 421 /////////////////////////////////////////////////////////////////////////////
  422 +/*
  423 +Function: ligaTemas
404 424  
  425 +Liga os temas definidos na variável $layers
  426 +
  427 +*/
405 428 function ligaTemas()
406 429 {
407 430 global $layers,$mapn;
... ... @@ -419,13 +442,19 @@ function ligaTemas()
419 442 }
420 443 }
421 444 }
  445 +/*
  446 +Function: incluiTemasIniciais
422 447  
  448 +Inclui os temas definidos na variável $temasa
  449 +
  450 +*/
423 451 function incluiTemasIniciais()
424 452 {
425 453 global $temasa,$estadosl,$temasaplic,$temasdir,$mapn;
426 454 if (!isset($temasa)){$temasa = $estadosl;}
427 455 $temasa = str_replace(','," ",$temasa);
428 456 $alayers = explode(" ",$temasa);
  457 + $existeraster = false;
429 458 foreach ($alayers as $arqt)
430 459 {
431 460 $arqtemp = "";
... ... @@ -454,6 +483,8 @@ function incluiTemasIniciais()
454 483 for($i=0;$i<($maptemp->numlayers);$i++)
455 484 {
456 485 $layern = $maptemp->getLayer($i);
  486 + if($layern->type == MS_LAYER_RASTER)
  487 + {$existeraster = true;}
457 488 $layern->setmetadata("NOMEORIGINAL",$layern->name);
458 489 if ($layern->name == "estadosl")
459 490 {$layern->set("data",$temasaplic."/dados/estados.shp");}
... ... @@ -462,8 +493,21 @@ function incluiTemasIniciais()
462 493 }
463 494 }
464 495 }
  496 + //
  497 + //muda para RGB para melhorar o desenho da imagem raster
  498 + //
  499 + if($existeraster)
  500 + {
  501 + $of = &$mapn->outputformat;
  502 + $of->set("imagemode",MS_IMAGEMODE_RGB);
  503 + }
465 504 }
  505 +/*
  506 +Function: criaIndex
466 507  
  508 +Cria os arquivos vazios index.htm e index.html nos diretórios temporários
  509 +
  510 +*/
467 511 function criaIndex()
468 512 {
469 513 global $dir_tmp,$diretorios;
... ... @@ -488,7 +532,12 @@ function criaIndex()
488 532 exit;
489 533 }
490 534 }
  535 +/*
  536 +Function: MostraAguarde
  537 +
  538 +Mostra a mensagem de aguarde
491 539  
  540 +*/
492 541 function mostraAguarde()
493 542 {
494 543 global $interface,$caminho,$mensagemInicia;
... ... @@ -503,7 +552,12 @@ function mostraAguarde()
503 552 echo '<BODY bgcolor="white" style="background-color:white">';
504 553 }
505 554 }
  555 +/*
  556 +Function: inserePontosUrl
  557 +
  558 +Insere um novo tema com os pontos definidos na variável $pontos
506 559  
  560 +*/
507 561 function inserePontosUrl()
508 562 {
509 563 global $pontos,$nometemapontos,$dir_tmp,$imgdir,$tmpfname,$locaplic;
... ... @@ -560,9 +614,14 @@ function inserePontosUrl()
560 614 $cor->setRGB(255,0,0);
561 615 $salvo = $mapa->save($tmpfname);
562 616 }
563   -//
564   -//as linhas devem ter os pontos separados por espaços e cada linha separada por vírgula
565   -//
  617 +/*
  618 +Function: insereLinhasUrl
  619 +
  620 +Insere um novo tema com as linhas definidas na variável $linhas
  621 +
  622 +As linhas devem ter os pontos separados por espaços e cada linha separada por vírgula
  623 +
  624 +*/
566 625 function insereLinhasUrl()
567 626 {
568 627 global $linhas,$nometemalinhas,$dir_tmp,$imgdir,$tmpfname,$locaplic;
... ... @@ -629,9 +688,14 @@ function insereLinhasUrl()
629 688 $cor->setRGB(255,0,0);
630 689 $salvo = $mapa->save($tmpfname);
631 690 }
632   -//
633   -//os polígonos devem ter os pontos separados por espaços e cada polígono separado por vírgula
634   -//
  691 +/*
  692 +Function: inserePoligonosUrl
  693 +
  694 +Insere um novo tema com os poligonos definidas na variável $poligonos
  695 +
  696 +Os polígonos devem ter os pontos separados por espaços e cada polígono separado por vírgula
  697 +
  698 +*/
635 699 function inserePoligonosUrl()
636 700 {
637 701 global $poligonos,$nometemapoligonos,$dir_tmp,$imgdir,$tmpfname,$locaplic;
... ...