Commit 525d98da2dbbe8b7ac61df54c0407459cd91d6e4
1 parent
31d3495a
Exists in
master
and in
7 other branches
Incluidos dois novos parâmetros de inicialização o ms_criamapa.php que permitem …
…a inclusão de linhas e polígonos, semelhante ao parâmetro pontos (veja no wiki do portal a documentação de como usar)
Showing
1 changed file
with
334 additions
and
133 deletions
Show diff stats
ms_criamapa.php
@@ -142,22 +142,11 @@ $_SESSION["utilizacgi"] = $utilizacgi_; | @@ -142,22 +142,11 @@ $_SESSION["utilizacgi"] = $utilizacgi_; | ||
142 | //pega todas as variáveis da sessão | 142 | //pega todas as variáveis da sessão |
143 | // | 143 | // |
144 | foreach(array_keys($_SESSION) as $k) | 144 | foreach(array_keys($_SESSION) as $k) |
145 | -{ | ||
146 | - eval("\$".$k."='".$_SESSION[$k]."';"); | ||
147 | -} | 145 | +{eval("\$".$k."='".$_SESSION[$k]."';");} |
148 | // | 146 | // |
149 | //monta a apresentação do aguarde | 147 | //monta a apresentação do aguarde |
150 | // | 148 | // |
151 | -if (!isset($interface)) | ||
152 | -{ | ||
153 | - echo "<html><head>"; | ||
154 | - echo '<div id="aguarde">'; | ||
155 | - echo '<p class=paguarde style="font-family: Verdana, Arial, Helvetica, sans-serif;color:black;text-align:center;font-size:12pt"><b>'.$mensagemInicia.'</b><br> Aguarde...criando o mapa</p>'; | ||
156 | - echo "<center><img src='".$caminho."imagens/i3geo1.jpg'><br><br>"; | ||
157 | - echo "<center><img src='".$caminho."imagens/mapserv.png'><br><br>"; | ||
158 | - echo "<center><a href='http://mapas.mma.gov.br/download' target=blank ><img src='".$caminho."imagens/somerights20_pt.gif' ></a>"; | ||
159 | - echo '<BODY bgcolor="white" style="background-color:white">'; | ||
160 | -} | 149 | +mostraAguarde(); |
161 | // | 150 | // |
162 | //define os arquivos .map conforme o tipo de sistema operacional | 151 | //define os arquivos .map conforme o tipo de sistema operacional |
163 | // | 152 | // |
@@ -195,26 +184,7 @@ $_SESSION["imgdir"] = $diretorios[2]; | @@ -195,26 +184,7 @@ $_SESSION["imgdir"] = $diretorios[2]; | ||
195 | // | 184 | // |
196 | //cria arquivos para impedir a leitura dos diretórios temporários | 185 | //cria arquivos para impedir a leitura dos diretórios temporários |
197 | // | 186 | // |
198 | -if (!file_exists($dir_tmp."/index.htm")) | ||
199 | -{ | ||
200 | - $f = fopen($dir_tmp."/index.htm",x); | ||
201 | - fclose($f); | ||
202 | - $f = fopen($dir_tmp."/index.html",x); | ||
203 | - fclose($f); | ||
204 | - $f = fopen($dir_tmp."/".$diretorios[1]."/index.html",x); | ||
205 | - fclose($f); | ||
206 | - $f = fopen($dir_tmp."/".$diretorios[1]."/index.htm",x); | ||
207 | - fclose($f); | ||
208 | - $f = fopen($dir_tmp."/".$diretorios[2]."/index.html",x); | ||
209 | - fclose($f); | ||
210 | - $f = fopen($dir_tmp."/".$diretorios[2]."/index.htm",x); | ||
211 | - fclose($f); | ||
212 | -} | ||
213 | -if (!file_exists($dir_tmp."/index.htm")) | ||
214 | -{ | ||
215 | - echo "Erro. Não foi possível gravar no diretório temporário"; | ||
216 | - exit; | ||
217 | -} | 187 | +criaIndex(); |
218 | // | 188 | // |
219 | //cria os objetos map | 189 | //cria os objetos map |
220 | // | 190 | // |
@@ -239,45 +209,10 @@ ms_ResetErrorList(); | @@ -239,45 +209,10 @@ ms_ResetErrorList(); | ||
239 | // | 209 | // |
240 | //verifica a lista de temas da inicializacao, adicionando-os se necessário | 210 | //verifica a lista de temas da inicializacao, adicionando-os se necessário |
241 | // | 211 | // |
242 | -if (!isset($temasa)){$temasa = $estadosl;} | ||
243 | -$temasa = str_replace(','," ",$temasa); | ||
244 | -$alayers = explode(" ",$temasa); | ||
245 | -foreach ($alayers as $arqt) | ||
246 | -{ | ||
247 | - $arqtemp = ""; | ||
248 | - $arqt = trim($arqt); | ||
249 | - if ($arqt == "") | ||
250 | - {continue;} | ||
251 | - if (file_exists($arqt)) | ||
252 | - {$arqtemp = $arqt;} | ||
253 | - if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasaplic."\\".$arqt.".map"))) | ||
254 | - {$arqtemp = $temasaplic."\\".$arqt.".map";} | ||
255 | - elseif (file_exists($temasaplic."/".$arqt.".map")) | ||
256 | - {$arqtemp = $temasaplic."/".$arqt.".map";} | ||
257 | - if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasdir."\\".$arqt.".map"))) | ||
258 | - {$arqtemp = $temasdir."\\".$arqt.".map";} | ||
259 | - elseif (file_exists($temasdir."/".$arqt.".map")) | ||
260 | - {$arqtemp = $temasdir."/".$arqt.".map";} | ||
261 | - if ($arqtemp == "") | ||
262 | - {echo "<br>Impossível acessar tema $arqtemp";} | ||
263 | - else | ||
264 | - { | ||
265 | - if (!@ms_newMapObj($arqtemp)) | ||
266 | - {echo "<br>Problemas com a camada $arqtemp<br>";} | ||
267 | - else | ||
268 | - { | ||
269 | - $maptemp = @ms_newMapObj($arqtemp); | ||
270 | - for($i=0;$i<($maptemp->numlayers);$i++) | ||
271 | - { | ||
272 | - $layern = $maptemp->getLayer($i); | ||
273 | - $layern->setmetadata("NOMEORIGINAL",$layern->name); | ||
274 | - if ($layern->name == "estadosl") | ||
275 | - {$layern->set("data",$temasaplic."/dados/estados.shp");} | ||
276 | - ms_newLayerObj($mapn, $layern); | ||
277 | - } | ||
278 | - } | ||
279 | - } | ||
280 | -} | 212 | +incluiTemasIniciais(); |
213 | +// | ||
214 | +//verifica erros | ||
215 | +// | ||
281 | $error = ms_GetErrorObj(); | 216 | $error = ms_GetErrorObj(); |
282 | while($error && $error->code != MS_NOERR) | 217 | while($error && $error->code != MS_NOERR) |
283 | { | 218 | { |
@@ -288,19 +223,10 @@ ms_ResetErrorList(); | @@ -288,19 +223,10 @@ ms_ResetErrorList(); | ||
288 | // | 223 | // |
289 | //liga os temas definidos em $layers | 224 | //liga os temas definidos em $layers |
290 | // | 225 | // |
291 | -if (isset($layers)) | ||
292 | -{ | ||
293 | - $layers = str_replace(','," ",$layers); | ||
294 | - $lista = explode(" ", $layers); | ||
295 | - foreach ($lista as $l) | ||
296 | - { | ||
297 | - $arqt = trim($l); | ||
298 | - if ($l == "") | ||
299 | - {continue;} | ||
300 | - if(@$mapn->getLayerByName($l)) | ||
301 | - {$layern = $mapn->getLayerByName($l);$layern->set("status",MS_DEFAULT);} | ||
302 | - } | ||
303 | -} | 226 | +ligaTemas(); |
227 | +// | ||
228 | +//verifica erros | ||
229 | +// | ||
304 | $error = ms_GetErrorObj(); | 230 | $error = ms_GetErrorObj(); |
305 | while($error && $error->code != MS_NOERR) | 231 | while($error && $error->code != MS_NOERR) |
306 | { | 232 | { |
@@ -377,9 +303,208 @@ while($error && $error->code != MS_NOERR) | @@ -377,9 +303,208 @@ while($error && $error->code != MS_NOERR) | ||
377 | $error = $error->next(); | 303 | $error = $error->next(); |
378 | } | 304 | } |
379 | ms_ResetErrorList(); | 305 | ms_ResetErrorList(); |
306 | +// | ||
380 | //inclui pontos via url | 307 | //inclui pontos via url |
308 | +// | ||
381 | if (isset($pontos)) | 309 | if (isset($pontos)) |
310 | +{inserePontosUrl();} | ||
311 | +$error = ms_GetErrorObj(); | ||
312 | +while($error && $error->code != MS_NOERR) | ||
313 | +{ | ||
314 | + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | ||
315 | + $error = $error->next(); | ||
316 | +} | ||
317 | +ms_ResetErrorList(); | ||
318 | +// | ||
319 | +//inclui linhas via url | ||
320 | +// | ||
321 | +if (isset($linhas)) | ||
322 | +{insereLinhasUrl();} | ||
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 | +//inclui pontos via url | ||
332 | +// | ||
333 | +if (isset($poligonos)) | ||
334 | +{inserePoligonosUrl();} | ||
335 | +$error = ms_GetErrorObj(); | ||
336 | +while($error && $error->code != MS_NOERR) | ||
337 | +{ | ||
338 | + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | ||
339 | + $error = $error->next(); | ||
340 | +} | ||
341 | +ms_ResetErrorList(); | ||
342 | +// | ||
343 | +//se vc quiser parar o script aqui, para verificar erros, descomente a linha abaixo | ||
344 | +// | ||
345 | +//exit; | ||
346 | +// | ||
347 | +//verifica os dados de cada layer | ||
348 | +// | ||
349 | +$mapa = ms_newMapObj($tmpfname); | ||
350 | +$path = $mapa->shapepath; | ||
351 | +for($i=0;$i<($mapa->numlayers);$i++) | ||
352 | +{ | ||
353 | + $layer = $mapa->getLayer($i); | ||
354 | + $ok = true; | ||
355 | + if ($layer->connection == "") | ||
356 | + { | ||
357 | + $ok = false; | ||
358 | + $d = $layer->data; | ||
359 | + if((file_exists($d)) || (file_exists($d.".shp"))) | ||
360 | + {$ok = true;} | ||
361 | + else | ||
362 | + { | ||
363 | + if((file_exists($path."/".$d)) || (file_exists($path."/".$d.".shp"))) | ||
364 | + {$ok = true;} | ||
365 | + } | ||
366 | + } | ||
367 | + if ($ok == false) | ||
368 | + {$layer->set("status",MS_OFF);} | ||
369 | +} | ||
370 | +$mapa->save($tmpfname); | ||
371 | +// | ||
372 | +//obtem o IP do usuário e registra no banco de dados | ||
373 | +//essa função pode ser comentada sem prejuízos ao funcionamento do I3Geo | ||
374 | +require_once($caminho."ms_registraip.php"); | ||
375 | +// | ||
376 | +// gera a url para abrir o mapa | ||
377 | +// interface = arquivo html que será aberto | ||
378 | +// | ||
379 | +if ($interface != "mashup") | ||
380 | +{ | ||
381 | + if (count(explode(".php",$interface)) > 1) | ||
382 | + { | ||
383 | + if (file_exists($caminho."aplicmap/".$interface)) | ||
384 | + {include_once($caminho."aplicmap/".$interface);} | ||
385 | + else | ||
386 | + {include_once($interface);} | ||
387 | + exit; | ||
388 | + } | ||
389 | + else | ||
390 | + { | ||
391 | + if (file_exists($caminho."aplicmap/".$interface)) | ||
392 | + {$urln = $caminho."aplicmap/".$interface."?".session_id();} | ||
393 | + else | ||
394 | + {$urln = $interface."?".session_id();} | ||
395 | + //header("Location:".$urln); | ||
396 | + echo "<meta http-equiv='refresh' content='0;url=$urln'>"; | ||
397 | + } | ||
398 | +} | ||
399 | +////////////////////////////////////////////////////////////////////////////// | ||
400 | +//funções | ||
401 | +///////////////////////////////////////////////////////////////////////////// | ||
402 | + | ||
403 | +function ligaTemas() | ||
404 | +{ | ||
405 | + global $layers,$mapn; | ||
406 | + if (isset($layers)) | ||
407 | + { | ||
408 | + $layers = str_replace(','," ",$layers); | ||
409 | + $lista = explode(" ", $layers); | ||
410 | + foreach ($lista as $l) | ||
411 | + { | ||
412 | + $arqt = trim($l); | ||
413 | + if ($l == "") | ||
414 | + {continue;} | ||
415 | + if(@$mapn->getLayerByName($l)) | ||
416 | + {$layern = $mapn->getLayerByName($l);$layern->set("status",MS_DEFAULT);} | ||
417 | + } | ||
418 | + } | ||
419 | +} | ||
420 | + | ||
421 | +function incluiTemasIniciais() | ||
422 | +{ | ||
423 | + global $temasa,$estadosl,$temasaplic,$temasdir,$mapn; | ||
424 | + if (!isset($temasa)){$temasa = $estadosl;} | ||
425 | + $temasa = str_replace(','," ",$temasa); | ||
426 | + $alayers = explode(" ",$temasa); | ||
427 | + foreach ($alayers as $arqt) | ||
428 | + { | ||
429 | + $arqtemp = ""; | ||
430 | + $arqt = trim($arqt); | ||
431 | + if ($arqt == "") | ||
432 | + {continue;} | ||
433 | + if (file_exists($arqt)) | ||
434 | + {$arqtemp = $arqt;} | ||
435 | + if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasaplic."\\".$arqt.".map"))) | ||
436 | + {$arqtemp = $temasaplic."\\".$arqt.".map";} | ||
437 | + elseif (file_exists($temasaplic."/".$arqt.".map")) | ||
438 | + {$arqtemp = $temasaplic."/".$arqt.".map";} | ||
439 | + if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasdir."\\".$arqt.".map"))) | ||
440 | + {$arqtemp = $temasdir."\\".$arqt.".map";} | ||
441 | + elseif (file_exists($temasdir."/".$arqt.".map")) | ||
442 | + {$arqtemp = $temasdir."/".$arqt.".map";} | ||
443 | + if ($arqtemp == "") | ||
444 | + {echo "<br>Impossível acessar tema $arqtemp";} | ||
445 | + else | ||
446 | + { | ||
447 | + if (!@ms_newMapObj($arqtemp)) | ||
448 | + {echo "<br>Problemas com a camada $arqtemp<br>";} | ||
449 | + else | ||
450 | + { | ||
451 | + $maptemp = @ms_newMapObj($arqtemp); | ||
452 | + for($i=0;$i<($maptemp->numlayers);$i++) | ||
453 | + { | ||
454 | + $layern = $maptemp->getLayer($i); | ||
455 | + $layern->setmetadata("NOMEORIGINAL",$layern->name); | ||
456 | + if ($layern->name == "estadosl") | ||
457 | + {$layern->set("data",$temasaplic."/dados/estados.shp");} | ||
458 | + ms_newLayerObj(&$mapn, $layern); | ||
459 | + } | ||
460 | + } | ||
461 | + } | ||
462 | + } | ||
463 | +} | ||
464 | + | ||
465 | +function criaIndex() | ||
382 | { | 466 | { |
467 | + global $dir_tmp,$diretorios; | ||
468 | + if (!file_exists($dir_tmp."/index.htm")) | ||
469 | + { | ||
470 | + $f = fopen($dir_tmp."/index.htm",x); | ||
471 | + fclose($f); | ||
472 | + $f = fopen($dir_tmp."/index.html",x); | ||
473 | + fclose($f); | ||
474 | + $f = fopen($dir_tmp."/".$diretorios[1]."/index.html",x); | ||
475 | + fclose($f); | ||
476 | + $f = fopen($dir_tmp."/".$diretorios[1]."/index.htm",x); | ||
477 | + fclose($f); | ||
478 | + $f = fopen($dir_tmp."/".$diretorios[2]."/index.html",x); | ||
479 | + fclose($f); | ||
480 | + $f = fopen($dir_tmp."/".$diretorios[2]."/index.htm",x); | ||
481 | + fclose($f); | ||
482 | + } | ||
483 | + if (!file_exists($dir_tmp."/index.htm")) | ||
484 | + { | ||
485 | + echo "Erro. Não foi possível gravar no diretório temporário"; | ||
486 | + exit; | ||
487 | + } | ||
488 | +} | ||
489 | + | ||
490 | +function mostraAguarde() | ||
491 | +{ | ||
492 | + global $interface,$caminho,$mensagemInicia; | ||
493 | + if (!isset($interface)) | ||
494 | + { | ||
495 | + echo "<html><head>"; | ||
496 | + echo '<div id="aguarde">'; | ||
497 | + echo '<p class=paguarde style="font-family: Verdana, Arial, Helvetica, sans-serif;color:black;text-align:center;font-size:12pt"><b>'.$mensagemInicia.'</b><br> Aguarde...criando o mapa</p>'; | ||
498 | + echo "<center><img src='".$caminho."imagens/i3geo1.jpg'><br><br>"; | ||
499 | + echo "<center><img src='".$caminho."imagens/mapserv.png'><br><br>"; | ||
500 | + echo "<center><a href='http://mapas.mma.gov.br/download' target=blank ><img src='".$caminho."imagens/somerights20_pt.gif' ></a>"; | ||
501 | + echo '<BODY bgcolor="white" style="background-color:white">'; | ||
502 | + } | ||
503 | +} | ||
504 | + | ||
505 | +function inserePontosUrl() | ||
506 | +{ | ||
507 | + global $pontos,$nometemapontos,$dir_tmp,$imgdir,$tmpfname,$locaplic; | ||
383 | require_once "pacotes/phpxbase/api_conversion.php"; | 508 | require_once "pacotes/phpxbase/api_conversion.php"; |
384 | if (!isset($nometemapontos)) | 509 | if (!isset($nometemapontos)) |
385 | {$nometemapontos="Pontos";} | 510 | {$nometemapontos="Pontos";} |
@@ -433,68 +558,144 @@ if (isset($pontos)) | @@ -433,68 +558,144 @@ if (isset($pontos)) | ||
433 | $cor->setRGB(255,0,0); | 558 | $cor->setRGB(255,0,0); |
434 | $salvo = $mapa->save($tmpfname); | 559 | $salvo = $mapa->save($tmpfname); |
435 | } | 560 | } |
436 | -$error = ms_GetErrorObj(); | ||
437 | -while($error && $error->code != MS_NOERR) | ||
438 | -{ | ||
439 | - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | ||
440 | - $error = $error->next(); | ||
441 | -} | ||
442 | -ms_ResetErrorList(); | ||
443 | // | 561 | // |
444 | -//se vc quiser para o script aqui, para verificar erros, descomente a linha abaixo | ||
445 | -// | ||
446 | -//exit; | ||
447 | -// | ||
448 | -//verifica os dados de cada layer | 562 | +//as linhas devem ter os pontos separados por espaços e cada linha separada por vírgula |
449 | // | 563 | // |
450 | -$mapa = ms_newMapObj($tmpfname); | ||
451 | -$path = $mapa->shapepath; | ||
452 | -for($i=0;$i<($mapa->numlayers);$i++) | 564 | +function insereLinhasUrl() |
453 | { | 565 | { |
454 | - $layer = $mapa->getLayer($i); | ||
455 | - $ok = true; | ||
456 | - if ($layer->connection == "") | 566 | + global $linhas,$nometemalinhas,$dir_tmp,$imgdir,$tmpfname,$locaplic; |
567 | + require_once "pacotes/phpxbase/api_conversion.php"; | ||
568 | + if (!isset($nometemalinhas)) | ||
569 | + {$nometemalinhas="Linhas";} | ||
570 | + if ($nometemalinhas == "") | ||
571 | + {$nometemalinhas="Linhas";} | ||
572 | + // | ||
573 | + //cria o shape file | ||
574 | + // | ||
575 | + $tipol = MS_SHP_ARC; | ||
576 | + $nomeshp = $dir_tmp."/".$imgdir."/linhains"; | ||
577 | + // cria o dbf | ||
578 | + $def = array(); | ||
579 | + $items = array("COORD"); | ||
580 | + foreach ($items as $ni) | ||
581 | + {$def[] = array($ni,"C","254");} | ||
582 | + xbase_create($nomeshp.".dbf", $def); | ||
583 | + $dbname = $nomeshp.".dbf"; | ||
584 | + $db=xbase_open($dbname,2); | ||
585 | + $novoshpf = ms_newShapefileObj($nomeshp, $tipol); | ||
586 | + $linhas = explode(",",trim($linhas)); | ||
587 | + $pontosLinhas = array(); //guarda os pontos de cada linha em arrays | ||
588 | + foreach ($linhas as $l) | ||
457 | { | 589 | { |
458 | - $ok = false; | ||
459 | - $d = $layer->data; | ||
460 | - if((file_exists($d)) || (file_exists($d.".shp"))) | ||
461 | - {$ok = true;} | ||
462 | - else | 590 | + $tempPTs = explode(" ",trim($l)); |
591 | + $temp = array(); | ||
592 | + foreach ($tempPTs as $p) | ||
593 | + if (is_numeric($p)){$temp[] = $p;} | ||
594 | + $pontosLinhas[] = $temp; | ||
595 | + } | ||
596 | + foreach ($pontosLinhas as $ptsl) | ||
597 | + { | ||
598 | + $linhas = $ptsl; | ||
599 | + $shape = ms_newShapeObj($tipol); | ||
600 | + $linha = ms_newLineObj(); | ||
601 | + $reg = array(); | ||
602 | + $reg[] = ""; | ||
603 | + for ($ci = 0;$ci < count($linhas);$ci=$ci+2) | ||
463 | { | 604 | { |
464 | - if((file_exists($path."/".$d)) || (file_exists($path."/".$d.".shp"))) | ||
465 | - {$ok = true;} | 605 | + $linha->addXY($linhas[$ci],$linhas[$ci+1]); |
606 | + $shape->add($linha); | ||
466 | } | 607 | } |
608 | + $novoshpf->addShape($shape); | ||
609 | + xbase_add_record($db,$reg); | ||
467 | } | 610 | } |
468 | - if ($ok == false) | ||
469 | - {$layer->set("status",MS_OFF);} | 611 | + $novoshpf->free(); |
612 | + xbase_close($db); | ||
613 | + //adiciona o layer | ||
614 | + $mapa = ms_newMapObj($tmpfname); | ||
615 | + $layer = ms_newLayerObj($mapa); | ||
616 | + $layer->set("name","linhains"); | ||
617 | + $layer->set("data",$nomeshp); | ||
618 | + $layer->setmetadata("tema",$nometemalinhas); | ||
619 | + $layer->setmetadata("classe","sim"); | ||
620 | + $layer->set("type",MS_LAYER_LINE); | ||
621 | + $layer->set("status",MS_DEFAULT); | ||
622 | + $classe = ms_newClassObj($layer); | ||
623 | + $estilo = ms_newStyleObj($classe); | ||
624 | + $estilo->set("symbolname","linha"); | ||
625 | + $estilo->set("size",3); | ||
626 | + $cor = $estilo->color; | ||
627 | + $cor->setRGB(255,0,0); | ||
628 | + $salvo = $mapa->save($tmpfname); | ||
470 | } | 629 | } |
471 | -$mapa->save($tmpfname); | ||
472 | -// | ||
473 | -//obtem o IP do usuário e registra no banco de dados | ||
474 | -//essa função pode ser comentada sem prejuízos ao funcionamento do I3Geo | ||
475 | -require_once($caminho."ms_registraip.php"); | ||
476 | // | 630 | // |
477 | -// gera a url para abrir o mapa | ||
478 | -// interface = arquivo html que será aberto | 631 | +//os polígonos devem ter os pontos separados por espaços e cada polígono separado por vírgula |
479 | // | 632 | // |
480 | -if ($interface != "mashup") | 633 | +function inserePoligonosUrl() |
481 | { | 634 | { |
482 | - if (count(explode(".php",$interface)) > 1) | 635 | + global $poligonos,$nometemapoligonos,$dir_tmp,$imgdir,$tmpfname,$locaplic; |
636 | + require_once "pacotes/phpxbase/api_conversion.php"; | ||
637 | + if (!isset($nometemapoligonos)) | ||
638 | + {$nometemapoligonos="Poligonos";} | ||
639 | + if ($nometemapoligonos == "") | ||
640 | + {$nometemapoligonos="Poligonos";} | ||
641 | + // | ||
642 | + //cria o shape file | ||
643 | + // | ||
644 | + $tipol = MS_SHP_POLYGON; | ||
645 | + $nomeshp = $dir_tmp."/".$imgdir."/poligonosins"; | ||
646 | + // cria o dbf | ||
647 | + $def = array(); | ||
648 | + $items = array("COORD"); | ||
649 | + foreach ($items as $ni) | ||
650 | + {$def[] = array($ni,"C","254");} | ||
651 | + xbase_create($nomeshp.".dbf", $def); | ||
652 | + $dbname = $nomeshp.".dbf"; | ||
653 | + $db=xbase_open($dbname,2); | ||
654 | + $novoshpf = ms_newShapefileObj($nomeshp, $tipol); | ||
655 | + $linhas = explode(",",trim($poligonos)); | ||
656 | + $pontosLinhas = array(); //guarda os pontos de cada linha em arrays | ||
657 | + foreach ($linhas as $l) | ||
483 | { | 658 | { |
484 | - if (file_exists($caminho."aplicmap/".$interface)) | ||
485 | - {include_once($caminho."aplicmap/".$interface);} | ||
486 | - else | ||
487 | - {include_once($interface);} | ||
488 | - exit; | 659 | + $tempPTs = explode(" ",trim($l)); |
660 | + $temp = array(); | ||
661 | + foreach ($tempPTs as $p) | ||
662 | + if (is_numeric($p)){$temp[] = $p;} | ||
663 | + $pontosLinhas[] = $temp; | ||
489 | } | 664 | } |
490 | - else | 665 | + foreach ($pontosLinhas as $ptsl) |
491 | { | 666 | { |
492 | - if (file_exists($caminho."aplicmap/".$interface)) | ||
493 | - {$urln = $caminho."aplicmap/".$interface."?".session_id();} | ||
494 | - else | ||
495 | - {$urln = $interface."?".session_id();} | ||
496 | - //header("Location:".$urln); | ||
497 | - echo "<meta http-equiv='refresh' content='0;url=$urln'>"; | 667 | + $linhas = $ptsl; |
668 | + $shape = ms_newShapeObj($tipol); | ||
669 | + $linha = ms_newLineObj(); | ||
670 | + $reg = array(); | ||
671 | + $reg[] = ""; | ||
672 | + for ($ci = 0;$ci < count($linhas);$ci=$ci+2) | ||
673 | + { | ||
674 | + $linha->addXY($linhas[$ci],$linhas[$ci+1]); | ||
675 | + | ||
676 | + } | ||
677 | + $shape->add($linha); | ||
678 | + $novoshpf->addShape($shape); | ||
679 | + xbase_add_record($db,$reg); | ||
498 | } | 680 | } |
681 | + $novoshpf->free(); | ||
682 | + xbase_close($db); | ||
683 | + //adiciona o layer | ||
684 | + $mapa = ms_newMapObj($tmpfname); | ||
685 | + $layer = ms_newLayerObj($mapa); | ||
686 | + $layer->set("name","linhains"); | ||
687 | + $layer->set("data",$nomeshp); | ||
688 | + $layer->setmetadata("tema",$nometemapoligonos); | ||
689 | + $layer->setmetadata("classe","sim"); | ||
690 | + $layer->set("type",MS_LAYER_POLYGON); | ||
691 | + $layer->set("transparency","50"); | ||
692 | + $layer->set("status",MS_DEFAULT); | ||
693 | + $classe = ms_newClassObj($layer); | ||
694 | + $estilo = ms_newStyleObj($classe); | ||
695 | + //$estilo->set("symbolname","linha"); | ||
696 | + //$estilo->set("size",3); | ||
697 | + $cor = $estilo->color; | ||
698 | + $cor->setRGB(255,0,0); | ||
699 | + $salvo = $mapa->save($tmpfname); | ||
499 | } | 700 | } |
500 | ?> | 701 | ?> |
501 | \ No newline at end of file | 702 | \ No newline at end of file |