Commit 4f6049e612be03f8b0a30e36ed6d31ab55f62569
1 parent
eae3ead1
Exists in
master
and in
7 other branches
Alterações para permitir o uso de simbolos inline nos mapfiles
Showing
10 changed files
with
465 additions
and
440 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/classe_mapa.php
| ... | ... | @@ -1100,6 +1100,7 @@ $random - indica se os nomes dos novos layers serão modificados ou nao |
| 1100 | 1100 | $nlayer->setmetadata("wms_sld_body",str_replace('"',"'",$sld)); |
| 1101 | 1101 | $nlayer->set("type",$tipotemp); |
| 1102 | 1102 | } |
| 1103 | + cloneInlineSymbol($nlayer,$nmap,$this->mapa); | |
| 1103 | 1104 | ms_newLayerObj($this->mapa, $nlayer); |
| 1104 | 1105 | $l = $this->mapa->getlayerbyname($nlayer->name); |
| 1105 | 1106 | //reposiciona o layer se for o caso | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -2635,4 +2635,43 @@ function listaGruposUsrLogin(){ |
| 2635 | 2635 | session_start(); |
| 2636 | 2636 | return $res; |
| 2637 | 2637 | } |
| 2638 | +/* | |
| 2639 | +Function: cloneInlineSymbol | |
| 2640 | + | |
| 2641 | +Importa os simbolos inline de um layer de um mapfile para outro mapfile | |
| 2642 | + | |
| 2643 | +@fixme | |
| 2644 | +No caso de imagens, o nome do simbolo deve ser o mesmo do caminho da imagem (bug do mapserver) | |
| 2645 | + | |
| 2646 | +Parameters: | |
| 2647 | + | |
| 2648 | +layern - objeto layer que contem o simbolo original | |
| 2649 | + | |
| 2650 | +nmapa - objeto map que contem o layer layern | |
| 2651 | + | |
| 2652 | +mapa - objeto mapa destino do simbolo clonado | |
| 2653 | +*/ | |
| 2654 | +function cloneInlineSymbol($layern,$nmapa,$mapa){ | |
| 2655 | + $versao = versao(); | |
| 2656 | + if($versao["principal"] > 5){ | |
| 2657 | + $numclasses = $layern->numclasses; | |
| 2658 | + for($ci=0;$ci < $numclasses;$ci++){ | |
| 2659 | + $classe = $layern->getclass($ci); | |
| 2660 | + $numestilos = $classe->numstyles; | |
| 2661 | + for($ei=0;$ei < $numestilos;$ei++){ | |
| 2662 | + $estilo = $classe->getstyle($ei); | |
| 2663 | + if($estilo->symbolname != ""){ | |
| 2664 | + $nomesimbolo = $estilo->symbolname; | |
| 2665 | + $simbolo = new symbolObj($nmapa, $nomesimbolo); | |
| 2666 | + $ipath = $simbolo->imagepath; | |
| 2667 | + if($simbolo->inmapfile == MS_TRUE){ | |
| 2668 | + $simbolon = new symbolObj($mapa, $nomesimbolo); | |
| 2669 | + $simbolon->set("inmapfile",MS_TRUE); | |
| 2670 | + $simbolon->setImagePath($ipath); | |
| 2671 | + } | |
| 2672 | + } | |
| 2673 | + } | |
| 2674 | + } | |
| 2675 | + } | |
| 2676 | +} | |
| 2638 | 2677 | ?> | ... | ... |
geraminiatura.php
| ... | ... | @@ -213,6 +213,7 @@ function verificaMiniatura($map,$tipo,$admin=false) |
| 213 | 213 | for ($i=0;$i < $numlayers;$i++){ |
| 214 | 214 | $layern = $nmapa->getlayer($i); |
| 215 | 215 | $layern->set("status",MS_DEFAULT); |
| 216 | + cloneInlineSymbol($layern,$nmapa,$mapa); | |
| 216 | 217 | ms_newLayerObj($mapa, $layern); |
| 217 | 218 | autoClasses($layern,$mapa,$locaplic); |
| 218 | 219 | if ($layern->data == ""){ |
| ... | ... | @@ -261,7 +262,7 @@ function verificaMiniatura($map,$tipo,$admin=false) |
| 261 | 262 | $urlM = $weboM->imageurl."/".$map; |
| 262 | 263 | } |
| 263 | 264 | if ($tipo == "grande" || $tipo == "todos"){ |
| 264 | - $mapa->setsize(300,300); | |
| 265 | + $mapa->setsize(300,300); | |
| 265 | 266 | $sca = $mapa->scalebar; |
| 266 | 267 | $sca->set("status",MS_OFF); |
| 267 | 268 | $objImagemG = @$mapa->draw(); | ... | ... |
677 Bytes
835 Bytes
ms_criamapa.php
ogc.php
| 1 | 1 | <?php |
| 2 | 2 | /* |
| 3 | - Title: Gerador de serviços OGC | |
| 3 | +Title: Gerador de serviços OGC | |
| 4 | 4 | |
| 5 | 5 | Gera web services nos padrões OGC para os temas existentes na pasta i3geo/temas |
| 6 | 6 | |
| ... | ... | @@ -429,7 +429,8 @@ else{ |
| 429 | 429 | $l->setmetadata("wms_attribution_logourl_height","50"); |
| 430 | 430 | $l->setmetadata("wms_attribution_logourl_width","50"); |
| 431 | 431 | $l->setmetadata("wms_attribution_logourl_href",$mini); |
| 432 | - } | |
| 432 | + } | |
| 433 | + cloneInlineSymbol($l,$nmap,$oMap); | |
| 433 | 434 | ms_newLayerObj($oMap, $l); |
| 434 | 435 | } |
| 435 | 436 | } | ... | ... |
temas/_llocali.map
| ... | ... | @@ -3,9 +3,14 @@ MAP |
| 3 | 3 | #SYMBOLSET "../symbols/vazio.sym" |
| 4 | 4 | SYMBOLSET "../symbols/simbolosv6.sym" |
| 5 | 5 | SYMBOL |
| 6 | - NAME "teste" | |
| 6 | + NAME "/var/www/i3geo/imagens/google/condominium.png" | |
| 7 | 7 | TYPE pixmap |
| 8 | - IMAGE "/var/www/i3geo/imagens/google/foto.png" | |
| 8 | + IMAGE "/var/www/i3geo/imagens/google/condominium.png" | |
| 9 | +END | |
| 10 | +SYMBOL | |
| 11 | + NAME "/var/www/i3geo/imagens/google/condominium1.png" | |
| 12 | + TYPE pixmap | |
| 13 | + IMAGE "/var/www/i3geo/imagens/google/condominium1.png" | |
| 9 | 14 | END |
| 10 | 15 | LAYER |
| 11 | 16 | CONNECTION "" |
| ... | ... | @@ -58,8 +63,8 @@ END |
| 58 | 63 | ANGLE 0 |
| 59 | 64 | COLOR 250 193 4 |
| 60 | 65 | OFFSET 0 0 |
| 61 | - SIZE 4 | |
| 62 | - SYMBOL "ponto" | |
| 66 | + SIZE 20 | |
| 67 | + SYMBOL "/var/www/i3geo/imagens/google/condominium.png" | |
| 63 | 68 | END # STYLE |
| 64 | 69 | END # CLASS |
| 65 | 70 | CLASS |
| ... | ... | @@ -69,8 +74,8 @@ END |
| 69 | 74 | ANGLE 0 |
| 70 | 75 | COLOR 62 9 41 |
| 71 | 76 | OFFSET 0 0 |
| 72 | - SIZE 6 | |
| 73 | - SYMBOL "teste" | |
| 77 | + SIZE 20 | |
| 78 | + SYMBOL "/var/www/i3geo/imagens/google/condominium1.png" | |
| 74 | 79 | END # STYLE |
| 75 | 80 | END # CLASS |
| 76 | 81 | CLASS |
| ... | ... | @@ -81,7 +86,7 @@ END |
| 81 | 86 | COLOR 112 203 244 |
| 82 | 87 | OFFSET 0 0 |
| 83 | 88 | SIZE 6 |
| 84 | - SYMBOL "capital" | |
| 89 | + SYMBOL "vila" | |
| 85 | 90 | END # STYLE |
| 86 | 91 | END # CLASS |
| 87 | 92 | END # LAYER | ... | ... |
testamapfile.php
| 1 | -<?php | |
| 2 | -/* | |
| 3 | -Testa um mapfile | |
| 4 | - | |
| 5 | -Permite testar um mapfile específico existente no diretório "temas" ou gerar uma imagem miniatura. | |
| 6 | - | |
| 7 | -As miniaturas são utilizadas na árvore de temas mostrada na opção "adiciona", existente na interface padrão. | |
| 8 | -Quando o usuário passa o mouse sobre a palavra "miniatura" é executado o programa de geração de miniaturas. Caso o | |
| 9 | -a miniatura tiver sido gerada previamente, a preferência é por esse arquivo em cahce. Isso permite uma performance melhor, | |
| 10 | -uma vez que a geração on-line pode ser muito demorada. Para gerar as miniaturas o administrador deve executar o | |
| 11 | -programa geraminiatura.php. | |
| 12 | - | |
| 13 | -Licenca: | |
| 14 | - | |
| 15 | -GPL2 | |
| 16 | - | |
| 17 | -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 18 | - | |
| 19 | -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 20 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
| 21 | -Colaboração: Luis Henrique Weirich de Matos | |
| 22 | -Este programa é software livre; você pode redistribuí-lo | |
| 23 | -e/ou modificá-lo sob os termos da Licença Pública Geral | |
| 24 | -GNU conforme publicada pela Free Software Foundation; | |
| 25 | - | |
| 26 | -Este programa é distribuído na expectativa de que seja útil, | |
| 27 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
| 28 | -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
| 29 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | |
| 30 | -Você deve ter recebido uma cópia da Licença Pública Geral do | |
| 31 | -GNU junto com este programa; se não, escreva para a | |
| 32 | -Free Software Foundation, Inc., no endereço | |
| 33 | -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 34 | - | |
| 35 | -Arquivo: | |
| 36 | - | |
| 37 | -i3geo/testamapfile.php | |
| 38 | - | |
| 39 | -Exemplos: | |
| 40 | - | |
| 41 | -testamapfile.php?map=bioma | |
| 42 | - | |
| 43 | -testamapfile.php?map=bioma&tipo=mini | |
| 44 | - | |
| 45 | -Parametros: | |
| 46 | - | |
| 47 | -map {string} - Nome do mapfile que será testado ou usado na geração da miniatura. O arquivo é procurado no caminho indicado e no diretório i3geo/temas. Se map=todos, todos os mapas são testados em grupos de 10 em 10 e a miniatura não é gerada. | |
| 48 | - | |
| 49 | -tipo {string} - (opcional) mini|grande Define o tamanho da imagem que será gerada. Se não for definido, será feito o teste do mapfile. Controla o tamanho da miniatura que deverá ser mostrada. | |
| 50 | -*/ | |
| 51 | -set_time_limit(300); | |
| 52 | -ini_set('max_execution_time', 300); | |
| 53 | -include("ms_configura.php"); | |
| 54 | -include("classesphp/funcoes_gerais.php"); | |
| 55 | -require_once("classesphp/pega_variaveis.php"); | |
| 56 | -include_once ("classesphp/carrega_ext.php"); | |
| 57 | - | |
| 58 | -// | |
| 59 | -//carrega o phpmapscript | |
| 60 | -// | |
| 61 | -if (!function_exists('ms_GetVersion')) | |
| 62 | -{ | |
| 63 | - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | |
| 64 | - { | |
| 65 | - if(!@dl('php_mapscript_48.dll')) | |
| 66 | - dl('php_mapscript.dll'); | |
| 67 | - } | |
| 68 | - else | |
| 69 | - {dl('php_mapscript.so');} | |
| 70 | -} | |
| 71 | -$versao = versao(); | |
| 72 | -$versao = $versao["principal"]; | |
| 73 | -ms_ResetErrorList(); | |
| 74 | -if(!isset($tipo)) | |
| 75 | -{$tipo = "";} | |
| 76 | -$arqs = listaArquivos("temas"); | |
| 77 | -sort($arqs["arquivos"]); | |
| 78 | - | |
| 79 | -if ($tipo == "") | |
| 80 | -{ | |
| 81 | - echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'; | |
| 82 | - echo '<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">'; | |
| 83 | - echo '<link rel="stylesheet" type="text/css" href="admin/html/admin.css">'; | |
| 84 | - echo '<style>body {COLOR: #2F4632;text-align: justify;font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}</style>'; | |
| 85 | - | |
| 86 | - echo '</head><script>function roda(){window.location.href = "?map="+document.getElementById("nomemap").value;}</script>'; | |
| 87 | - echo '<body class="fundoPonto"><center><div class="bordaSuperior" > </div><div class="mascaraPrincipal" id="divGeral">'; | |
| 88 | - echo '<form action="testamapfile.php" method="post" id=f >'; | |
| 89 | - echo 'Nome do arquivo map existente no diretório i3geo/temas. Exemplo para uso manual da URL: testamapfile.php?map=biomashp (utilize "testamapfile.php?map=todos" na URL para testar todos de uma só vez)<br><br>'; | |
| 90 | - echo '<br>Mostra apenas a legenda? <input type=radio name=solegenda value=sim />sim <input type=radio name=solegenda value=nao CHECKED /> não<br>'; | |
| 91 | - $combo = "<br><select onchange='roda()' id=nomemap ><option value=''>Escolha o arquivo para testar</option>"; | |
| 92 | - foreach ($arqs["arquivos"] as $arq){ | |
| 93 | - $temp = explode(".",$arq); | |
| 94 | - if($temp[1] == "map" || $temp[1] == "gvp"){ | |
| 95 | - $combo .= "<option value='".$temp[0]."'>".$temp[0]."</option>"; | |
| 96 | - } | |
| 97 | - } | |
| 98 | - echo $combo."</select></form><br>"; | |
| 99 | -} | |
| 100 | -if (isset($map) && $map != "") | |
| 101 | -{ | |
| 102 | - if(!isset($solegenda)){$solegenda = "nao";} | |
| 103 | - if ($map == "todos") | |
| 104 | - { | |
| 105 | - $tipo = "todos"; | |
| 106 | - $conta = 0; | |
| 107 | - echo "<br>Número de mapas = ".(count($arqs["arquivos"]))." Faltam= ".(count($arqs["arquivos"])-$iniciar-10)."<br>"; | |
| 108 | - if (!isset($iniciar)){$iniciar = 0;} | |
| 109 | - foreach ($arqs["arquivos"] as $arq) | |
| 110 | - { | |
| 111 | - if (($conta >= $iniciar) && ($conta < $iniciar+10)){ | |
| 112 | - //arquivos php so sao validos se estiverem em i3geo/temas | |
| 113 | - verifica($arq,$solegenda); | |
| 114 | - } | |
| 115 | - $conta++; | |
| 116 | - } | |
| 117 | - echo "<hr><br><br><a href='testamapfile.php?map=todos&iniciar=".($iniciar+10)."' >Próximos mapas</a>"; | |
| 118 | - } | |
| 119 | - else | |
| 120 | - {verifica($map,$solegenda);} | |
| 121 | -} | |
| 122 | -echo '</div>'; | |
| 123 | -echo '<script>if(screen.availWidth > 700){document.getElementById("divGeral").style.width = "700px";}</script>'; | |
| 124 | -echo '</body></html>'; | |
| 125 | -function verifica($map,$solegenda){ | |
| 126 | - global $tipo,$locaplic,$postgis_mapa,$versao,$base,$dir_tmp; | |
| 127 | - $mapUrl = $map; | |
| 128 | - if ($tipo == "mini" && file_exists('temas/miniaturas/'.$map.".mini.png")){ | |
| 129 | - Header("Content-type: image/png"); | |
| 130 | - ImagePng(ImageCreateFromPNG('temas/miniaturas/'.$map.".mini.png")); | |
| 131 | - exit; | |
| 132 | - } | |
| 133 | - if ($tipo == "grande" && file_exists('temas/miniaturas/'.$map.".grande.png")){ | |
| 134 | - Header("Content-type: image/png"); | |
| 135 | - ImagePng(ImageCreateFromPNG('temas/miniaturas/'.$map.".grande.png")); | |
| 136 | - exit; | |
| 137 | - } | |
| 138 | - ms_ResetErrorList(); | |
| 139 | - $tema = ""; | |
| 140 | - if(file_exists($map)){ | |
| 141 | - $tema = $map; | |
| 142 | - } | |
| 143 | - else{ | |
| 144 | - $map = str_replace("\\","/",$map); | |
| 145 | - $map = basename($map); | |
| 146 | - if (file_exists('temas/'.$map)) | |
| 147 | - {$tema = 'temas/'.$map;} | |
| 148 | - if (file_exists('temas/'.$map.'.map')) | |
| 149 | - {$tema = 'temas/'.$map.".map";} | |
| 150 | - if (file_exists('temas/'.$map.'.php')) | |
| 151 | - {$tema = 'temas/'.$map.".php";} | |
| 1 | +<?php | |
| 2 | +/* | |
| 3 | +Testa um mapfile | |
| 4 | + | |
| 5 | +Permite testar um mapfile específico existente no diretório "temas" ou gerar uma imagem miniatura. | |
| 6 | + | |
| 7 | +As miniaturas são utilizadas na árvore de temas mostrada na opção "adiciona", existente na interface padrão. | |
| 8 | +Quando o usuário passa o mouse sobre a palavra "miniatura" é executado o programa de geração de miniaturas. Caso o | |
| 9 | +a miniatura tiver sido gerada previamente, a preferência é por esse arquivo em cahce. Isso permite uma performance melhor, | |
| 10 | +uma vez que a geração on-line pode ser muito demorada. Para gerar as miniaturas o administrador deve executar o | |
| 11 | +programa geraminiatura.php. | |
| 12 | + | |
| 13 | +Licenca: | |
| 14 | + | |
| 15 | +GPL2 | |
| 16 | + | |
| 17 | +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | |
| 18 | + | |
| 19 | +Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | |
| 20 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | |
| 21 | +Colaboração: Luis Henrique Weirich de Matos | |
| 22 | +Este programa é software livre; você pode redistribuí-lo | |
| 23 | +e/ou modificá-lo sob os termos da Licença Pública Geral | |
| 24 | +GNU conforme publicada pela Free Software Foundation; | |
| 25 | + | |
| 26 | +Este programa é distribuído na expectativa de que seja útil, | |
| 27 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | |
| 28 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | |
| 29 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | |
| 30 | +Você deve ter recebido uma cópia da Licença Pública Geral do | |
| 31 | +GNU junto com este programa; se não, escreva para a | |
| 32 | +Free Software Foundation, Inc., no endereço | |
| 33 | +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 34 | + | |
| 35 | +Arquivo: | |
| 36 | + | |
| 37 | +i3geo/testamapfile.php | |
| 38 | + | |
| 39 | +Exemplos: | |
| 40 | + | |
| 41 | +testamapfile.php?map=bioma | |
| 42 | + | |
| 43 | +testamapfile.php?map=bioma&tipo=mini | |
| 44 | + | |
| 45 | +Parametros: | |
| 46 | + | |
| 47 | +map {string} - Nome do mapfile que será testado ou usado na geração da miniatura. O arquivo é procurado no caminho indicado e no diretório i3geo/temas. Se map=todos, todos os mapas são testados em grupos de 10 em 10 e a miniatura não é gerada. | |
| 48 | + | |
| 49 | +tipo {string} - (opcional) mini|grande Define o tamanho da imagem que será gerada. Se não for definido, será feito o teste do mapfile. Controla o tamanho da miniatura que deverá ser mostrada. | |
| 50 | +*/ | |
| 51 | +set_time_limit(300); | |
| 52 | +ini_set('max_execution_time', 300); | |
| 53 | +include("ms_configura.php"); | |
| 54 | +include("classesphp/funcoes_gerais.php"); | |
| 55 | +require_once("classesphp/pega_variaveis.php"); | |
| 56 | +include_once ("classesphp/carrega_ext.php"); | |
| 57 | + | |
| 58 | +// | |
| 59 | +//carrega o phpmapscript | |
| 60 | +// | |
| 61 | +if (!function_exists('ms_GetVersion')) | |
| 62 | +{ | |
| 63 | + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) | |
| 64 | + { | |
| 65 | + if(!@dl('php_mapscript_48.dll')) | |
| 66 | + dl('php_mapscript.dll'); | |
| 67 | + } | |
| 68 | + else | |
| 69 | + {dl('php_mapscript.so');} | |
| 70 | +} | |
| 71 | +$versao = versao(); | |
| 72 | +$versao = $versao["principal"]; | |
| 73 | +ms_ResetErrorList(); | |
| 74 | +if(!isset($tipo)) | |
| 75 | +{$tipo = "";} | |
| 76 | +$arqs = listaArquivos("temas"); | |
| 77 | +sort($arqs["arquivos"]); | |
| 78 | + | |
| 79 | +if ($tipo == "") | |
| 80 | +{ | |
| 81 | + echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'; | |
| 82 | + echo '<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">'; | |
| 83 | + echo '<link rel="stylesheet" type="text/css" href="admin/html/admin.css">'; | |
| 84 | + echo '<style>body {COLOR: #2F4632;text-align: justify;font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}</style>'; | |
| 85 | + | |
| 86 | + echo '</head><script>function roda(){window.location.href = "?map="+document.getElementById("nomemap").value;}</script>'; | |
| 87 | + echo '<body class="fundoPonto"><center><div class="bordaSuperior" > </div><div class="mascaraPrincipal" id="divGeral">'; | |
| 88 | + echo '<form action="testamapfile.php" method="post" id=f >'; | |
| 89 | + echo 'Nome do arquivo map existente no diretório i3geo/temas. Exemplo para uso manual da URL: testamapfile.php?map=biomashp (utilize "testamapfile.php?map=todos" na URL para testar todos de uma só vez)<br><br>'; | |
| 90 | + echo '<br>Mostra apenas a legenda? <input type=radio name=solegenda value=sim />sim <input type=radio name=solegenda value=nao CHECKED /> não<br>'; | |
| 91 | + $combo = "<br><select onchange='roda()' id=nomemap ><option value=''>Escolha o arquivo para testar</option>"; | |
| 92 | + foreach ($arqs["arquivos"] as $arq){ | |
| 93 | + $temp = explode(".",$arq); | |
| 94 | + if($temp[1] == "map" || $temp[1] == "gvp"){ | |
| 95 | + $combo .= "<option value='".$temp[0]."'>".$temp[0]."</option>"; | |
| 96 | + } | |
| 97 | + } | |
| 98 | + echo $combo."</select></form><br>"; | |
| 99 | +} | |
| 100 | +if (isset($map) && $map != "") | |
| 101 | +{ | |
| 102 | + if(!isset($solegenda)){$solegenda = "nao";} | |
| 103 | + if ($map == "todos") | |
| 104 | + { | |
| 105 | + $tipo = "todos"; | |
| 106 | + $conta = 0; | |
| 107 | + echo "<br>Número de mapas = ".(count($arqs["arquivos"]))." Faltam= ".(count($arqs["arquivos"])-$iniciar-10)."<br>"; | |
| 108 | + if (!isset($iniciar)){$iniciar = 0;} | |
| 109 | + foreach ($arqs["arquivos"] as $arq) | |
| 110 | + { | |
| 111 | + if (($conta >= $iniciar) && ($conta < $iniciar+10)){ | |
| 112 | + //arquivos php so sao validos se estiverem em i3geo/temas | |
| 113 | + verifica($arq,$solegenda); | |
| 114 | + } | |
| 115 | + $conta++; | |
| 116 | + } | |
| 117 | + echo "<hr><br><br><a href='testamapfile.php?map=todos&iniciar=".($iniciar+10)."' >Próximos mapas</a>"; | |
| 118 | + } | |
| 119 | + else | |
| 120 | + {verifica($map,$solegenda);} | |
| 121 | +} | |
| 122 | +echo '</div>'; | |
| 123 | +echo '<script>if(screen.availWidth > 700){document.getElementById("divGeral").style.width = "700px";}</script>'; | |
| 124 | +echo '</body></html>'; | |
| 125 | +function verifica($map,$solegenda){ | |
| 126 | + global $tipo,$locaplic,$postgis_mapa,$versao,$base,$dir_tmp; | |
| 127 | + $mapUrl = $map; | |
| 128 | + if ($tipo == "mini" && file_exists('temas/miniaturas/'.$map.".mini.png")){ | |
| 129 | + Header("Content-type: image/png"); | |
| 130 | + ImagePng(ImageCreateFromPNG('temas/miniaturas/'.$map.".mini.png")); | |
| 131 | + exit; | |
| 132 | + } | |
| 133 | + if ($tipo == "grande" && file_exists('temas/miniaturas/'.$map.".grande.png")){ | |
| 134 | + Header("Content-type: image/png"); | |
| 135 | + ImagePng(ImageCreateFromPNG('temas/miniaturas/'.$map.".grande.png")); | |
| 136 | + exit; | |
| 137 | + } | |
| 138 | + ms_ResetErrorList(); | |
| 139 | + $tema = ""; | |
| 140 | + if(file_exists($map)){ | |
| 141 | + $tema = $map; | |
| 142 | + } | |
| 143 | + else{ | |
| 144 | + $map = str_replace("\\","/",$map); | |
| 145 | + $map = basename($map); | |
| 146 | + if (file_exists('temas/'.$map)) | |
| 147 | + {$tema = 'temas/'.$map;} | |
| 148 | + if (file_exists('temas/'.$map.'.map')) | |
| 149 | + {$tema = 'temas/'.$map.".map";} | |
| 150 | + if (file_exists('temas/'.$map.'.php')) | |
| 151 | + {$tema = 'temas/'.$map.".php";} | |
| 152 | 152 | if (file_exists('temas/'.$map.'.gvp')) |
| 153 | - {$tema = 'temas/'.$map.".gvp";} | |
| 154 | - } | |
| 155 | - if(!file_exists($tema)){ | |
| 156 | - $tema = $locaplic."/".$tema; | |
| 157 | - } | |
| 158 | - if(($tipo == "") || ($tipo == "todos")){ | |
| 159 | - echo "<hr><br><br><span style='color:red' ><b>Testando: $tema </span><pre></b>"; | |
| 160 | - } | |
| 161 | - if(!file_exists($tema)){ | |
| 162 | - echo "Arquivo ".$map." não encontrado."; | |
| 163 | - exit; | |
| 164 | - } | |
| 165 | - if ($tema != ""){ | |
| 166 | - if($base == "" or !isset($base)){ | |
| 167 | - $base = ""; | |
| 168 | - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ | |
| 169 | - $base = $locaplic."/aplicmap/geral1windowsv".$versao.".map"; | |
| 170 | - } | |
| 171 | - else{ | |
| 172 | - if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ | |
| 173 | - $base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; | |
| 174 | - } | |
| 175 | - if($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 176 | - $base = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map"; | |
| 177 | - } | |
| 178 | - if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 179 | - $base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; | |
| 180 | - } | |
| 181 | - if($base == ""){ | |
| 182 | - $base = $locaplic."/aplicmap/geral1v".$versao.".map"; | |
| 183 | - } | |
| 184 | - } | |
| 185 | - } | |
| 186 | - else{ | |
| 187 | - if(!file_exists($base)){ | |
| 188 | - $base = $locaplic."/aplicmap/".$base; | |
| 189 | - } | |
| 190 | - } | |
| 191 | - //echo $base;exit; | |
| 192 | - $mapa = ms_newMapObj($base); | |
| 193 | - error_reporting(0); | |
| 194 | - $numlayers = $mapa->numlayers; | |
| 195 | - for ($i=0;$i < $numlayers;$i++){ | |
| 196 | - $layern = $mapa->getlayer($i); | |
| 197 | - if (!empty($postgis_mapa)){ | |
| 198 | - if ($layern->connectiontype == MS_POSTGIS){ | |
| 199 | - $lcon = $layern->connection; | |
| 200 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 201 | - if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
| 202 | - {$layern->set("connection",$postgis_mapa);} | |
| 203 | - else{ | |
| 204 | - $layern->set("connection",$postgis_mapa[$lcon]); | |
| 205 | - } | |
| 206 | - } | |
| 207 | - } | |
| 208 | - } | |
| 209 | - } | |
| 210 | - if(!stristr($tema, '.php') === FALSE){ | |
| 211 | - echo "<br>Arquivo <i>$tema</i> é um programa PHP. O teste pode não funcionar.<br>"; | |
| 212 | - include_once($locaplic."/".$tema); | |
| 213 | - // | |
| 214 | - //$pegarext deve guardar o nome da camada para ser usado mais abaixo | |
| 215 | - // | |
| 216 | - $pegarext = str_replace(".php","",$tema); | |
| 217 | - $pegarext = str_replace("temas/","",$pegarext); | |
| 218 | - eval($pegarext."(\$mapa);"); | |
| 219 | - } | |
| 220 | - if(!stristr($tema, '.map') === FALSE){ | |
| 221 | - if(file_exists($mapUrl)){ | |
| 222 | - if(@ms_newMapObj($mapUrl)){ | |
| 223 | - $nmapa = ms_newMapObj($mapUrl); | |
| 224 | - } | |
| 225 | - else{ | |
| 226 | - echo "Erro no arquivo $mapUrl <br>"; | |
| 227 | - $error = ms_GetErrorObj(); | |
| 228 | - while($error && $error->code != MS_NOERR){ | |
| 229 | - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 230 | - $error = $error->next(); | |
| 231 | - } | |
| 232 | - return; | |
| 233 | - } | |
| 234 | - } | |
| 235 | - else{ | |
| 236 | - if(@ms_newMapObj($locaplic."/".$tema)){ | |
| 237 | - if(!function_exists("validaAcessoTemas")){ | |
| 238 | - include($locaplic."/classesphp/funcoes_gerais.php"); | |
| 239 | - } | |
| 240 | - if(validaAcessoTemas($locaplic."/".$tema,false) == false){ | |
| 241 | - $nmapa = ms_newMapObj($locaplic."/".$tema); | |
| 242 | - } | |
| 243 | - else{ | |
| 244 | - echo "tema restrito <br>"; | |
| 245 | - exit; | |
| 246 | - } | |
| 247 | - } | |
| 248 | - else{ | |
| 249 | - echo "erro no arquivo $map <br>"; | |
| 250 | - echo "Obs.: em alguns testes o mapfile pode falhar se o endereço dos arquivos de símbolos estiverem <br>definidos de forma relativa ao invés de absoluta. Nesses casos, ao abrir o i3Geo, <br>o mapfile poderá funcionar. <br>"; | |
| 251 | - $error = ms_GetErrorObj(); | |
| 252 | - while($error && $error->code != MS_NOERR){ | |
| 253 | - printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 254 | - $error = $error->next(); | |
| 255 | - } | |
| 256 | - return; | |
| 257 | - } | |
| 258 | - } | |
| 259 | - $numlayers = $nmapa->numlayers; | |
| 260 | - $dados = ""; | |
| 261 | - $simbolos = array(); | |
| 262 | - for ($i=0;$i < $numlayers;$i++){ | |
| 263 | - $layern = $nmapa->getlayer($i); | |
| 264 | - $layern->set("status",MS_DEFAULT); | |
| 265 | - if (!empty($postgis_mapa)){ | |
| 266 | - if ($layern->connectiontype == MS_POSTGIS){ | |
| 267 | - $lcon = $layern->connection; | |
| 268 | - error_reporting(0); | |
| 269 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 270 | - if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
| 271 | - {$layern->set("connection",$postgis_mapa);} | |
| 272 | - else | |
| 273 | - {$layern->set("connection",$postgis_mapa[$lcon]);} | |
| 274 | - } | |
| 275 | - } | |
| 276 | - } | |
| 277 | - autoClasses($layern,$nmapa); | |
| 278 | - error_reporting(0); | |
| 279 | - if($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata("wms_sld_body") == ""){ | |
| 280 | - $tipotemp = $layern->type; | |
| 281 | - $tiporep = $layern->getmetadata("tipooriginal"); | |
| 282 | - $layern->set("type",MS_LAYER_POLYGON); | |
| 283 | - if ($tiporep == "linear"){ | |
| 284 | - $layern->set("type",MS_LAYER_LINE); | |
| 285 | - } | |
| 286 | - if ($tiporep == "pontual"){ | |
| 287 | - $layern->set("type",MS_LAYER_POINT); | |
| 288 | - } | |
| 289 | - $sld = $layern->generateSLD(); | |
| 290 | - if($sld != ""){ | |
| 291 | - $layern->setmetadata("wms_sld_body",str_replace('"',"'",$sld)); | |
| 292 | - } | |
| 293 | - $layern->set("type",$tipotemp); | |
| 294 | - } | |
| 295 | - ms_newLayerObj($mapa, $layern); | |
| 296 | - | |
| 297 | - //pega simbolos locais e aplica no novo mapa | |
| 298 | - $numclasses = $layern->numclasses; | |
| 299 | - for($ci=0;$ci < $numclasses;$ci++){ | |
| 300 | - $classe = $layern->getclass($ci); | |
| 301 | - $numestilos = $classe->numstyles; | |
| 302 | - for($ei=0;$ei < $numestilos;$ei++){ | |
| 303 | - $estilo = $classe->getstyle($ei); | |
| 304 | - if($estilo->symbolname != ""){ | |
| 305 | - $nomesimbolo = $estilo->symbolname; | |
| 306 | - $simbolo = new symbolObj($nmapa, $nomesimbolo); | |
| 307 | - $ipath = $simbolo->imagepath; | |
| 308 | - if(ms_newSymbolObj($nmapa, $nomesimbolo) != ms_newSymbolObj($mapa, $nomesimbolo)+1){ | |
| 309 | - $simbolon = new symbolObj($mapa, $nomesimbolo); | |
| 310 | - $simbolon->set("inmapfile",MS_TRUE); | |
| 311 | - $simbolon->setImagePath($ipath); | |
| 312 | - } | |
| 313 | - //algumas versoes do mapserver nao funciona | |
| 314 | - if($simbolon->imagePath != $ipath){ | |
| 315 | - $layern->set("status",MS_DELETE); | |
| 316 | - } | |
| 153 | + {$tema = 'temas/'.$map.".gvp";} | |
| 154 | + } | |
| 155 | + if(!file_exists($tema)){ | |
| 156 | + $tema = $locaplic."/".$tema; | |
| 157 | + } | |
| 158 | + if(($tipo == "") || ($tipo == "todos")){ | |
| 159 | + echo "<hr><br><br><span style='color:red' ><b>Testando: $tema </span><pre></b>"; | |
| 160 | + } | |
| 161 | + if(!file_exists($tema)){ | |
| 162 | + echo "Arquivo ".$map." não encontrado."; | |
| 163 | + exit; | |
| 164 | + } | |
| 165 | + if ($tema != ""){ | |
| 166 | + if($base == "" or !isset($base)){ | |
| 167 | + $base = ""; | |
| 168 | + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ | |
| 169 | + $base = $locaplic."/aplicmap/geral1windowsv".$versao.".map"; | |
| 170 | + } | |
| 171 | + else{ | |
| 172 | + if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ | |
| 173 | + $base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; | |
| 174 | + } | |
| 175 | + if($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 176 | + $base = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map"; | |
| 177 | + } | |
| 178 | + if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 179 | + $base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; | |
| 180 | + } | |
| 181 | + if($base == ""){ | |
| 182 | + $base = $locaplic."/aplicmap/geral1v".$versao.".map"; | |
| 183 | + } | |
| 184 | + } | |
| 185 | + } | |
| 186 | + else{ | |
| 187 | + if(!file_exists($base)){ | |
| 188 | + $base = $locaplic."/aplicmap/".$base; | |
| 189 | + } | |
| 190 | + } | |
| 191 | + //echo $base;exit; | |
| 192 | + $mapa = ms_newMapObj($base); | |
| 193 | + error_reporting(0); | |
| 194 | + $numlayers = $mapa->numlayers; | |
| 195 | + for ($i=0;$i < $numlayers;$i++){ | |
| 196 | + $layern = $mapa->getlayer($i); | |
| 197 | + if (!empty($postgis_mapa)){ | |
| 198 | + if ($layern->connectiontype == MS_POSTGIS){ | |
| 199 | + $lcon = $layern->connection; | |
| 200 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 201 | + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
| 202 | + {$layern->set("connection",$postgis_mapa);} | |
| 203 | + else{ | |
| 204 | + $layern->set("connection",$postgis_mapa[$lcon]); | |
| 205 | + } | |
| 206 | + } | |
| 207 | + } | |
| 208 | + } | |
| 209 | + } | |
| 210 | + if(!stristr($tema, '.php') === FALSE){ | |
| 211 | + echo "<br>Arquivo <i>$tema</i> é um programa PHP. O teste pode não funcionar.<br>"; | |
| 212 | + include_once($locaplic."/".$tema); | |
| 213 | + // | |
| 214 | + //$pegarext deve guardar o nome da camada para ser usado mais abaixo | |
| 215 | + // | |
| 216 | + $pegarext = str_replace(".php","",$tema); | |
| 217 | + $pegarext = str_replace("temas/","",$pegarext); | |
| 218 | + eval($pegarext."(\$mapa);"); | |
| 219 | + } | |
| 220 | + if(!stristr($tema, '.map') === FALSE){ | |
| 221 | + if(file_exists($mapUrl)){ | |
| 222 | + if(@ms_newMapObj($mapUrl)){ | |
| 223 | + $nmapa = ms_newMapObj($mapUrl); | |
| 224 | + } | |
| 225 | + else{ | |
| 226 | + echo "Erro no arquivo $mapUrl <br>"; | |
| 227 | + $error = ms_GetErrorObj(); | |
| 228 | + while($error && $error->code != MS_NOERR){ | |
| 229 | + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 230 | + $error = $error->next(); | |
| 231 | + } | |
| 232 | + return; | |
| 233 | + } | |
| 234 | + } | |
| 235 | + else{ | |
| 236 | + if(@ms_newMapObj($locaplic."/".$tema)){ | |
| 237 | + if(!function_exists("validaAcessoTemas")){ | |
| 238 | + include($locaplic."/classesphp/funcoes_gerais.php"); | |
| 239 | + } | |
| 240 | + if(validaAcessoTemas($locaplic."/".$tema,false) == false){ | |
| 241 | + $nmapa = ms_newMapObj($locaplic."/".$tema); | |
| 242 | + } | |
| 243 | + else{ | |
| 244 | + echo "tema restrito <br>"; | |
| 245 | + exit; | |
| 246 | + } | |
| 247 | + } | |
| 248 | + else{ | |
| 249 | + echo "erro no arquivo $map <br>"; | |
| 250 | + echo "Obs.: em alguns testes o mapfile pode falhar se o endereço dos arquivos de símbolos estiverem <br>definidos de forma relativa ao invés de absoluta. Nesses casos, ao abrir o i3Geo, <br>o mapfile poderá funcionar. <br>"; | |
| 251 | + $error = ms_GetErrorObj(); | |
| 252 | + while($error && $error->code != MS_NOERR){ | |
| 253 | + printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); | |
| 254 | + $error = $error->next(); | |
| 255 | + } | |
| 256 | + return; | |
| 257 | + } | |
| 258 | + } | |
| 259 | + $numlayers = $nmapa->numlayers; | |
| 260 | + $dados = ""; | |
| 261 | + $simbolos = array(); | |
| 262 | + for ($i=0;$i < $numlayers;$i++){ | |
| 263 | + $layern = $nmapa->getlayer($i); | |
| 264 | + $layern->set("status",MS_DEFAULT); | |
| 265 | + if (!empty($postgis_mapa)){ | |
| 266 | + if ($layern->connectiontype == MS_POSTGIS){ | |
| 267 | + $lcon = $layern->connection; | |
| 268 | + error_reporting(0); | |
| 269 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 270 | + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
| 271 | + {$layern->set("connection",$postgis_mapa);} | |
| 272 | + else | |
| 273 | + {$layern->set("connection",$postgis_mapa[$lcon]);} | |
| 317 | 274 | } |
| 318 | 275 | } |
| 319 | - } | |
| 320 | - | |
| 321 | - if ($layern->data == ""){ | |
| 322 | - $dados = $layern->connection; | |
| 323 | - } | |
| 324 | - else{ | |
| 325 | - $dados = $layern->data; | |
| 326 | - } | |
| 327 | - $pegarext = $layern->name; | |
| 328 | - } | |
| 329 | - zoomTema($pegarext,$mapa); | |
| 330 | - } | |
| 331 | - if(!stristr($tema, '.gvp') === FALSE){ | |
| 276 | + } | |
| 277 | + autoClasses($layern,$nmapa); | |
| 278 | + error_reporting(0); | |
| 279 | + if($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata("wms_sld_body") == ""){ | |
| 280 | + $tipotemp = $layern->type; | |
| 281 | + $tiporep = $layern->getmetadata("tipooriginal"); | |
| 282 | + $layern->set("type",MS_LAYER_POLYGON); | |
| 283 | + if ($tiporep == "linear"){ | |
| 284 | + $layern->set("type",MS_LAYER_LINE); | |
| 285 | + } | |
| 286 | + if ($tiporep == "pontual"){ | |
| 287 | + $layern->set("type",MS_LAYER_POINT); | |
| 288 | + } | |
| 289 | + $sld = $layern->generateSLD(); | |
| 290 | + if($sld != ""){ | |
| 291 | + $layern->setmetadata("wms_sld_body",str_replace('"',"'",$sld)); | |
| 292 | + } | |
| 293 | + $layern->set("type",$tipotemp); | |
| 294 | + } | |
| 295 | + //pega simbolos locais e aplica no novo mapa | |
| 296 | + cloneInlineSymbol($layern,$nmapa,$mapa); | |
| 297 | + ms_newLayerObj($mapa, $layern); | |
| 298 | + if ($layern->data == ""){ | |
| 299 | + $dados = $layern->connection; | |
| 300 | + } | |
| 301 | + else{ | |
| 302 | + $dados = $layern->data; | |
| 303 | + } | |
| 304 | + $pegarext = $layern->name; | |
| 305 | + } | |
| 306 | + zoomTema($pegarext,$mapa); | |
| 307 | + } | |
| 308 | + if(!stristr($tema, '.gvp') === FALSE){ | |
| 332 | 309 | if(file_exists($mapUrl)){ |
| 333 | 310 | $gvsiggvp = $mapUrl; |
| 334 | 311 | } |
| 335 | 312 | else{ |
| 336 | 313 | $gvsiggvp = $locaplic."/".$tema; |
| 337 | - } | |
| 314 | + } | |
| 338 | 315 | include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); |
| 339 | - $gm = new gvsig2mapfile($gvsiggvp); | |
| 316 | + $gm = new gvsig2mapfile($gvsiggvp); | |
| 340 | 317 | $gvsigview = $gm->getViewsNames(); |
| 341 | - foreach($gvsigview as $v){ | |
| 318 | + foreach($gvsigview as $v){ | |
| 342 | 319 | $dataView = $gm->getViewData($v); |
| 343 | - $mapa = $gm->addLayers($mapa,$v,$dataView["layerNames"]); | |
| 344 | - } | |
| 320 | + $mapa = $gm->addLayers($mapa,$v,$dataView["layerNames"]); | |
| 321 | + } | |
| 345 | 322 | $next = $dataView["extent"]; |
| 346 | 323 | $ext = $mapa->extent; |
| 347 | 324 | $ext->setextent($next[0],$next[1],$next[2],$next[3]); |
| 348 | - | |
| 349 | - } | |
| 350 | - if ($tipo == "mini"){ | |
| 351 | - $mapa->setsize(50,50); | |
| 352 | - $sca = $mapa->scalebar; | |
| 353 | - $sca->set("status",MS_OFF); | |
| 354 | - } | |
| 355 | - if ($tipo == "grande"){ | |
| 356 | - $mapa->setsize(300,300); | |
| 357 | - $sca = $mapa->scalebar; | |
| 358 | - $sca->set("status",MS_OFF); | |
| 359 | - } | |
| 360 | - if($tipo == "todos"){ | |
| 361 | - $mapa->setsize(150,150); | |
| 362 | - $sca = $mapa->scalebar; | |
| 363 | - $sca->set("status",MS_OFF); | |
| 364 | - } | |
| 365 | - $destino = $dir_tmp."/".nomeRandomico().".map"; | |
| 366 | - echo $destino;exit; | |
| 367 | - $mapa->save($destino); | |
| 368 | - | |
| 369 | - $mapa = ms_newMapObj($destino); | |
| 370 | - $objImagem = @$mapa->draw(); | |
| 371 | - $objImagemLegenda = @$mapa->drawLegend(); | |
| 372 | - if (!$objImagem){ | |
| 373 | - echo "Problemas ao gerar o mapa<br>"; | |
| 374 | - $error = ""; | |
| 375 | - $error = ms_GetErrorObj(); | |
| 376 | - while($error && $error->code != MS_NOERR){ | |
| 377 | - echo "<br>Error in %s: %s<br>", $error->routine, $error->message; | |
| 378 | - $error = $error->next(); | |
| 379 | - } | |
| 380 | - return; | |
| 381 | - } | |
| 382 | - if($objImagem->imagepath == "") | |
| 383 | - {echo "Erro IMAGEPATH vazio";} | |
| 384 | - $nomec = ($objImagem->imagepath).nomeRandomico()."teste.png"; | |
| 385 | - $objImagem->saveImage($nomec); | |
| 386 | - $nomer = ($objImagem->imageurl).basename($nomec); | |
| 387 | - | |
| 388 | - $nomel = ($objImagemLegenda->imagepath).nomeRandomico()."testel.png"; | |
| 389 | - $objImagemLegenda->saveImage($nomel); | |
| 390 | - $nomerl = ($objImagemLegenda->imageurl).basename($nomel); | |
| 391 | - if(($tipo == "") || ($tipo == "todos")){ | |
| 392 | - if($solegenda == "nao") | |
| 393 | - {echo "<img src=".$nomer." /><br>";} | |
| 394 | - echo "<img src=".$nomerl." />"; | |
| 395 | - if($tipo == "todos"){ | |
| 396 | - echo "<br>".$dados."<br>"; | |
| 397 | - } | |
| 398 | - if($map != "todos"){ | |
| 399 | - echo "<br>Erros:<br>"; | |
| 400 | - $error = ""; | |
| 401 | - $error = ms_GetErrorObj(); | |
| 402 | - while($error && $error->code != MS_NOERR){ | |
| 403 | - echo "<br>Error in %s: %s<br>", $error->routine, $error->message; | |
| 404 | - $error = $error->next(); | |
| 405 | - } | |
| 406 | - } | |
| 407 | - | |
| 408 | - } | |
| 409 | - else{ | |
| 410 | - Header("Content-type: image/png"); | |
| 411 | - ImagePng(ImageCreateFromPNG($nomec)); | |
| 412 | - } | |
| 413 | - //$objImagem->free(); | |
| 414 | - } | |
| 415 | -} | |
| 416 | -function zoomTema($nomelayer,&$mapa){ | |
| 417 | - $layer = $mapa->getlayerbyname($nomelayer); | |
| 418 | - if($layer->data == "" && $layer->connection == "") | |
| 419 | - {return;} | |
| 420 | - $prjMapa = $mapa->getProjection(); | |
| 421 | - $prjTema = $layer->getProjection(); | |
| 422 | - $extatual = $mapa->extent; | |
| 423 | - $ret = $layer->getmetadata("extensao"); | |
| 424 | - if($layer->type > 2 && $ret == "") | |
| 425 | - {return;} | |
| 426 | - $ct = $layer->connectiontype; | |
| 427 | - if(($ret == "") && ($ct != 1)) | |
| 428 | - {return;} | |
| 429 | - if ($ret == ""){ | |
| 430 | - $ret = $layer->getextent(); | |
| 431 | - //reprojeta o retangulo | |
| 432 | - if (($prjTema != "") && ($prjMapa != $prjTema)){ | |
| 433 | - $projInObj = ms_newprojectionobj($prjTema); | |
| 434 | - $projOutObj = ms_newprojectionobj($prjMapa); | |
| 435 | - $ret->project($projInObj, $projOutObj); | |
| 436 | - } | |
| 437 | - $extatual->setextent($ret->minx,$ret->miny,$ret->maxx,$ret->maxy); | |
| 438 | - } | |
| 439 | - else{ | |
| 440 | - $ret = explode(" ",$ret); | |
| 441 | - $extatual->setextent($ret[0],$ret[1],$ret[2],$ret[3]); | |
| 442 | - } | |
| 443 | -} | |
| 444 | -?> | |
| 325 | + | |
| 326 | + } | |
| 327 | + if ($tipo == "mini"){ | |
| 328 | + $mapa->setsize(50,50); | |
| 329 | + $sca = $mapa->scalebar; | |
| 330 | + $sca->set("status",MS_OFF); | |
| 331 | + } | |
| 332 | + if ($tipo == "grande"){ | |
| 333 | + $mapa->setsize(300,300); | |
| 334 | + $sca = $mapa->scalebar; | |
| 335 | + $sca->set("status",MS_OFF); | |
| 336 | + } | |
| 337 | + if($tipo == "todos"){ | |
| 338 | + $mapa->setsize(150,150); | |
| 339 | + $sca = $mapa->scalebar; | |
| 340 | + $sca->set("status",MS_OFF); | |
| 341 | + } | |
| 342 | + $destino = $dir_tmp."/".nomeRandomico().".map"; | |
| 343 | + | |
| 344 | + $mapa->save($destino); | |
| 345 | + //echo $destino;exit; | |
| 346 | + $mapa = ms_newMapObj($destino); | |
| 347 | + $objImagem = @$mapa->draw(); | |
| 348 | + $objImagemLegenda = @$mapa->drawLegend(); | |
| 349 | + if (!$objImagem){ | |
| 350 | + echo "Problemas ao gerar o mapa<br>"; | |
| 351 | + $error = ""; | |
| 352 | + $error = ms_GetErrorObj(); | |
| 353 | + while($error && $error->code != MS_NOERR){ | |
| 354 | + echo "<br>Error in %s: %s<br>", $error->routine, $error->message; | |
| 355 | + $error = $error->next(); | |
| 356 | + } | |
| 357 | + return; | |
| 358 | + } | |
| 359 | + if($objImagem->imagepath == "") | |
| 360 | + {echo "Erro IMAGEPATH vazio";} | |
| 361 | + $nomec = ($objImagem->imagepath).nomeRandomico()."teste.png"; | |
| 362 | + $objImagem->saveImage($nomec); | |
| 363 | + $nomer = ($objImagem->imageurl).basename($nomec); | |
| 364 | + | |
| 365 | + $nomel = ($objImagemLegenda->imagepath).nomeRandomico()."testel.png"; | |
| 366 | + $objImagemLegenda->saveImage($nomel); | |
| 367 | + $nomerl = ($objImagemLegenda->imageurl).basename($nomel); | |
| 368 | + if(($tipo == "") || ($tipo == "todos")){ | |
| 369 | + if($solegenda == "nao") | |
| 370 | + {echo "<img src=".$nomer." /><br>";} | |
| 371 | + echo "<img src=".$nomerl." />"; | |
| 372 | + if($tipo == "todos"){ | |
| 373 | + echo "<br>".$dados."<br>"; | |
| 374 | + } | |
| 375 | + if($map != "todos"){ | |
| 376 | + echo "<br>Erros:<br>"; | |
| 377 | + $error = ""; | |
| 378 | + $error = ms_GetErrorObj(); | |
| 379 | + while($error && $error->code != MS_NOERR){ | |
| 380 | + echo "<br>Error in %s: %s<br>", $error->routine, $error->message; | |
| 381 | + $error = $error->next(); | |
| 382 | + } | |
| 383 | + } | |
| 384 | + | |
| 385 | + } | |
| 386 | + else{ | |
| 387 | + Header("Content-type: image/png"); | |
| 388 | + ImagePng(ImageCreateFromPNG($nomec)); | |
| 389 | + } | |
| 390 | + //$objImagem->free(); | |
| 391 | + } | |
| 392 | +} | |
| 393 | +function zoomTema($nomelayer,&$mapa){ | |
| 394 | + $layer = $mapa->getlayerbyname($nomelayer); | |
| 395 | + if($layer->data == "" && $layer->connection == "") | |
| 396 | + {return;} | |
| 397 | + $prjMapa = $mapa->getProjection(); | |
| 398 | + $prjTema = $layer->getProjection(); | |
| 399 | + $extatual = $mapa->extent; | |
| 400 | + $ret = $layer->getmetadata("extensao"); | |
| 401 | + if($layer->type > 2 && $ret == "") | |
| 402 | + {return;} | |
| 403 | + $ct = $layer->connectiontype; | |
| 404 | + if(($ret == "") && ($ct != 1)) | |
| 405 | + {return;} | |
| 406 | + if ($ret == ""){ | |
| 407 | + $ret = $layer->getextent(); | |
| 408 | + //reprojeta o retangulo | |
| 409 | + if (($prjTema != "") && ($prjMapa != $prjTema)){ | |
| 410 | + $projInObj = ms_newprojectionobj($prjTema); | |
| 411 | + $projOutObj = ms_newprojectionobj($prjMapa); | |
| 412 | + $ret->project($projInObj, $projOutObj); | |
| 413 | + } | |
| 414 | + $extatual->setextent($ret->minx,$ret->miny,$ret->maxx,$ret->maxy); | |
| 415 | + } | |
| 416 | + else{ | |
| 417 | + $ret = explode(" ",$ret); | |
| 418 | + $extatual->setextent($ret[0],$ret[1],$ret[2],$ret[3]); | |
| 419 | + } | |
| 420 | +} | |
| 421 | +?> | |
| 445 | 422 | \ No newline at end of file | ... | ... |