Commit d63ac125633432ccb134c6c4b9cf8e347c911e90
1 parent
98cbf426
Exists in
master
and in
7 other branches
Modificação na aplicação de cores em classes para considerar se o color é negativo
Showing
9 changed files
with
1756 additions
and
1705 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/black_editor.php
| 1 | <?php | 1 | <?php |
| 2 | -//verifica login | ||
| 3 | -session_write_close (); | ||
| 4 | -session_name ( "i3GeoLogin" ); | ||
| 5 | -if(empty($_COOKIE ["i3geocodigologin"])){ | ||
| 6 | - exit; | 2 | +// verifica login |
| 3 | +session_write_close(); | ||
| 4 | +session_name("i3GeoLogin"); | ||
| 5 | +if (empty($_COOKIE["i3geocodigologin"])) { | ||
| 6 | + exit(); | ||
| 7 | } | 7 | } |
| 8 | -session_id ( $_COOKIE ["i3geocodigologin"] ); | ||
| 9 | -session_start (); | ||
| 10 | -if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 11 | - $_COOKIE = array (); | ||
| 12 | - $_SESSION = array (); | ||
| 13 | - session_destroy (); | ||
| 14 | - exit; | 8 | +session_id($_COOKIE["i3geocodigologin"]); |
| 9 | +session_start(); | ||
| 10 | +if ($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"]) { | ||
| 11 | + $_COOKIE = array(); | ||
| 12 | + $_SESSION = array(); | ||
| 13 | + session_destroy(); | ||
| 14 | + exit(); | ||
| 15 | } | 15 | } |
| 16 | +session_write_close(); | ||
| 16 | ?> | 17 | ?> |
| 17 | <!DOCTYPE html> | 18 | <!DOCTYPE html> |
| 18 | <html lang="pt-br"> | 19 | <html lang="pt-br"> |
| 19 | <head> | 20 | <head> |
| 20 | <meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile"> | 21 | <meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile"> |
| 21 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> | 22 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
| 22 | -<meta name="viewport" | ||
| 23 | - content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"> | 23 | +<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"> |
| 24 | <title>i3GEO - OpenLayers</title> | 24 | <title>i3GEO - OpenLayers</title> |
| 25 | <script src="../pacotes/ol4/ol.js"></script> | 25 | <script src="../pacotes/ol4/ol.js"></script> |
| 26 | <script src="../js/i3geo.js"></script> | 26 | <script src="../js/i3geo.js"></script> |
| @@ -40,152 +40,142 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -40,152 +40,142 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 40 | background: none; | 40 | background: none; |
| 41 | margin-bottom: 15px; | 41 | margin-bottom: 15px; |
| 42 | } | 42 | } |
| 43 | -.foraDoMapa + span > span { | 43 | + |
| 44 | +.foraDoMapa+span>span { | ||
| 44 | background-color: yellow; | 45 | background-color: yellow; |
| 45 | } | 46 | } |
| 46 | </style> | 47 | </style> |
| 47 | </head> | 48 | </head> |
| 48 | - <!-- As palavras entre {{{}}} sao utilizadas para a traducao. Veja i3geo/js/dicionario.js | 49 | +<!-- As palavras entre {{{}}} sao utilizadas para a traducao. Veja i3geo/js/dicionario.js |
| 49 | Marque com data-traduzir="true" os elementos que deverao passar pelo tradutor | 50 | Marque com data-traduzir="true" os elementos que deverao passar pelo tradutor |
| 50 | --> | 51 | --> |
| 51 | <body id="i3geo" style='background: white;'> | 52 | <body id="i3geo" style='background: white;'> |
| 52 | - <!-- inclui o nome do usuario logado | 53 | + <!-- inclui o nome do usuario logado |
| 53 | <div id="i3GEONomeLogin" | 54 | <div id="i3GEONomeLogin" |
| 54 | style="position: absolute; left: 10px; top: 2px; font-size: 11px; z-index: 50000"></div> | 55 | style="position: absolute; left: 10px; top: 2px; font-size: 11px; z-index: 50000"></div> |
| 55 | --> | 56 | --> |
| 56 | - <!-- Aqui vai o mapa. O div a ser inserido e padronizado e depende da interface usar openlayers ou googlemaps | 57 | + <!-- Aqui vai o mapa. O div a ser inserido e padronizado e depende da interface usar openlayers ou googlemaps |
| 57 | Se os estilos width e height nao estiverem definidos, o tamanho do mapa abrangera a tela toda | 58 | Se os estilos width e height nao estiverem definidos, o tamanho do mapa abrangera a tela toda |
| 58 | --> | 59 | --> |
| 59 | - <div id="mapai3Geo" > | ||
| 60 | - </div> | ||
| 61 | - <!-- aqui sera incluida a escala numerica. E necessario ter o id=i3GEOescalanum para que o valor seja atualizado--> | ||
| 62 | - <form class="escalanumerica hidden-xs" onsubmit="javascript:i3GEO.navega.aplicaEscala($i('i3GEOescalanum').value);return false;"> | ||
| 63 | - <input id='i3GEOescalanum' type='text' name='' value='' size='10' title='' > | ||
| 64 | - </form> | 60 | + <div id="mapai3Geo"></div> |
| 61 | + <!-- aqui sera incluida a escala numerica. E necessario ter o id=i3GEOescalanum para que o valor seja atualizado--> | ||
| 62 | + <form class="escalanumerica hidden-xs" onsubmit="javascript:i3GEO.navega.aplicaEscala($i('i3GEOescalanum').value);return false;"> | ||
| 63 | + <input id='i3GEOescalanum' type='text' name='' value='' size='10' title=''> | ||
| 64 | + </form> | ||
| 65 | 65 | ||
| 66 | - <!-- aqui sera incluido o gadget que mostra a coordenada geografica da posicao do mouse --> | ||
| 67 | - <div class="localizarxy fundoRodape hidden-xs hidden-sm" > | ||
| 68 | - <div class="i3GeoMascaraCoord" style="display: block;"> | ||
| 69 | - <select onchange="javascript:i3GEO.coordenadas.mudaTipo(this,'localizarxy');" class="i3geoCoordenadasComboTipo"> | ||
| 70 | - <option>DMS:</option> | ||
| 71 | - <option value="janela">janela</option> | ||
| 72 | - <option value="geoProj">DMS</option> | ||
| 73 | - <option value="dd">Dec. de grau</option> | ||
| 74 | - <option value="geohash">GeoHash</option> | ||
| 75 | - <option value="policonicaSad69">Polic SAD-69</option> | ||
| 76 | - <option value="utmSad69Proj">UTM Sad-69</option> | ||
| 77 | - <option value="utmSirgas2000Proj">UTM Sirgas</option> | ||
| 78 | - </select> | ||
| 79 | - </div> | ||
| 80 | - <div class="i3GeoMascaraCoord" id="localizarxygeoProj" style="display: block;position: absolute;top: 0px;left: 60px;"> | ||
| 81 | - X: | ||
| 82 | - <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjxg" type="text"> | ||
| 83 | - <input name="" value="00" size="2" title="minuto" id="localizarxygeoProjxm" type="text"> | ||
| 84 | - <input name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjxs" type="text"> | ||
| 85 | - Y: | ||
| 86 | - <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjyg" type="text"> | ||
| 87 | - <input name="" value="00" size="2" title="minuto" id="localizarxygeoProjym" type="text"> | ||
| 88 | - <input name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjys" type="text"> | ||
| 89 | - <img class="ticfind" style="margin-left:8px;" title="zoom" onclick="i3GEO.coordenadas.zoomPontoGeo()" src="../imagens/branco.gif"> | ||
| 90 | - </div> | ||
| 91 | - <div id="localizarxydd" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;"> | ||
| 92 | - X: <input name="" value="00" size="12" title="X" id="localizarxyddX" type="text"> | ||
| 93 | - Y: <input name="" value="00" size="12" title="Y" id="localizarxyddY" type="text"> | ||
| 94 | - </div> | ||
| 95 | - <div id="localizarxygeohash" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;"> | ||
| 96 | - GeoHash <input name="" value="00" size="12" title="Cod" id="localizarxygeohashCodigo" type="text"> | ||
| 97 | - <img class="ticfind" style="margin-left:8px;" title="zoom" onclick="i3GEO.coordenadas.geohash.zoomCodigo('localizarxygeohashCodigo')" src="../imagens/branco.gif"> | ||
| 98 | - </div> | ||
| 99 | - <div id="localizarxypoliconicaSad69" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;"> | ||
| 100 | - X: <input name="" value="00" size="12" title="X" id="localizarxypoliconicaSad69X" type="text"> | ||
| 101 | - Y: <input name="" value="00" size="12" title="Y" id="localizarxypoliconicaSad69Y" type="text"> | ||
| 102 | - </div> | ||
| 103 | - <div id="localizarxyutmSad69Proj" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;"> | ||
| 104 | - X: <input name="" value="00" size="12" title="X" id="localizarxyutmSad69ProjX" type="text"> | ||
| 105 | - Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSad69ProjY" type="text"> | ||
| 106 | - Zn: <input name="" value="--" size="2" title="Zona" id="localizarxyutmSad69ProjZN" type="text"> | ||
| 107 | - </div> | ||
| 108 | - <div id="localizarxyutmSirgas2000Proj" class="i3GeoMascaraCoord" style="display: none;position: absolute;top: 0px;left: 60px;"> | ||
| 109 | - X: <input name="" value="00" size="12" title="X" id="localizarxyutmSirgas2000ProjX" type="text"> | ||
| 110 | - Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSirgas2000ProjY" type="text"> | ||
| 111 | - Zn: <input name="" value="--" size="2" title="Zona" id="localizarxyutmSirgas2000ProjZN" type="text"> | ||
| 112 | - </div> | ||
| 113 | - </div> | ||
| 114 | - <!-- barra de icones de navegacao --> | ||
| 115 | - <div class="ol-i3GEOcontrols ol-control" data-traduzir="true"> | ||
| 116 | - <button title="{{{d2t}}}" onclick="i3GEO.Interface.zoom2ext(i3GEO.parametros.extentTotal)" style="float: left;"> | ||
| 117 | - <!--<img style="width:20px;" src="../imagens/gisicons/projection.png">--> | ||
| 118 | - <i class="material-icons">public</i> | ||
| 119 | - </button> | ||
| 120 | - <button onclick="i3GEO.Interface.zoomli()" style="float: left;"> | ||
| 121 | - <!--<img style="width:20px;" src="../imagens/gisicons/zoom-region.png">--> | ||
| 122 | - <i class="material-icons">zoom_in</i> | ||
| 123 | - </button> | ||
| 124 | - <br> | ||
| 125 | - <button title="{{{volta}}}" onclick="i3GEO.navega.extensaoAnterior()" style="float: left;"> | ||
| 126 | - <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle1.png">--> | ||
| 127 | - <i class="material-icons">undo</i> | ||
| 128 | - </button> | ||
| 129 | - <button title="{{{avanca}}}" onclick="i3GEO.navega.extensaoProximo()" style="float: left;"> | ||
| 130 | - <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle2.png">--> | ||
| 131 | - <i class="material-icons">redo</i> | ||
| 132 | - </button> | ||
| 133 | - <br> | ||
| 134 | - <button title="{{{graticule}}}" onclick="i3GEO.Interface.grade()" style="float: left;"> | ||
| 135 | - <!--<img style="width:16px;" src="../imagens/gisicons/graticule.png">--> | ||
| 136 | - <i class="material-icons">grid_on</i> | ||
| 137 | - </button> | ||
| 138 | - <button class="hidden-xs hidden-sm" title="{{{x79}}}" data-template="../interface/templates/ferramentasSend.html" onclick="i3GEO.marcador.inicia(this)" style="float: left;"> | ||
| 139 | - <!--<img style="width:20px;" src="../imagens/gisicons/save1.png">--> | ||
| 140 | - <i class="material-icons">bookmark_border</i> | ||
| 141 | - </button> | ||
| 142 | - <br> | ||
| 143 | - <button class="hidden-xs hidden-sm" title="{{{d9}}}" onclick="i3GEO.maparef.inicia()" style="float: left;"> | ||
| 144 | - <!--<img style="width:20px;" src="../imagens/gisicons/map-reference.png">--> | ||
| 145 | - <i class="material-icons">picture_in_picture</i> | ||
| 146 | - </button> | ||
| 147 | - </div> | ||
| 148 | - <!--barra de progresso que e mostrada conforme as camadas sao desenhadas no mapa. Esse elemento deve ter o id="i3GEOprogressoCamadas" --> | ||
| 149 | - <div id="i3GEOprogressoCamadas" class="progress" style="display:block;position:absolute;top:0px; height:5px;width:0%;margin:auto;"> | ||
| 150 | - <div class="progress-bar progress-bar-striped active" role="progressbar" style="width:100%"> | ||
| 151 | - </div> | ||
| 152 | - </div> | ||
| 153 | - <!--barra de aguarde id="i3GEObarraAguarde" --> | ||
| 154 | - <div id="i3GEObarraAguarde" class="progress" style="display:block;position:absolute;top:0px; height:5px;width:0%;margin:auto;"> | ||
| 155 | - <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" style="width:100%"> | ||
| 156 | - </div> | ||
| 157 | - </div> | ||
| 158 | - <!-- mensagem de copyright --> | ||
| 159 | - <div id="i3GEOcopyright">i3Geo</div> | ||
| 160 | - <!-- botoes laterais que abrem guias moveis --> | ||
| 161 | - <div id="i3GEOguiaMovel" > | ||
| 162 | - <!-- configuracao para todos os botoes | 66 | + <!-- aqui sera incluido o gadget que mostra a coordenada geografica da posicao do mouse --> |
| 67 | + <div class="localizarxy fundoRodape hidden-xs hidden-sm"> | ||
| 68 | + <div class="i3GeoMascaraCoord" style="display: block;"> | ||
| 69 | + <select onchange="javascript:i3GEO.coordenadas.mudaTipo(this,'localizarxy');" class="i3geoCoordenadasComboTipo"> | ||
| 70 | + <option>DMS:</option> | ||
| 71 | + <option value="janela">janela</option> | ||
| 72 | + <option value="geoProj">DMS</option> | ||
| 73 | + <option value="dd">Dec. de grau</option> | ||
| 74 | + <option value="geohash">GeoHash</option> | ||
| 75 | + <option value="policonicaSad69">Polic SAD-69</option> | ||
| 76 | + <option value="utmSad69Proj">UTM Sad-69</option> | ||
| 77 | + <option value="utmSirgas2000Proj">UTM Sirgas</option> | ||
| 78 | + </select> | ||
| 79 | + </div> | ||
| 80 | + <div class="i3GeoMascaraCoord" id="localizarxygeoProj" style="display: block; position: absolute; top: 0px; left: 60px;"> | ||
| 81 | + X: <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjxg" type="text"> <input name="" value="00" size="2" title="minuto" id="localizarxygeoProjxm" type="text"> <input | ||
| 82 | + name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjxs" type="text"> Y: <input name="" value="-00" size="3" title="grau" id="localizarxygeoProjyg" type="text"> <input | ||
| 83 | + name="" value="00" size="2" title="minuto" id="localizarxygeoProjym" type="text"> <input name="" value="00.00" size="5" title="segundo" id="localizarxygeoProjys" type="text"> <img | ||
| 84 | + class="ticfind" style="margin-left: 8px;" title="zoom" onclick="i3GEO.coordenadas.zoomPontoGeo()" src="../imagens/branco.gif"> | ||
| 85 | + </div> | ||
| 86 | + <div id="localizarxydd" class="i3GeoMascaraCoord" style="display: none; position: absolute; top: 0px; left: 60px;"> | ||
| 87 | + X: <input name="" value="00" size="12" title="X" id="localizarxyddX" type="text"> Y: <input name="" value="00" size="12" title="Y" id="localizarxyddY" type="text"> | ||
| 88 | + </div> | ||
| 89 | + <div id="localizarxygeohash" class="i3GeoMascaraCoord" style="display: none; position: absolute; top: 0px; left: 60px;"> | ||
| 90 | + GeoHash <input name="" value="00" size="12" title="Cod" id="localizarxygeohashCodigo" type="text"> <img class="ticfind" style="margin-left: 8px;" title="zoom" | ||
| 91 | + onclick="i3GEO.coordenadas.geohash.zoomCodigo('localizarxygeohashCodigo')" src="../imagens/branco.gif"> | ||
| 92 | + </div> | ||
| 93 | + <div id="localizarxypoliconicaSad69" class="i3GeoMascaraCoord" style="display: none; position: absolute; top: 0px; left: 60px;"> | ||
| 94 | + X: <input name="" value="00" size="12" title="X" id="localizarxypoliconicaSad69X" type="text"> Y: <input name="" value="00" size="12" title="Y" id="localizarxypoliconicaSad69Y" type="text"> | ||
| 95 | + </div> | ||
| 96 | + <div id="localizarxyutmSad69Proj" class="i3GeoMascaraCoord" style="display: none; position: absolute; top: 0px; left: 60px;"> | ||
| 97 | + X: <input name="" value="00" size="12" title="X" id="localizarxyutmSad69ProjX" type="text"> Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSad69ProjY" type="text"> Zn: | ||
| 98 | + <input name="" value="--" size="2" title="Zona" id="localizarxyutmSad69ProjZN" type="text"> | ||
| 99 | + </div> | ||
| 100 | + <div id="localizarxyutmSirgas2000Proj" class="i3GeoMascaraCoord" style="display: none; position: absolute; top: 0px; left: 60px;"> | ||
| 101 | + X: <input name="" value="00" size="12" title="X" id="localizarxyutmSirgas2000ProjX" type="text"> Y: <input name="" value="00" size="12" title="Y" id="localizarxyutmSirgas2000ProjY" | ||
| 102 | + type="text"> Zn: <input name="" value="--" size="2" title="Zona" id="localizarxyutmSirgas2000ProjZN" type="text"> | ||
| 103 | + </div> | ||
| 104 | + </div> | ||
| 105 | + <!-- barra de icones de navegacao --> | ||
| 106 | + <div class="ol-i3GEOcontrols ol-control" data-traduzir="true"> | ||
| 107 | + <button title="{{{d2t}}}" onclick="i3GEO.Interface.zoom2ext(i3GEO.parametros.extentTotal)" style="float: left;"> | ||
| 108 | + <!--<img style="width:20px;" src="../imagens/gisicons/projection.png">--> | ||
| 109 | + <i class="material-icons">public</i> | ||
| 110 | + </button> | ||
| 111 | + <button onclick="i3GEO.Interface.zoomli()" style="float: left;"> | ||
| 112 | + <!--<img style="width:20px;" src="../imagens/gisicons/zoom-region.png">--> | ||
| 113 | + <i class="material-icons">zoom_in</i> | ||
| 114 | + </button> | ||
| 115 | + <br> | ||
| 116 | + <button title="{{{volta}}}" onclick="i3GEO.navega.extensaoAnterior()" style="float: left;"> | ||
| 117 | + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle1.png">--> | ||
| 118 | + <i class="material-icons">undo</i> | ||
| 119 | + </button> | ||
| 120 | + <button title="{{{avanca}}}" onclick="i3GEO.navega.extensaoProximo()" style="float: left;"> | ||
| 121 | + <!--<img style="width:16px;" src="../imagens/oxygen/16x16/draw-triangle2.png">--> | ||
| 122 | + <i class="material-icons">redo</i> | ||
| 123 | + </button> | ||
| 124 | + <br> | ||
| 125 | + <button title="{{{graticule}}}" onclick="i3GEO.Interface.grade()" style="float: left;"> | ||
| 126 | + <!--<img style="width:16px;" src="../imagens/gisicons/graticule.png">--> | ||
| 127 | + <i class="material-icons">grid_on</i> | ||
| 128 | + </button> | ||
| 129 | + <button class="hidden-xs hidden-sm" title="{{{x79}}}" data-template="../interface/templates/ferramentasSend.html" onclick="i3GEO.marcador.inicia(this)" style="float: left;"> | ||
| 130 | + <!--<img style="width:20px;" src="../imagens/gisicons/save1.png">--> | ||
| 131 | + <i class="material-icons">bookmark_border</i> | ||
| 132 | + </button> | ||
| 133 | + <br> | ||
| 134 | + <button class="hidden-xs hidden-sm" title="{{{d9}}}" onclick="i3GEO.maparef.inicia()" style="float: left;"> | ||
| 135 | + <!--<img style="width:20px;" src="../imagens/gisicons/map-reference.png">--> | ||
| 136 | + <i class="material-icons">picture_in_picture</i> | ||
| 137 | + </button> | ||
| 138 | + </div> | ||
| 139 | + <!--barra de progresso que e mostrada conforme as camadas sao desenhadas no mapa. Esse elemento deve ter o id="i3GEOprogressoCamadas" --> | ||
| 140 | + <div id="i3GEOprogressoCamadas" class="progress" style="display: block; position: absolute; top: 0px; height: 5px; width: 0%; margin: auto;"> | ||
| 141 | + <div class="progress-bar progress-bar-striped active" role="progressbar" style="width: 100%"></div> | ||
| 142 | + </div> | ||
| 143 | + <!--barra de aguarde id="i3GEObarraAguarde" --> | ||
| 144 | + <div id="i3GEObarraAguarde" class="progress" style="display: block; position: absolute; top: 0px; height: 5px; width: 0%; margin: auto;"> | ||
| 145 | + <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" style="width: 100%"></div> | ||
| 146 | + </div> | ||
| 147 | + <!-- mensagem de copyright --> | ||
| 148 | + <div id="i3GEOcopyright">i3Geo</div> | ||
| 149 | + <!-- botoes laterais que abrem guias moveis --> | ||
| 150 | + <div id="i3GEOguiaMovel"> | ||
| 151 | + <!-- configuracao para todos os botoes | ||
| 163 | data-idconteudo - id do DIV que contem o conteudo da guia e que sera mostrado ao ser clicado | 152 | data-idconteudo - id do DIV que contem o conteudo da guia e que sera mostrado ao ser clicado |
| 164 | --> | 153 | --> |
| 165 | - <div class="iconesGuiaMovel ol-control" data-traduzir="true"> | ||
| 166 | - <!-- ferramentas | 154 | + <div class="iconesGuiaMovel ol-control" data-traduzir="true"> |
| 155 | + <!-- ferramentas | ||
| 167 | data-idLista - id do DIV dentro de idconteudo que sera utilizado para mostrar as "pastas" que abrem o proximo nivel | 156 | data-idLista - id do DIV dentro de idconteudo que sera utilizado para mostrar as "pastas" que abrem o proximo nivel |
| 168 | data-idLinks - id do DIV dentro de idconteudo que sera utilizado para mostrar a lista de links que abre cada ferramenta | 157 | data-idLinks - id do DIV dentro de idconteudo que sera utilizado para mostrar a lista de links que abre cada ferramenta |
| 169 | data-idMigalha - id do DIV que sera utilizado para mostrar o link de retorno ao nivel anterior | 158 | data-idMigalha - id do DIV que sera utilizado para mostrar o link de retorno ao nivel anterior |
| 170 | --> | 159 | --> |
| 171 | - <div data-idconteudo="guia8obj" data-idLinks="listaFerramentasLinks" data-idMigalha="migalhaFerramentas" data-idLista="listaFerramentas" onclick="i3GEO.guias.ativa('ferramentas',this)"> | ||
| 172 | - <button title="{{{iconeFerramentas}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 173 | - <i class="material-icons">business_center</i> | ||
| 174 | - </button> | ||
| 175 | - </div> | ||
| 176 | - <!-- temas existentes no mapa | 160 | + <div data-idconteudo="guia8obj" data-idLinks="listaFerramentasLinks" data-idMigalha="migalhaFerramentas" data-idLista="listaFerramentas" onclick="i3GEO.guias.ativa('ferramentas',this)"> |
| 161 | + <button title="{{{iconeFerramentas}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 162 | + <i class="material-icons">business_center</i> | ||
| 163 | + </button> | ||
| 164 | + </div> | ||
| 165 | + <!-- temas existentes no mapa | ||
| 177 | data-idListaDeCamadas - id onde sera incluida a lista de camadas | 166 | data-idListaDeCamadas - id onde sera incluida a lista de camadas |
| 178 | data-idListaFundo - id onde sera incluida a lista de camadas de fundo (mapa base) | 167 | data-idListaFundo - id onde sera incluida a lista de camadas de fundo (mapa base) |
| 179 | data-verificaAbrangencia - se for uma string, faz a verificacao se a camada esta fora da abrangencia atual do mapa, | 168 | data-verificaAbrangencia - se for uma string, faz a verificacao se a camada esta fora da abrangencia atual do mapa, |
| 180 | inserindo ou nao a string como uma classe CSS. Pode degradar a performance e depende | 169 | inserindo ou nao a string como uma classe CSS. Pode degradar a performance e depende |
| 181 | do metadata existente na camada. Deixe vazio para nao ativar a operacao. | 170 | do metadata existente na camada. Deixe vazio para nao ativar a operacao. |
| 182 | --> | 171 | --> |
| 183 | - <div onclick="i3GEO.guias.ativa('temas',this)" data-verificaAbrangencia="" data-idconteudo="guia1obj" data-idListaFundo="listaFundo" data-idListaDeCamadas="listaTemas" style="margin-top: 3px;"> | ||
| 184 | - <button title="{{{iconeMapa}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 185 | - <i class="material-icons"><i class="material-icons">visibility</i></i> | ||
| 186 | - </button> | ||
| 187 | - </div> | ||
| 188 | - <!-- catalogo de adicao de temas ao mapa | 172 | + <div onclick="i3GEO.guias.ativa('temas',this)" data-verificaAbrangencia="" data-idconteudo="guia1obj" data-idListaFundo="listaFundo" data-idListaDeCamadas="listaTemas" |
| 173 | + style="margin-top: 3px;"> | ||
| 174 | + <button title="{{{iconeMapa}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 175 | + <i class="material-icons"><i class="material-icons">visibility</i></i> | ||
| 176 | + </button> | ||
| 177 | + </div> | ||
| 178 | + <!-- catalogo de adicao de temas ao mapa | ||
| 189 | data-idCatalogo - id do DIV que contem a primeira pagina do catalogo. Esse DIV sera escondido e mostrado conforme o usuario navega pelo catalogo | 179 | data-idCatalogo - id do DIV que contem a primeira pagina do catalogo. Esse DIV sera escondido e mostrado conforme o usuario navega pelo catalogo |
| 190 | data-idMenus - id do DIV que recebera a lista de menus cadastrados no sistema de administracao | 180 | data-idMenus - id do DIV que recebera a lista de menus cadastrados no sistema de administracao |
| 191 | data-idNavegacao - id do DIV que recebera a lista de opcoes apos o usuario clicar em um item do catalogo principal | 181 | data-idNavegacao - id do DIV que recebera a lista de opcoes apos o usuario clicar em um item do catalogo principal |
| @@ -194,140 +184,170 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -194,140 +184,170 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 194 | Variaveis javascript: | 184 | Variaveis javascript: |
| 195 | i3GEO.catalogoMenus.IDSMENUS - (array) apenas os menus com idmenu que constem nessa lista serao mostrados. Por default e vazio. | 185 | i3GEO.catalogoMenus.IDSMENUS - (array) apenas os menus com idmenu que constem nessa lista serao mostrados. Por default e vazio. |
| 196 | --> | 186 | --> |
| 197 | - <div onclick="i3GEO.guias.ativa('adiciona',this)" data-idconteudo="guia2obj" data-idMigalha="catalogoMigalha" data-idNavegacao="catalogoNavegacao" data-idCatalogo="catalogoPrincipal" data-idMenus="catalogoMenus" style="margin-top: 3px;"> | ||
| 198 | - <button title="{{{iconeCatalogo}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 199 | - <i class="material-icons">layers</i> | ||
| 200 | - </button> | ||
| 201 | - </div> | ||
| 202 | - <!-- legenda --> | ||
| 203 | - <div onclick="i3GEO.guias.ativa('legenda',this)" data-idconteudo="guia4obj" data-idLegenda="legendaHtml" style="margin-top: 3px;"> | ||
| 204 | - <button title="{{{iconeLegenda}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 205 | - <i class="material-icons">view_list</i> | ||
| 206 | - </button> | ||
| 207 | - </div> | ||
| 208 | - <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('dobraPagina',this)" style="margin-top: 3px;"> | ||
| 209 | - <button title="{{{trocaInterface}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 210 | - <i class="material-icons">compare_arrows</i> | ||
| 211 | - </button> | ||
| 212 | - </div> | ||
| 213 | - <!-- Busca --> | ||
| 214 | - <div onclick="i3GEO.guias.ativa('buscaRapida',this)" data-idconteudo="guia7obj" style="margin-top: 3px;"> | ||
| 215 | - <button class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 216 | - <i class="material-icons">search</i> | ||
| 217 | - </button> | ||
| 218 | - </div> | ||
| 219 | - <div onclick="i3GEO.guias.ativa('identificaBalao',this)" style="margin-top: 3px;" > | ||
| 220 | - <button title="{{{iconeBalao}}}" class="iconeGuiaMovel" style="color:white;box-shadow: none;"> | ||
| 221 | - <i class="material-icons">location_on</i> | ||
| 222 | - </button> | ||
| 223 | - </div> | ||
| 224 | - <!-- A opcao de identificacao esta integrada ao balao de informacoes, mas pode aparecer aqui tambem | 187 | + <div onclick="i3GEO.guias.ativa('adiciona',this)" data-idconteudo="guia2obj" data-idMigalha="catalogoMigalha" data-idNavegacao="catalogoNavegacao" data-idCatalogo="catalogoPrincipal" |
| 188 | + data-idMenus="catalogoMenus" style="margin-top: 3px;"> | ||
| 189 | + <button title="{{{iconeCatalogo}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 190 | + <i class="material-icons">layers</i> | ||
| 191 | + </button> | ||
| 192 | + </div> | ||
| 193 | + <!-- legenda --> | ||
| 194 | + <div onclick="i3GEO.guias.ativa('legenda',this)" data-idconteudo="guia4obj" data-idLegenda="legendaHtml" style="margin-top: 3px;"> | ||
| 195 | + <button title="{{{iconeLegenda}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 196 | + <i class="material-icons">view_list</i> | ||
| 197 | + </button> | ||
| 198 | + </div> | ||
| 199 | + <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('dobraPagina',this)" style="margin-top: 3px;"> | ||
| 200 | + <button title="{{{trocaInterface}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 201 | + <i class="material-icons">compare_arrows</i> | ||
| 202 | + </button> | ||
| 203 | + </div> | ||
| 204 | + <!-- Busca --> | ||
| 205 | + <div onclick="i3GEO.guias.ativa('buscaRapida',this)" data-idconteudo="guia7obj" style="margin-top: 3px;"> | ||
| 206 | + <button class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 207 | + <i class="material-icons">search</i> | ||
| 208 | + </button> | ||
| 209 | + </div> | ||
| 210 | + <div onclick="i3GEO.guias.ativa('identificaBalao',this)" style="margin-top: 3px;"> | ||
| 211 | + <button title="{{{iconeBalao}}}" class="iconeGuiaMovel" style="color: white; box-shadow: none;"> | ||
| 212 | + <i class="material-icons">location_on</i> | ||
| 213 | + </button> | ||
| 214 | + </div> | ||
| 215 | + <!-- A opcao de identificacao esta integrada ao balao de informacoes, mas pode aparecer aqui tambem | ||
| 225 | <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('identifica',this)" style="margin-top: 3px;"> | 216 | <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('identifica',this)" style="margin-top: 3px;"> |
| 226 | <button title="{{{iconeIdentifica}}}" class="iconeGuiaMovel" style="box-shadow: none;"> | 217 | <button title="{{{iconeIdentifica}}}" class="iconeGuiaMovel" style="box-shadow: none;"> |
| 227 | <img src="../imagens/gisicons/pointer-info.png" style="cursor: pointer; padding: 3px;"> | 218 | <img src="../imagens/gisicons/pointer-info.png" style="cursor: pointer; padding: 3px;"> |
| 228 | </button> | 219 | </button> |
| 229 | </div> | 220 | </div> |
| 230 | --> | 221 | --> |
| 231 | - </div> | ||
| 232 | - <!-- veja i3GEO.guias.CONFIGURA --> | ||
| 233 | - <!-- Os IDs sao definidos no botao que ativa a guia veja: "i3GEOguiaMovel" --> | ||
| 234 | - <!-- se height nao estiver definido sera utilizada a altura do mapa --> | ||
| 235 | - <div id="i3GEOguiaMovelMolde" > | ||
| 236 | - <div id="i3GEOguiaMovelConteudo" > | ||
| 237 | - <!-- camadas existentes no mapa --> | ||
| 238 | - <div id='guia1obj' data-traduzir="true" style='display: none;'> | ||
| 239 | - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"> | ||
| 240 | - <span class="pull-left">{{{iconeMapa}}}</span>X</div> | ||
| 241 | - <div class="separadorCabecalhoGuias"> </div> | ||
| 242 | - <div class="list-group condensed noprint" > | ||
| 243 | - <label>{{{opcoes}}}</label> | ||
| 244 | - <a data-target="#opcoesGuia1" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" > | ||
| 245 | - <span class="caret"></span> | ||
| 246 | - </a> | ||
| 247 | - <div class="text-left collapse" id="opcoesGuia1" style="margin-left: 30px;"> | ||
| 248 | - <p><a onclick="i3GEO.arvoreDeCamadas.atualiza(i3GEO.arvoreDeCamadas.CAMADAS,true)" href="javascript:void(0)" >Refresh</a></p> | ||
| 249 | - <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('ligartodos')" href="javascript:void(0)" >{{{t3a}}}</a></p> | ||
| 250 | - <p><a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('desligartodos')" href="javascript:void(0)" >{{{t3b}}}</a></p> | ||
| 251 | - <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.excluir()" href="javascript:void(0)" >{{{t12}}}</a></p> | ||
| 252 | - <p><a onclick="i3GEO.arvoreDeCamadas.dialogo.filtro()" href="javascript:void(0)" >{{{t2a}}}</a></p> | ||
| 253 | - <p><a onclick="i3GEO.mapa.dialogo.opacidade()" href="javascript:void(0)" >{{{t20}}}</a></p> | ||
| 254 | - <p><a onclick="i3GEO.mapa.dialogo.animacao()" href="javascript:void(0)" >{{{p21}}}</a></p> | ||
| 255 | - <p><a onclick="i3GEO.mapa.dialogo.imprimir()" href="javascript:void(0)" >{{{d12}}}</a></p> | ||
| 256 | - <p><a onclick="i3GEO.mapa.limpasel()" href="javascript:void(0)" >{{{t4}}}</a></p> | ||
| 257 | - </div> | ||
| 258 | - </div> | ||
| 259 | - <hr> | ||
| 260 | - <!-- Esta div acrescenta a lista de de camadas disponíveis no mapa atual --> | ||
| 261 | - <div id="listaTemas" style="overflow:none;" data-template="../interface/templates/camada.html"></div> | ||
| 262 | - <!-- Esta div acrescenta a lista de de camadas de fundo | 222 | + </div> |
| 223 | + <!-- veja i3GEO.guias.CONFIGURA --> | ||
| 224 | + <!-- Os IDs sao definidos no botao que ativa a guia veja: "i3GEOguiaMovel" --> | ||
| 225 | + <!-- se height nao estiver definido sera utilizada a altura do mapa --> | ||
| 226 | + <div id="i3GEOguiaMovelMolde"> | ||
| 227 | + <div id="i3GEOguiaMovelConteudo"> | ||
| 228 | + <!-- camadas existentes no mapa --> | ||
| 229 | + <div id='guia1obj' data-traduzir="true" style='display: none;'> | ||
| 230 | + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"> | ||
| 231 | + <button> | ||
| 232 | + <span class="pull-left">{{{iconeMapa}}}</span> | ||
| 233 | + <span class="pull-right material-icons">cancel</span> | ||
| 234 | + </button> | ||
| 235 | + </div> | ||
| 236 | + <div class="separadorCabecalhoGuias"> </div> | ||
| 237 | + <div class="list-group condensed noprint"> | ||
| 238 | + <label>{{{opcoes}}}</label> | ||
| 239 | + <a data-target="#opcoesGuia1" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px; padding-top: 0px; padding-bottom: 0px;" type="button" data-toggle="collapse"> | ||
| 240 | + <span class="caret"></span> | ||
| 241 | + </a> | ||
| 242 | + <div class="text-left collapse" id="opcoesGuia1" style="margin-left: 30px;"> | ||
| 243 | + <p> | ||
| 244 | + <a onclick="i3GEO.arvoreDeCamadas.atualiza(i3GEO.arvoreDeCamadas.CAMADAS,true)" href="javascript:void(0)">Refresh</a> | ||
| 245 | + </p> | ||
| 246 | + <p> | ||
| 247 | + <a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('ligartodos')" href="javascript:void(0)">{{{t3a}}}</a> | ||
| 248 | + </p> | ||
| 249 | + <p> | ||
| 250 | + <a onclick="i3GEO.arvoreDeCamadas.aplicaTemas('desligartodos')" href="javascript:void(0)">{{{t3b}}}</a> | ||
| 251 | + </p> | ||
| 252 | + <p> | ||
| 253 | + <a onclick="i3GEO.arvoreDeCamadas.dialogo.excluir()" href="javascript:void(0)">{{{t12}}}</a> | ||
| 254 | + </p> | ||
| 255 | + <p> | ||
| 256 | + <a onclick="i3GEO.arvoreDeCamadas.dialogo.filtro()" href="javascript:void(0)">{{{t2a}}}</a> | ||
| 257 | + </p> | ||
| 258 | + <p> | ||
| 259 | + <a onclick="i3GEO.mapa.dialogo.opacidade()" href="javascript:void(0)">{{{t20}}}</a> | ||
| 260 | + </p> | ||
| 261 | + <p> | ||
| 262 | + <a onclick="i3GEO.mapa.dialogo.animacao()" href="javascript:void(0)">{{{p21}}}</a> | ||
| 263 | + </p> | ||
| 264 | + <p> | ||
| 265 | + <a onclick="i3GEO.mapa.dialogo.imprimir()" href="javascript:void(0)">{{{d12}}}</a> | ||
| 266 | + </p> | ||
| 267 | + <p> | ||
| 268 | + <a onclick="i3GEO.mapa.limpasel()" href="javascript:void(0)">{{{t4}}}</a> | ||
| 269 | + </p> | ||
| 270 | + </div> | ||
| 271 | + </div> | ||
| 272 | + <hr> | ||
| 273 | + <!-- Esta div acrescenta a lista de de camadas disponíveis no mapa atual --> | ||
| 274 | + <div id="listaTemas" style="overflow: none;" data-template="../interface/templates/camada.html"></div> | ||
| 275 | + <!-- Esta div acrescenta a lista de de camadas de fundo | ||
| 263 | A lista de camadas de fundo e obtida da variavel i3GEO.Interface.openlayers.LAYERSADICIONAIS | 276 | A lista de camadas de fundo e obtida da variavel i3GEO.Interface.openlayers.LAYERSADICIONAIS |
| 264 | Essa variavel e definida via javascript, e no caso das interfaces padrao do i3Geo, e definida | 277 | Essa variavel e definida via javascript, e no caso das interfaces padrao do i3Geo, e definida |
| 265 | no programa interface/config.php | 278 | no programa interface/config.php |
| 266 | --> | 279 | --> |
| 267 | - <div class="list-group condensed"> | ||
| 268 | - <label>{{{camadasDeFundo}}}</label> | ||
| 269 | - <a data-target="#collapseFundo" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" > | ||
| 270 | - <span class="caret"></span> | ||
| 271 | - </a> | ||
| 272 | - <div style="margin-left:0px;" class="collapse text-left" id="collapseFundo"> | ||
| 273 | - <form> | ||
| 274 | - <div id="listaFundo" class="form-group" data-template="../interface/templates/camadaFundo.html"></div> | ||
| 275 | - </form> | ||
| 276 | - </div> | ||
| 277 | - </div> | ||
| 278 | - </div> | ||
| 279 | - <!-- Catalogo de temas --> | ||
| 280 | - <div id='guia2obj' data-traduzir="true" style='display: none; text-align:left;'> | ||
| 281 | - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');i3GEO.catalogoMenus.mostraCatalogoPrincipal();"><span class="pull-left">{{{iconeCatalogo}}}</span> X</div> | ||
| 282 | - <div class="separadorCabecalhoGuias"> </div> | ||
| 283 | - <!-- aqui entra a lista de elementos quando uma das opcoes e clicada --> | ||
| 284 | - <div id="catalogoMigalha" data-template="../interface/templates/catalogoMigalha.html"></div> | ||
| 285 | - <div id="catalogoNavegacao"></div> | ||
| 286 | - <!-- Opcoes --> | ||
| 287 | - <div id="catalogoPrincipal"> | ||
| 288 | - <div class="list-group condensed noprint" > | ||
| 289 | - <label>{{{opcoes}}}</label> | ||
| 290 | - <a data-target="#opcoesGuia2" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px;padding-top: 0px;padding-bottom: 0px;" type="button" data-toggle="collapse" > | ||
| 291 | - <span class="caret"></span> | ||
| 292 | - </a> | ||
| 293 | - <div class="text-left collapse" id="opcoesGuia2" style="margin-left: 30px;"> | ||
| 294 | - <p> | ||
| 295 | - <a href="javascript:void(0)" onclick="i3GEO.login.dialogo.abreLogin()">Login/Logout</a> | ||
| 296 | - </p> | ||
| 297 | - <p> | ||
| 298 | - <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.atualiza()">Refresh</a> --> | ||
| 299 | - </p> | ||
| 300 | - <li class="divider"></p> | ||
| 301 | - <p> | ||
| 302 | - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.conectaservico()" >{{{a15}}}</a> | ||
| 303 | - </p> | ||
| 304 | - <p> | ||
| 305 | - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.uploadarquivo()">{{{a14}}}</a> | ||
| 306 | - </p> | ||
| 307 | - <p> | ||
| 308 | - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.downloadbase()">{{{a3}}}</a> | ||
| 309 | - </p> | ||
| 310 | - <p> | ||
| 311 | - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.importarwmc()">{{{a3a}}}</a> | ||
| 312 | - </p> | ||
| 313 | - <p> | ||
| 314 | - <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.nuvemTags()">{{{a5a}}}</a> --> | ||
| 315 | - </p> | ||
| 316 | - <p> | ||
| 317 | - <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.carouselTemas()">Miniaturas</a> --> | ||
| 318 | - </p> | ||
| 319 | - <p> | ||
| 320 | - <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.buscaInde()">Busca na INDE</a> | ||
| 321 | - </p> | ||
| 322 | - <p> | ||
| 323 | - <a href="javascript:void(0)" onclick="i3GEO.mapa.dialogo.metaestat()">Cartogramas estatisticos</a> | ||
| 324 | - </p> | ||
| 325 | - <p><a href="http://localhost/i3geo/kml.php?tipoxml=kml" target="_blank">{{{a13}}}</a> | ||
| 326 | - </p> | ||
| 327 | - </div> | ||
| 328 | - </div> | ||
| 329 | - <hr> | ||
| 330 | - <!-- busca tema no catalogo | 280 | + <div class="list-group condensed"> |
| 281 | + <label>{{{camadasDeFundo}}}</label> | ||
| 282 | + <a data-target="#collapseFundo" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px; padding-top: 0px; padding-bottom: 0px;" type="button" data-toggle="collapse"> | ||
| 283 | + <span class="caret"></span> | ||
| 284 | + </a> | ||
| 285 | + <div style="margin-left: 0px;" class="collapse text-left" id="collapseFundo"> | ||
| 286 | + <form> | ||
| 287 | + <div id="listaFundo" class="form-group" data-template="../interface/templates/camadaFundo.html"></div> | ||
| 288 | + </form> | ||
| 289 | + </div> | ||
| 290 | + </div> | ||
| 291 | + </div> | ||
| 292 | + <!-- Catalogo de temas --> | ||
| 293 | + <div id='guia2obj' data-traduzir="true" style='display: none; text-align: left;'> | ||
| 294 | + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');i3GEO.catalogoMenus.mostraCatalogoPrincipal();"> | ||
| 295 | + <button> | ||
| 296 | + <span class="pull-left">{{{iconeCatalogo}}}</span> | ||
| 297 | + <span class="pull-right material-icons">cancel</span> | ||
| 298 | + </button> | ||
| 299 | + </div> | ||
| 300 | + <div class="separadorCabecalhoGuias"> </div> | ||
| 301 | + <!-- aqui entra a lista de elementos quando uma das opcoes e clicada --> | ||
| 302 | + <div id="catalogoMigalha" data-template="../interface/templates/catalogoMigalha.html"></div> | ||
| 303 | + <div id="catalogoNavegacao"></div> | ||
| 304 | + <!-- Opcoes --> | ||
| 305 | + <div id="catalogoPrincipal"> | ||
| 306 | + <div class="list-group condensed noprint"> | ||
| 307 | + <label>{{{opcoes}}}</label> | ||
| 308 | + <a data-target="#opcoesGuia2" class="btn btn-sm btn-primary pull-right" style="margin-top: 0px; padding-top: 0px; padding-bottom: 0px;" type="button" data-toggle="collapse"> | ||
| 309 | + <span class="caret"></span> | ||
| 310 | + </a> | ||
| 311 | + <div class="text-left collapse" id="opcoesGuia2" style="margin-left: 30px;"> | ||
| 312 | + <p> | ||
| 313 | + <a href="javascript:void(0)" onclick="i3GEO.login.dialogo.abreLogin()">Login/Logout</a> | ||
| 314 | + </p> | ||
| 315 | + <p> | ||
| 316 | + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.atualiza()">Refresh</a> --> | ||
| 317 | + </p> | ||
| 318 | + <li class="divider"></p> | ||
| 319 | + <p> | ||
| 320 | + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.conectaservico()">{{{a15}}}</a> | ||
| 321 | + </p> | ||
| 322 | + <p> | ||
| 323 | + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.uploadarquivo()">{{{a14}}}</a> | ||
| 324 | + </p> | ||
| 325 | + <p> | ||
| 326 | + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.downloadbase()">{{{a3}}}</a> | ||
| 327 | + </p> | ||
| 328 | + <p> | ||
| 329 | + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.importarwmc()">{{{a3a}}}</a> | ||
| 330 | + </p> | ||
| 331 | + <p> | ||
| 332 | + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.nuvemTags()">{{{a5a}}}</a> --> | ||
| 333 | + </p> | ||
| 334 | + <p> | ||
| 335 | + <!-- <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.carouselTemas()">Miniaturas</a> --> | ||
| 336 | + </p> | ||
| 337 | + <p> | ||
| 338 | + <a href="javascript:void(0)" onclick="i3GEO.arvoreDeTemas.dialogo.buscaInde()">Busca na INDE</a> | ||
| 339 | + </p> | ||
| 340 | + <p> | ||
| 341 | + <a href="javascript:void(0)" onclick="i3GEO.mapa.dialogo.metaestat()">Cartogramas estatisticos</a> | ||
| 342 | + </p> | ||
| 343 | + <p> | ||
| 344 | + <a href="http://localhost/i3geo/kml.php?tipoxml=kml" target="_blank">{{{a13}}}</a> | ||
| 345 | + </p> | ||
| 346 | + | ||
| 347 | + </div> | ||
| 348 | + </div> | ||
| 349 | + <hr> | ||
| 350 | + <!-- busca tema no catalogo | ||
| 331 | <div class="form-group label-floating"> | 351 | <div class="form-group label-floating"> |
| 332 | <label class="control-label" for="i3GEObuscatema">{{{a1}}}</label> | 352 | <label class="control-label" for="i3GEObuscatema">{{{a1}}}</label> |
| 333 | <div class="input-group"> | 353 | <div class="input-group"> |
| @@ -340,18 +360,18 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -340,18 +360,18 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 340 | </div> | 360 | </div> |
| 341 | </div> | 361 | </div> |
| 342 | --> | 362 | --> |
| 343 | - <!-- A lista de menus e uma funcao de i3GEO.guias.CONFIGURA.adiciona | 363 | + <!-- A lista de menus e uma funcao de i3GEO.guias.CONFIGURA.adiciona |
| 344 | Nessa funcao ficam tambem os parametros: | 364 | Nessa funcao ficam tambem os parametros: |
| 345 | "idOndeMenus": "catalogoMenus", | 365 | "idOndeMenus": "catalogoMenus", |
| 346 | "idCatalogoPrincipal": "catalogoPrincipal", | 366 | "idCatalogoPrincipal": "catalogoPrincipal", |
| 347 | "idCatalogoNavegacao": "catalogoNavegacao", | 367 | "idCatalogoNavegacao": "catalogoNavegacao", |
| 348 | "idOndeMigalha": "catalogoMigalha" | 368 | "idOndeMigalha": "catalogoMigalha" |
| 349 | --> | 369 | --> |
| 350 | - <div id="catalogoMenus" data-templateDir="../interface/templates/dir.html" data-templateTema="../interface/templates/tema.html"></div> | 370 | + <div id="catalogoMenus" data-templateDir="../interface/templates/dir.html" data-templateTema="../interface/templates/tema.html"></div> |
| 351 | 371 | ||
| 352 | - <div id="arvoreAdicionaTema"></div> | 372 | + <div id="arvoreAdicionaTema"></div> |
| 353 | 373 | ||
| 354 | - <!-- | 374 | + <!-- |
| 355 | As funcoes de inicializacao recebem um objeto com parametros. Que por padrao sao: | 375 | As funcoes de inicializacao recebem um objeto com parametros. Que por padrao sao: |
| 356 | config: { | 376 | config: { |
| 357 | 'templateDir': '../interface/templates/dir.html', | 377 | 'templateDir': '../interface/templates/dir.html', |
| @@ -366,43 +386,63 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -366,43 +386,63 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 366 | onclick="i3GEO.catalogoInde.inicia({'templateDir': '../interface/templates/dir.html','templateTema': '../interface/templates/tema.html','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" | 386 | onclick="i3GEO.catalogoInde.inicia({'templateDir': '../interface/templates/dir.html','templateTema': '../interface/templates/tema.html','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" |
| 367 | --> | 387 | --> |
| 368 | 388 | ||
| 369 | - <!-- servicos da INDE brasileira --> | ||
| 370 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 371 | - <a onclick="i3GEO.catalogoInde.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 372 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 373 | - <a onclick="i3GEO.catalogoInde.inicia()" role="button" href="javascript:void(0)"> | ||
| 374 | - <h4>INDE-Br</h4></a> | ||
| 375 | - <h6>Infraestrutura Nacional de Dados Espaciais do Brasil</h6> | ||
| 376 | - </label> | ||
| 377 | - </div></div><hr> | ||
| 378 | - <!-- lista de wms cadastrados no sistema de administracao --> | ||
| 379 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 380 | - <a onclick="i3GEO.catalogoOgc.inicia();return false;" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 381 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 382 | - <a onclick="i3GEO.catalogoOgc.inicia()" role="button" href="javascript:void(0)"> | ||
| 383 | - <h4>OGC-WMS</h4></a> | ||
| 384 | - <h6>{{{descOgcWms}}}</h6> | ||
| 385 | - </label> | ||
| 386 | - </div></div><hr> | ||
| 387 | - <!-- regioes cadastradas no sistema de metadados --> | ||
| 388 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 389 | - <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 390 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 391 | - <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" href="javascript:void(0)"> | ||
| 392 | - <h4>{{{x87}}}</h4></a> | ||
| 393 | - <h6>{{{descLimLoc}}}</h6> | ||
| 394 | - </label> | ||
| 395 | - </div></div><hr> | ||
| 396 | - <!-- camadas que vem do sistema de metadados estatisticos --> | ||
| 397 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 398 | - <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 399 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 400 | - <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" href="javascript:void(0)"> | ||
| 401 | - <h4>{{{x57}}}</h4></a> | ||
| 402 | - <h6>{{{descMeta}}}</h6> | ||
| 403 | - </label> | ||
| 404 | - </div></div><hr> | ||
| 405 | - <!-- mapas cadastrados no sistema de administracao (nao funcional) | 389 | + <!-- servicos da INDE brasileira --> |
| 390 | + <div class="list-group condensed"> | ||
| 391 | + <div class="row-content text-left"> | ||
| 392 | + <a onclick="i3GEO.catalogoInde.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 393 | + <span class="material-icons ">folder_open</span> | ||
| 394 | + </a> | ||
| 395 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoInde.inicia()" role="button" href="javascript:void(0)"> | ||
| 396 | + <h4>INDE-Br</h4> | ||
| 397 | + </a> | ||
| 398 | + <h6>Infraestrutura Nacional de Dados Espaciais do Brasil</h6> | ||
| 399 | + </label> | ||
| 400 | + </div> | ||
| 401 | + </div> | ||
| 402 | + <hr> | ||
| 403 | + <!-- lista de wms cadastrados no sistema de administracao --> | ||
| 404 | + <div class="list-group condensed"> | ||
| 405 | + <div class="row-content text-left"> | ||
| 406 | + <a onclick="i3GEO.catalogoOgc.inicia();return false;" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 407 | + <span class="material-icons ">folder_open</span> | ||
| 408 | + </a> | ||
| 409 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoOgc.inicia()" role="button" href="javascript:void(0)"> | ||
| 410 | + <h4>OGC-WMS</h4> | ||
| 411 | + </a> | ||
| 412 | + <h6>{{{descOgcWms}}}</h6> | ||
| 413 | + </label> | ||
| 414 | + </div> | ||
| 415 | + </div> | ||
| 416 | + <hr> | ||
| 417 | + <!-- regioes cadastradas no sistema de metadados --> | ||
| 418 | + <div class="list-group condensed"> | ||
| 419 | + <div class="row-content text-left"> | ||
| 420 | + <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 421 | + <span class="material-icons ">folder_open</span> | ||
| 422 | + </a> | ||
| 423 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoRegioes.inicia()" role="button" href="javascript:void(0)"> | ||
| 424 | + <h4>{{{x87}}}</h4> | ||
| 425 | + </a> | ||
| 426 | + <h6>{{{descLimLoc}}}</h6> | ||
| 427 | + </label> | ||
| 428 | + </div> | ||
| 429 | + </div> | ||
| 430 | + <hr> | ||
| 431 | + <!-- camadas que vem do sistema de metadados estatisticos --> | ||
| 432 | + <div class="list-group condensed"> | ||
| 433 | + <div class="row-content text-left"> | ||
| 434 | + <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 435 | + <span class="material-icons ">folder_open</span> | ||
| 436 | + </a> | ||
| 437 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoMetaestat.inicia()" role="button" href="javascript:void(0)"> | ||
| 438 | + <h4>{{{x57}}}</h4> | ||
| 439 | + </a> | ||
| 440 | + <h6>{{{descMeta}}}</h6> | ||
| 441 | + </label> | ||
| 442 | + </div> | ||
| 443 | + </div> | ||
| 444 | + <hr> | ||
| 445 | + <!-- mapas cadastrados no sistema de administracao (nao funcional) | ||
| 406 | <div class="list-group condensed"><div class="row-content text-left"> | 446 | <div class="list-group condensed"><div class="row-content text-left"> |
| 407 | <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | 447 | <a onclick="i3GEO.catalogoMapas.inicia({'seletorTemplateDir': '#guia2objTemplateDir','seletorTemplateTema': '#guia2objTemplateTema','idCatalogoPrincipal':'catalogoPrincipal','idCatalogoNavegacao':'catalogoNavegacao','idOndeMigalha':'catalogoMigalha'})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> |
| 408 | <label style="width: 255px;vertical-align: middle;"> | 448 | <label style="width: 255px;vertical-align: middle;"> |
| @@ -412,92 +452,107 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -412,92 +452,107 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 412 | </label> | 452 | </label> |
| 413 | </div></div><hr> | 453 | </div></div><hr> |
| 414 | --> | 454 | --> |
| 415 | - <!-- camadas por estrelas --> | ||
| 416 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 417 | - <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 418 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 419 | - <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" href="javascript:void(0)"> | ||
| 420 | - <h4>{{{t46}}}</h4></a> | ||
| 421 | - <h6>{{{descEstrelas}}}</h6> | ||
| 422 | - </label> | ||
| 423 | - </div></div><hr> | ||
| 424 | - <!-- sistemas que adicionam camadas --> | ||
| 425 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 426 | - <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 427 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 428 | - <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" href="javascript:void(0)"> | ||
| 429 | - <h4>{{{a11}}}</h4></a> | ||
| 430 | - <h6>{{{descSistemas}}}</h6> | ||
| 431 | - </label> | ||
| 432 | - </div></div><hr> | ||
| 433 | - <!-- navegacao em diretorios --> | ||
| 434 | - <div class="list-group condensed"><div class="row-content text-left"> | ||
| 435 | - <a onclick="i3GEO.catalogoDir.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"><span class="material-icons ">folder_open</span></a> | ||
| 436 | - <label style="width: 255px;vertical-align: middle;"> | ||
| 437 | - <a onclick="i3GEO.catalogoDir.inicia()" role="button" href="javascript:void(0)"> | ||
| 438 | - <h4>{{{a6}}}</h4></a> | ||
| 439 | - <h6>{{{descDir}}}</h6> | ||
| 440 | - </label> | ||
| 441 | - </div></div><hr> | ||
| 442 | - </div> | ||
| 443 | - </div> | ||
| 444 | - <!-- Legenda --> | ||
| 445 | - <div data-traduzir="true" id='guia4obj' style='display: none; text-align: left'> | ||
| 446 | - <div class="i3GEOfechaGuia" onclick="i3GEO.legenda.off('legendaHtml');i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeLegenda}}}</span>X</div> | ||
| 447 | - <div class="separadorCabecalhoGuias"> </div> | ||
| 448 | - <a href='javascript:void(0)' onclick="i3GEO.legenda.inicia({'janela':true})" >{{{x11}}}</a> | ||
| 449 | - <div id="legendaHtml" data-template="../interface/templates/legenda.html" data-size="35,25" style='display: none; text-align: left'></div> | ||
| 450 | - </div> | ||
| 451 | - <!-- busca | 455 | + <!-- camadas por estrelas --> |
| 456 | + <div class="list-group condensed"> | ||
| 457 | + <div class="row-content text-left"> | ||
| 458 | + <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 459 | + <span class="material-icons ">folder_open</span> | ||
| 460 | + </a> | ||
| 461 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoEstrelas.inicia({'valorEstrela':5,'numEstrelas':1})" role="button" | ||
| 462 | + href="javascript:void(0)"> | ||
| 463 | + <h4>{{{t46}}}</h4> | ||
| 464 | + </a> | ||
| 465 | + <h6>{{{descEstrelas}}}</h6> | ||
| 466 | + </label> | ||
| 467 | + </div> | ||
| 468 | + </div> | ||
| 469 | + <hr> | ||
| 470 | + <!-- sistemas que adicionam camadas --> | ||
| 471 | + <div class="list-group condensed"> | ||
| 472 | + <div class="row-content text-left"> | ||
| 473 | + <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 474 | + <span class="material-icons ">folder_open</span> | ||
| 475 | + </a> | ||
| 476 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoSistemas.inicia()" role="button" href="javascript:void(0)"> | ||
| 477 | + <h4>{{{a11}}}</h4> | ||
| 478 | + </a> | ||
| 479 | + <h6>{{{descSistemas}}}</h6> | ||
| 480 | + </label> | ||
| 481 | + </div> | ||
| 482 | + </div> | ||
| 483 | + <hr> | ||
| 484 | + <!-- navegacao em diretorios --> | ||
| 485 | + <div class="list-group condensed"> | ||
| 486 | + <div class="row-content text-left"> | ||
| 487 | + <a onclick="i3GEO.catalogoDir.inicia()" role="button" class="btn btn-primary btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 488 | + <span class="material-icons ">folder_open</span> | ||
| 489 | + </a> | ||
| 490 | + <label style="width: 255px; vertical-align: middle;"> <a onclick="i3GEO.catalogoDir.inicia()" role="button" href="javascript:void(0)"> | ||
| 491 | + <h4>{{{a6}}}</h4> | ||
| 492 | + </a> | ||
| 493 | + <h6>{{{descDir}}}</h6> | ||
| 494 | + </label> | ||
| 495 | + </div> | ||
| 496 | + </div> | ||
| 497 | + <hr> | ||
| 498 | + </div> | ||
| 499 | + </div> | ||
| 500 | + <!-- Legenda --> | ||
| 501 | + <div data-traduzir="true" id='guia4obj' style='display: none; text-align: left'> | ||
| 502 | + <div class="i3GEOfechaGuia" onclick="i3GEO.legenda.off('legendaHtml');i3GEO.guias.abreFecha('fecha');"> | ||
| 503 | + <button> | ||
| 504 | + <span class="pull-left">{{{iconeLegenda}}}</span> | ||
| 505 | + <span class="pull-right material-icons">cancel</span> | ||
| 506 | + </button> | ||
| 507 | + </div> | ||
| 508 | + <div class="separadorCabecalhoGuias"> </div> | ||
| 509 | + <a href='javascript:void(0)' onclick="i3GEO.legenda.inicia({'janela':true})">{{{x11}}}</a> | ||
| 510 | + <div id="legendaHtml" data-template="../interface/templates/legenda.html" data-size="35,25" style='display: none; text-align: left'></div> | ||
| 511 | + </div> | ||
| 512 | + <!-- busca | ||
| 452 | Funcoes de busca por registros. Pode ser feita nos temas existentes no mapa, em um servico de busca e no google | 513 | Funcoes de busca por registros. Pode ser feita nos temas existentes no mapa, em um servico de busca e no google |
| 453 | No botao que dispara a busca, ficam os parametros de configuracao | 514 | No botao que dispara a busca, ficam os parametros de configuracao |
| 454 | Esses parametros indicam qual o checkbox que define o tipo de busca, o local onde os dados serao mostrados e o template para formatar o resultado | 515 | Esses parametros indicam qual o checkbox que define o tipo de busca, o local onde os dados serao mostrados e o template para formatar o resultado |
| 455 | --> | 516 | --> |
| 456 | - <div data-traduzir="true" id='guia7obj' style='display: none; text-align: left'> | ||
| 457 | - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{t23}}}</span> X</div> | ||
| 458 | - <div class="separadorCabecalhoGuias"> </div> | ||
| 459 | - <form onSubmit="return false;" > | ||
| 460 | - <div class="form-group label-floating"> | ||
| 461 | - <label class="control-label" for="valorBuscaRapida">{{{x36}}}</label> | ||
| 462 | - <div class="input-group"> | ||
| 463 | - <input class="form-control" type="text" value="" name="valorBuscaRapida"> | ||
| 464 | - <span class="input-group-btn"> | ||
| 465 | - <a onclick="i3GEO.busca.inicia(this);return false;" | ||
| 466 | - data-templateGoogle="../interface/templates/buscaEmTemas.html" | ||
| 467 | - data-inputGoogle="[name=google]" | ||
| 468 | - data-ondeGoogle=".i3GEOresultadoBuscaGoogle" | ||
| 469 | - data-templateTemasMapa="../interface/templates/buscaEmTemas.html" | ||
| 470 | - data-inputTemasMapa="[name=temasMapa]" | ||
| 471 | - data-ondeTemasMapa=".i3GEOresultadoBuscaTemasMapa" | ||
| 472 | - data-templateServico="../interface/templates/buscaEmServico.html" | ||
| 473 | - data-ondeConteiner="#guia7obj" | ||
| 474 | - data-inputOndePalavra="[name=valorBuscaRapida]" | ||
| 475 | - data-inputServicosExternos="[name=servicosExternos]" | ||
| 476 | - data-ondeServicosExternos=".i3GEOresultadoBuscaServicos" role="button" type="button" class="btn btn-warning btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 477 | - <span class="material-icons ">send</span> | ||
| 478 | - </a> | ||
| 479 | - </span> | ||
| 480 | - </div> | ||
| 481 | - </div> | ||
| 482 | - <h4>{{{x37}}}:</h4> | ||
| 483 | - <div class="form-inline" style="width:100%;"> | ||
| 484 | - <div class="list-group condensed"> | ||
| 485 | - <div class="checkbox text-left"> | ||
| 486 | - <label> | ||
| 487 | - <input checked class="noprint" value="on" type="checkbox" value="" name="servicosExternos" > | ||
| 488 | - <span class="checkbox-material noprint"><span class="check"></span></span> {{{x38}}} | ||
| 489 | - </label> | ||
| 490 | - </div> | ||
| 491 | - </div> | ||
| 492 | - <div class="list-group condensed"> | ||
| 493 | - <div class="checkbox text-left"> | ||
| 494 | - <label> | ||
| 495 | - <input class="noprint" value="on" type="checkbox" name="temasMapa"> | ||
| 496 | - <span class="checkbox-material noprint"><span class="check"></span></span> {{{x39}}} | ||
| 497 | - </label> | ||
| 498 | - </div> | ||
| 499 | - </div> | ||
| 500 | - <!-- Apenas para a interface google maps | 517 | + <div data-traduzir="true" id='guia7obj' style='display: none; text-align: left'> |
| 518 | + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"> | ||
| 519 | + <button> | ||
| 520 | + <span class="pull-left">{{{t23}}}</span> | ||
| 521 | + <span class="pull-right material-icons">cancel</span> | ||
| 522 | + </button> | ||
| 523 | + </div> | ||
| 524 | + <div class="separadorCabecalhoGuias"> </div> | ||
| 525 | + <form onSubmit="return false;"> | ||
| 526 | + <div class="form-group label-floating"> | ||
| 527 | + <label class="control-label" for="valorBuscaRapida">{{{x36}}}</label> | ||
| 528 | + <div class="input-group"> | ||
| 529 | + <input class="form-control" type="text" value="" name="valorBuscaRapida"> <span class="input-group-btn"> <a onclick="i3GEO.busca.inicia(this);return false;" | ||
| 530 | + data-templateGoogle="../interface/templates/buscaEmTemas.html" data-inputGoogle="[name=google]" data-ondeGoogle=".i3GEOresultadoBuscaGoogle" | ||
| 531 | + data-templateTemasMapa="../interface/templates/buscaEmTemas.html" data-inputTemasMapa="[name=temasMapa]" data-ondeTemasMapa=".i3GEOresultadoBuscaTemasMapa" | ||
| 532 | + data-templateServico="../interface/templates/buscaEmServico.html" data-ondeConteiner="#guia7obj" data-inputOndePalavra="[name=valorBuscaRapida]" | ||
| 533 | + data-inputServicosExternos="[name=servicosExternos]" data-ondeServicosExternos=".i3GEOresultadoBuscaServicos" role="button" type="button" | ||
| 534 | + class="btn btn-warning btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 535 | + <span class="material-icons ">send</span> | ||
| 536 | + </a> | ||
| 537 | + </span> | ||
| 538 | + </div> | ||
| 539 | + </div> | ||
| 540 | + <h4>{{{x37}}}:</h4> | ||
| 541 | + <div class="form-inline" style="width: 100%;"> | ||
| 542 | + <div class="list-group condensed"> | ||
| 543 | + <div class="checkbox text-left"> | ||
| 544 | + <label> <input checked class="noprint" value="on" type="checkbox" value="" name="servicosExternos"> <span class="checkbox-material noprint"><span class="check"></span></span> | ||
| 545 | + {{{x38}}} | ||
| 546 | + </label> | ||
| 547 | + </div> | ||
| 548 | + </div> | ||
| 549 | + <div class="list-group condensed"> | ||
| 550 | + <div class="checkbox text-left"> | ||
| 551 | + <label> <input class="noprint" value="on" type="checkbox" name="temasMapa"> <span class="checkbox-material noprint"><span class="check"></span></span> {{{x39}}} | ||
| 552 | + </label> | ||
| 553 | + </div> | ||
| 554 | + </div> | ||
| 555 | + <!-- Apenas para a interface google maps | ||
| 501 | <div class="list-group condensed"> | 556 | <div class="list-group condensed"> |
| 502 | <div class="checkbox text-left"> | 557 | <div class="checkbox text-left"> |
| 503 | <label> | 558 | <label> |
| @@ -507,55 +562,60 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -507,55 +562,60 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 507 | </div> | 562 | </div> |
| 508 | </div> | 563 | </div> |
| 509 | --> | 564 | --> |
| 510 | - </div> | ||
| 511 | - </form> | ||
| 512 | - <hr> | ||
| 513 | - <div class="i3GEOresultadoBuscaServicos" ></div> | ||
| 514 | - <div class="i3GEOresultadoBuscaTemasMapa" ></div> | ||
| 515 | - <div class="i3GEOresultadoBuscaGoogle" ></div> | ||
| 516 | - <div class="alert alert-info" role="alert">{{{x40}}}</div> | ||
| 517 | - </div> | ||
| 518 | - <!-- Ferramentas --> | ||
| 519 | - <div data-traduzir="true" id='guia8obj' style='display: none; text-align: left'> | ||
| 520 | - <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"><span class="pull-left">{{{iconeFerramentas}}}</span> X</div> | ||
| 521 | - <div class="separadorCabecalhoGuias"> </div> | ||
| 522 | - <div class="form-inline" style="width:100%;"> | ||
| 523 | - <div class="text-center form-group" style="margin:4px;"> | ||
| 524 | - <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.area();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 525 | - <img style="margin-top:4px;" src="../imagens/gisicons/area-measure.png"> | ||
| 526 | - </a> | ||
| 527 | - <h6>{{{d21at}}}</h6> | ||
| 528 | - </div> | ||
| 529 | - <div class="text-center form-group" style="margin:4px;"> | ||
| 530 | - <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.distancia();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 531 | - <img style="margin-top:4px;" src="../imagens/gisicons/length-measure.png"> | ||
| 532 | - </a> | ||
| 533 | - <h6>{{{d21t}}}</h6> | ||
| 534 | - </div> | ||
| 535 | - <div class="text-center form-group" style="margin:4px;"> | ||
| 536 | - <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.selecao();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 537 | - <img style="margin-top:4px;" src="../imagens/gisicons/select.png"> | ||
| 538 | - </a> | ||
| 539 | - <h6>{{{d24t}}}</h6> | ||
| 540 | - </div> | ||
| 541 | - <div class="text-center form-group" style="margin:4px;"> | ||
| 542 | - <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.geolocal();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 543 | - <img style="margin-top:4px;" src="../imagens/gisicons/layer-gps.png"> | ||
| 544 | - </a> | ||
| 545 | - <h6>{{{localiza}}}</h6> | ||
| 546 | - </div> | ||
| 547 | - </div> | ||
| 548 | - <div class="clearfix"></div> | ||
| 549 | - <hr> | ||
| 550 | - <div id="migalhaFerramentas" data-template="../interface/templates/ferramentasMigalha.html" style='display: block; text-align: left;'></div> | ||
| 551 | - <div id="listaFerramentasLinks" data-template="../interface/templates/ferramentasLink.html" style='display: block; text-align: left'></div> | ||
| 552 | - <div id="listaFerramentas" data-template="../interface/templates/ferramentasFolder.html" style='display: block; text-align: left'></div> | ||
| 553 | - </div> | ||
| 554 | - </div> | ||
| 555 | - </div> | ||
| 556 | - </div> | ||
| 557 | - <!-- para mostrar o banner de abertura --> | ||
| 558 | - <script id="i3GEOlogoMarcaTemplate" type="x-tmpl-mustache"> | 565 | + </div> |
| 566 | + </form> | ||
| 567 | + <hr> | ||
| 568 | + <div class="i3GEOresultadoBuscaServicos"></div> | ||
| 569 | + <div class="i3GEOresultadoBuscaTemasMapa"></div> | ||
| 570 | + <div class="i3GEOresultadoBuscaGoogle"></div> | ||
| 571 | + <div class="alert alert-info" role="alert">{{{x40}}}</div> | ||
| 572 | + </div> | ||
| 573 | + <!-- Ferramentas --> | ||
| 574 | + <div data-traduzir="true" id='guia8obj' style='display: none; text-align: left'> | ||
| 575 | + <div class="i3GEOfechaGuia" onclick="i3GEO.guias.abreFecha('fecha');"> | ||
| 576 | + <button> | ||
| 577 | + <span class="pull-left">{{{iconeFerramentas}}}</span> | ||
| 578 | + <span class="pull-right material-icons">cancel</span> | ||
| 579 | + </button> | ||
| 580 | + </div> | ||
| 581 | + <div class="separadorCabecalhoGuias"> </div> | ||
| 582 | + <div class="form-inline" style="width: 100%;"> | ||
| 583 | + <div class="text-center form-group" style="margin: 4px;"> | ||
| 584 | + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.area();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 585 | + <img style="margin-top: 4px;" src="../imagens/gisicons/area-measure.png"> | ||
| 586 | + </a> | ||
| 587 | + <h6>{{{d21at}}}</h6> | ||
| 588 | + </div> | ||
| 589 | + <div class="text-center form-group" style="margin: 4px;"> | ||
| 590 | + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.analise.dialogo.distancia();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 591 | + <img style="margin-top: 4px;" src="../imagens/gisicons/length-measure.png"> | ||
| 592 | + </a> | ||
| 593 | + <h6>{{{d21t}}}</h6> | ||
| 594 | + </div> | ||
| 595 | + <div class="text-center form-group" style="margin: 4px;"> | ||
| 596 | + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.selecao();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 597 | + <img style="margin-top: 4px;" src="../imagens/gisicons/select.png"> | ||
| 598 | + </a> | ||
| 599 | + <h6>{{{d24t}}}</h6> | ||
| 600 | + </div> | ||
| 601 | + <div class="text-center form-group" style="margin: 4px;"> | ||
| 602 | + <a onclick="i3GEO.guias.abreFecha('fecha');i3GEO.mapa.dialogo.geolocal();" role="button" class="btn btn-success btn-fab btn-fab-max" href="javascript:void(0)"> | ||
| 603 | + <img style="margin-top: 4px;" src="../imagens/gisicons/layer-gps.png"> | ||
| 604 | + </a> | ||
| 605 | + <h6>{{{localiza}}}</h6> | ||
| 606 | + </div> | ||
| 607 | + </div> | ||
| 608 | + <div class="clearfix"></div> | ||
| 609 | + <hr> | ||
| 610 | + <div id="migalhaFerramentas" data-template="../interface/templates/ferramentasMigalha.html" style='display: block; text-align: left;'></div> | ||
| 611 | + <div id="listaFerramentasLinks" data-template="../interface/templates/ferramentasLink.html" style='display: block; text-align: left'></div> | ||
| 612 | + <div id="listaFerramentas" data-template="../interface/templates/ferramentasFolder.html" style='display: block; text-align: left'></div> | ||
| 613 | + </div> | ||
| 614 | + </div> | ||
| 615 | + </div> | ||
| 616 | + </div> | ||
| 617 | + <!-- para mostrar o banner de abertura --> | ||
| 618 | + <script id="i3GEOlogoMarcaTemplate" type="x-tmpl-mustache"> | ||
| 559 | <div> | 619 | <div> |
| 560 | <table> | 620 | <table> |
| 561 | <tr> | 621 | <tr> |
| @@ -573,7 +633,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -573,7 +633,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 573 | <div> </div> | 633 | <div> </div> |
| 574 | </div> | 634 | </div> |
| 575 | </script> | 635 | </script> |
| 576 | - <script> | 636 | + <script> |
| 577 | //ativa o banner de inicializacao | 637 | //ativa o banner de inicializacao |
| 578 | i3GEO.janela.tempoMsg($i("i3GEOlogoMarcaTemplate").innerHTML,4000); | 638 | i3GEO.janela.tempoMsg($i("i3GEOlogoMarcaTemplate").innerHTML,4000); |
| 579 | (function() { | 639 | (function() { |
| @@ -727,7 +787,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | @@ -727,7 +787,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { | ||
| 727 | theme: "inset-2", | 787 | theme: "inset-2", |
| 728 | axis: "yx", | 788 | axis: "yx", |
| 729 | scrollbarPosition: "inside", | 789 | scrollbarPosition: "inside", |
| 730 | - scrollButtons:{ enable: true }, | 790 | + scrollButtons:{ enable: false }, |
| 731 | advanced:{ autoExpandHorizontalScroll: true } | 791 | advanced:{ autoExpandHorizontalScroll: true } |
| 732 | } | 792 | } |
| 733 | }, | 793 | }, |
classesphp/classe_alteraclasse.php
| 1 | -<?php | ||
| 2 | -/* | ||
| 3 | - Title: classe_alteraclasse.php | ||
| 4 | - | ||
| 5 | -Manipulação de classes e estilos de um layer | ||
| 6 | - | ||
| 7 | -Licenca: | ||
| 8 | - | ||
| 9 | -GPL2 | ||
| 10 | - | ||
| 11 | -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
| 12 | - | ||
| 13 | -Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
| 14 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
| 15 | - | ||
| 16 | -Este programa é software livre; você pode redistribuí-lo | ||
| 17 | -e/ou modificá-lo sob os termos da Licença Pública Geral | ||
| 18 | -GNU conforme publicada pela Free Software Foundation; | ||
| 19 | - | ||
| 20 | -Este programa é distribuído na expectativa de que seja útil, | ||
| 21 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
| 22 | -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
| 23 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
| 24 | -Você deve ter recebido uma copia da Licença Pública Geral do | ||
| 25 | - GNU junto com este programa; se não, escreva para a | ||
| 26 | -Free Software Foundation, Inc., no endereço | ||
| 27 | -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 28 | - | ||
| 29 | -Arquivo: | ||
| 30 | - | ||
| 31 | -i3geo/classesphp/classe_alteraclasse.php | ||
| 32 | -*/ | ||
| 33 | -/* | ||
| 34 | - Classe: Alteraclasse | ||
| 35 | - | ||
| 36 | -Operações que alteram as classes da legenda de um tema existente no mapa. | ||
| 37 | -As modificações permitem contruir novas legendas para cada tema. | ||
| 38 | -*/ | ||
| 39 | -class Alteraclasse | ||
| 40 | -{ | ||
| 41 | - /* | ||
| 42 | - Variavel: $mapa | ||
| 43 | - | ||
| 44 | - Objeto mapa | ||
| 45 | - */ | ||
| 46 | - public $mapa; | ||
| 47 | - /* | ||
| 48 | - Variavel: $arquivo | ||
| 49 | - | ||
| 50 | - Arquivo map file | ||
| 51 | - */ | ||
| 52 | - protected $arquivo; | ||
| 53 | - /* | ||
| 54 | - Variavel: $layer | ||
| 55 | - | ||
| 56 | - Objeto layer | ||
| 57 | - */ | ||
| 58 | - public $layer; | ||
| 59 | - /* | ||
| 60 | - Variavel: $nome | ||
| 61 | - | ||
| 62 | - Nome do layer | ||
| 63 | - */ | ||
| 64 | - protected $nome; | ||
| 65 | - /* | ||
| 66 | - Function: __construct | ||
| 67 | - | ||
| 68 | - Cria um objeto Alteraclasse | ||
| 69 | - | ||
| 70 | - Parametros: | ||
| 71 | - | ||
| 72 | - $map_file - Endereço do mapfile no servidor. | ||
| 73 | - | ||
| 74 | - $tema - nome do tema | ||
| 75 | - */ | ||
| 76 | - function __construct($map_file,$tema="",$locaplic="",$ext="") | ||
| 77 | - { | ||
| 78 | - include(dirname(__FILE__)."/../ms_configura.php"); | ||
| 79 | - $this->postgis_mapa = $postgis_mapa; | ||
| 80 | - | ||
| 81 | - include_once(dirname(__FILE__)."/funcoes_gerais.php"); | ||
| 82 | - | ||
| 83 | - $this->locaplic = $locaplic; | ||
| 84 | - | ||
| 85 | - $this->mapa = ms_newMapObj($map_file); | ||
| 86 | - substituiConObj($this->mapa,$postgis_mapa); | ||
| 87 | - | ||
| 88 | - $this->arquivo = str_replace(".map","",$map_file).".map"; | ||
| 89 | - $this->layer = ""; | ||
| 90 | - if($tema != "" && @$this->mapa->getlayerbyname($tema)){ | ||
| 91 | - $this->layer = $this->mapa->getlayerbyname($tema); | ||
| 92 | - } | ||
| 93 | - $this->nome = $tema; | ||
| 94 | - if($ext && $ext != ""){ | ||
| 95 | - $e = explode(" ",$ext); | ||
| 96 | - $extatual = $this->mapa->extent; | ||
| 97 | - $extatual->setextent((min($e[0],$e[2])),(min($e[1],$e[3])),(max($e[0],$e[2])),(max($e[1],$e[3]))); | ||
| 98 | - } | ||
| 99 | - } | ||
| 100 | - /* | ||
| 101 | - function: salva | ||
| 102 | - | ||
| 103 | - Salva o mapfile atual | ||
| 104 | - | ||
| 105 | - */ | ||
| 106 | - function salva() | ||
| 107 | - { | ||
| 108 | - restauraConObj($this->mapa,$this->postgis_mapa); | ||
| 109 | - $this->mapa->save($this->arquivo); | ||
| 110 | - } | ||
| 111 | - /* | ||
| 112 | - Function: aplicacoresrgb | ||
| 113 | - | ||
| 114 | - Aplica cores nas classes atuais conforme uma lista de cores em RGB | ||
| 115 | - | ||
| 116 | - Parametro: | ||
| 117 | - | ||
| 118 | - cores {array} - array com a lista de valores RGB | ||
| 119 | - */ | ||
| 120 | - function aplicacoresrgb($cores) | ||
| 121 | - { | ||
| 122 | - if(!$this->layer){ | ||
| 123 | - return "erro"; | ||
| 124 | - } | ||
| 125 | - $numclasses = $this->layer->numclasses; | ||
| 126 | - if ($numclasses > 0) | ||
| 127 | - { | ||
| 128 | - for ($i=0; $i < $numclasses; ++$i) | ||
| 129 | - { | ||
| 130 | - $classe = $this->layer->getClass($i); | ||
| 131 | - $estilo = $classe->getstyle(0); | ||
| 132 | - if($cores[$i]) | ||
| 133 | - { | ||
| 134 | - $cor = explode(",",$cores[$i]); | ||
| 135 | - $ncor = $estilo->color; | ||
| 136 | - $ncor->setrgb($cor[0],$cor[1],$cor[2]); | ||
| 137 | - } | ||
| 138 | - } | ||
| 139 | - } | ||
| 140 | - $this->layer->setMetaData("cache",""); | ||
| 141 | - return("ok"); | ||
| 142 | - } | ||
| 143 | - /* | ||
| 144 | - function: simbolounico | ||
| 145 | - | ||
| 146 | - Elimina as classes existentes em um objeto layer mantendo apenas a primeira classe. | ||
| 147 | - Todos os elementos passarão a ser desenhados conforme essa primeira classe, uma vez que a expressão de definição da classe passa a ser vazia. | ||
| 148 | - */ | ||
| 149 | - function simbolounico() | ||
| 150 | - { | ||
| 151 | - if(!$this->layer){ | ||
| 152 | - return "erro"; | ||
| 153 | - } | ||
| 154 | - $numclasses = $this->layer->numclasses; | ||
| 155 | - if ($numclasses > 0){ | ||
| 156 | - //elimina a expressão da primeira classe | ||
| 157 | - $classe0 = $this->layer->getClass(0); | ||
| 158 | - //echo "<pre>";var_dump($classe0);exit; | ||
| 159 | - $classe0->setexpression(""); | ||
| 160 | - $classe0->set("name"," "); | ||
| 161 | - //apaga todas as classes menos a primeira | ||
| 162 | - for ($i=1; $i < $numclasses; ++$i) | ||
| 163 | - { | ||
| 164 | - $classe = $this->layer->getClass($i); | ||
| 165 | - $classe->set("status",MS_DELETE); | ||
| 166 | - } | ||
| 167 | - } | ||
| 168 | - else{ | ||
| 169 | - $classe = ms_newClassObj($this->layer); | ||
| 170 | - $novoestilo = ms_newStyleObj($classe); | ||
| 171 | - if ($this->layer->type == 0){ | ||
| 172 | - $novoestilo->set("symbolname","ponto"); | ||
| 173 | - $novoestilo->set("size","6"); | ||
| 174 | - } | ||
| 175 | - $cor = $novoestilo->color; | ||
| 176 | - $cor->setRGB(255,100,100); | ||
| 177 | - } | ||
| 178 | - $this->layer->setMetaData("cache",""); | ||
| 179 | - return("ok"); | ||
| 180 | - } | ||
| 181 | - /* | ||
| 182 | - function: alteraclasses | ||
| 183 | - | ||
| 184 | - Altera as classes existentes em um objeto layer conforme a lista de índices, nomes e expressões definidas nos parâmetros passados como argumentos. | ||
| 185 | - | ||
| 186 | - Parametros: | ||
| 187 | - | ||
| 188 | - $ids - lista de ids, separados por vírgula, que identificam as classes no layer | ||
| 189 | - | ||
| 190 | - $nomes - lista com os novos nomes | ||
| 191 | - | ||
| 192 | - $exps - lista com as novas expressões | ||
| 193 | - | ||
| 194 | - $base64 sim|nao indica se as strings estao codificadas em base64 | ||
| 195 | - | ||
| 196 | - $minScales - lista com valores para minscaledenom | ||
| 197 | - | ||
| 198 | - $maxScales - lista com valores para maxscaledenom | ||
| 199 | - */ | ||
| 200 | - function alteraclasses($ids,$nomes,$exps,$base64="nao",$minScales="",$maxScales="") | ||
| 201 | - { | ||
| 202 | - if($base64 == "sim"){ | ||
| 203 | - //$ids = base64_decode($ids); | ||
| 204 | - //$nomes = base64_decode($nomes); | ||
| 205 | - //$exps = base64_decode($exps); | ||
| 206 | - } | ||
| 207 | - //prepara os arrays com os valores | ||
| 208 | - $ids = explode(";",$ids); | ||
| 209 | - $minScales = explode(";",$minScales); | ||
| 210 | - $maxScales = explode(";",$maxScales); | ||
| 211 | - | ||
| 212 | - $nomes = $this->converteTexto($nomes); | ||
| 213 | - $nomes = explode(";",$nomes); | ||
| 214 | - $exps = mb_convert_encoding($exps,"ISO-8859-1","UTF-8"); | ||
| 215 | - $exps = explode(";",$exps); | ||
| 216 | - //pega os layers existentes no array ids e armazena no array t | ||
| 217 | - $c = count($ids); | ||
| 218 | - for ($i=0; $i < $c; ++$i){ | ||
| 219 | - $tx = explode("-",$ids[$i]); | ||
| 220 | - $t[] = $tx[0]; | ||
| 221 | - } | ||
| 222 | - //elimina nomes de layers duplicados | ||
| 223 | - $t = array_unique($t); | ||
| 224 | - //elimina as classes existentes atualmente em cada layer | ||
| 225 | - foreach ($t as $tema){ | ||
| 226 | - $layer = $this->mapa->getlayerbyname($tema); | ||
| 227 | - $layer->setmetadata("cache",""); | ||
| 228 | - $nc = $layer->numclasses; | ||
| 229 | - if($nc > 0){ | ||
| 230 | - for($i=0;$i < $nc;++$i){ | ||
| 231 | - $class = $layer->getclass($i); | ||
| 232 | - $class->set("status",MS_DELETE); | ||
| 233 | - } | ||
| 234 | - } | ||
| 235 | - } | ||
| 236 | - //acrescenta as classes definidas | ||
| 237 | - $c = count($ids); | ||
| 238 | - for ($i=0; $i < $c; ++$i){ | ||
| 239 | - $layerc = explode("-",$ids[$i]); //nome do layer é o indice 0 do array | ||
| 240 | - $layer = $this->mapa->getlayerbyname($layerc[0]); | ||
| 241 | - $layer->setMetaData("cache",""); | ||
| 242 | - $ncl = $layer->numclasses; | ||
| 243 | - if ($layerc[1] < $ncl){ | ||
| 244 | - $classe = $layer->getclass($layerc[1]); | ||
| 245 | - $classe->set("status",MS_DEFAULT); | ||
| 246 | - $classe->set("name",$nomes[$i]); | ||
| 247 | - $e = $exps[$i]; | ||
| 248 | - $e = str_replace("\\","'",$e); | ||
| 249 | - $e = str_replace('"',"'",$e); | ||
| 250 | - $e = str_replace("''","'",$e); | ||
| 251 | - $e = str_replace("##","'",$e); | ||
| 252 | - $classe->setexpression($e); | ||
| 253 | - if($minScales[$i]){ | ||
| 254 | - if($minScales[$i] == 0 || $minScales[$i] == ""){ | ||
| 255 | - $minScales[$i] = -1; | ||
| 256 | - } | ||
| 257 | - $classe->set("minscaledenom",$minScales[$i]); | ||
| 258 | - } | ||
| 259 | - if($maxScales[$i]){ | ||
| 260 | - if($maxScales[$i] == 0 || $maxScales[$i] == ""){ | ||
| 261 | - $maxScales[$i] = -1; | ||
| 262 | - } | ||
| 263 | - $classe->set("maxscaledenom",$maxScales[$i]); | ||
| 264 | - } | ||
| 265 | - } | ||
| 266 | - } | ||
| 267 | - } | ||
| 268 | - /* | ||
| 269 | - function: intervalosiguais | ||
| 270 | - | ||
| 271 | - Cria classes em um objeto layer com intervalos iguais baseando-se em um item numérico na tabela de atributos com um número de classes fixos. | ||
| 272 | - | ||
| 273 | - Parametros: | ||
| 274 | - | ||
| 275 | - $item - item da tabela de atributos | ||
| 276 | - | ||
| 277 | - $nclasses - número de classes | ||
| 278 | - | ||
| 279 | - $ignorar - valor que será ignorado na listagem final | ||
| 280 | - */ | ||
| 281 | - function intervalosiguais($item,$nclasses,$ignorar) | ||
| 282 | - { | ||
| 283 | - if(!$this->layer){ | ||
| 284 | - return "erro"; | ||
| 285 | - } | ||
| 286 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar); | ||
| 287 | - if (count($valores) > 0) | ||
| 288 | - { | ||
| 289 | - //calcula o menor valor e o maior valor | ||
| 290 | - $min = min($valores); | ||
| 291 | - $max = max($valores); | ||
| 292 | - $intervalo = ($max - $min) / $nclasses; | ||
| 293 | - $numclassesatual = $this->layer->numclasses; | ||
| 294 | - //apaga todas as classes existentes | ||
| 295 | - $classetemp = $this->layer->getClass(0); | ||
| 296 | - $estilotemp = $classetemp->getStyle(0); | ||
| 297 | - for ($i=0; $i < $numclassesatual; ++$i) | ||
| 298 | - { | ||
| 299 | - $classe = $this->layer->getClass($i); | ||
| 300 | - $classe->set("status",MS_DELETE); | ||
| 301 | - } | ||
| 302 | - //adiciona as classes novas | ||
| 303 | - $intatual = $min; | ||
| 304 | - for ($i=0; $i < $nclasses; ++$i) | ||
| 305 | - { | ||
| 306 | - if ($i == $nclasses - 1) | ||
| 307 | - { | ||
| 308 | - $expressao = "(([".$item."]>=".$intatual.")and([".$item."]<=".($intatual+$intervalo)."))"; | ||
| 309 | - } | ||
| 310 | - else | ||
| 311 | - {$expressao = "(([".$item."]>=".$intatual.")and([".$item."]<".($intatual+$intervalo)."))"; | ||
| 312 | - } | ||
| 313 | - $nomeclasse = ">= ".$intatual." e < que ".($intatual+$intervalo); | ||
| 314 | - $intatual = $intatual + $intervalo; | ||
| 315 | - $classe = ms_newClassObj($this->layer); | ||
| 316 | - $novoestilo = ms_newStyleObj($classe); | ||
| 317 | - if ($this->layer->type == 0) | ||
| 318 | - { | ||
| 319 | - $novoestilo->set("symbolname","ponto"); | ||
| 320 | - $novoestilo->set("size","6"); | ||
| 321 | - } | ||
| 322 | - $ncor = $novoestilo->color; | ||
| 323 | - $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255))); | ||
| 324 | - $ncor = $novoestilo->outlinecolor; | ||
| 325 | - $ncor->setrgb(255,255,255); | ||
| 326 | - $classe->setexpression($expressao); | ||
| 327 | - $classe->set("name",$nomeclasse); | ||
| 328 | - $classe->set("title",($this->layer->name)."+".$i); | ||
| 329 | - } | ||
| 330 | - $this->layer->setMetaData("cache",""); | ||
| 331 | - return ("ok"); | ||
| 332 | - } | ||
| 333 | - else | ||
| 334 | - {return ("erro. Nenhum valor numerico no item"); | ||
| 335 | - } | ||
| 336 | - } | ||
| 337 | - /* | ||
| 338 | - function: metade | ||
| 339 | - | ||
| 340 | - Classifica os dados em duas classes, a primeira concentra os registros que somados correspondem à primeira metade do total e a segunda classe corresponde à segunda metade | ||
| 341 | - | ||
| 342 | - Parametros: | ||
| 343 | - | ||
| 344 | - $item - item da tabela de atributos | ||
| 345 | - | ||
| 346 | - $itemid - item que identifica unicamente cada registro | ||
| 347 | - | ||
| 348 | - $ignorar - valor que será ignorado na listagem final | ||
| 349 | - */ | ||
| 350 | - function metade($item,$itemid,$ignorar) | ||
| 351 | - { | ||
| 352 | - if(!$this->layer){ | ||
| 353 | - return "erro"; | ||
| 354 | - } | ||
| 355 | - //cria um array contendo o id como chave e o valor | ||
| 356 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar); | ||
| 357 | - $ids = $this->pegaValores($this->mapa,$this->layer,$itemid,false,$ignorar); | ||
| 358 | - $lista = array(); | ||
| 359 | - for ($i = 0; $i < count($valores); ++$i){ | ||
| 360 | - $lista[$ids[$i]] = $valores[$i]; | ||
| 361 | - } | ||
| 362 | - | ||
| 363 | - if (count($lista) > 0){ | ||
| 364 | - asort($lista); | ||
| 365 | - //$valores = array_unique($valores); | ||
| 366 | - $numValues = count($lista); | ||
| 367 | - //soma os valores | ||
| 368 | - $total = array_sum($lista); | ||
| 369 | - //metade | ||
| 370 | - $metade = $total / 2; | ||
| 371 | - //separa os dados em dois conjuntos | ||
| 372 | - $metadeInf = array(); | ||
| 373 | - $metadeSup = array(); | ||
| 374 | - $IdNumerico = true; | ||
| 375 | - $soma = 0; | ||
| 376 | - $somaInf = 0; | ||
| 377 | - $somaSup = 0; | ||
| 378 | - $maxMetade1 = 0; | ||
| 379 | - foreach ($lista as $k => $v) { | ||
| 380 | - $soma = $soma + $v; | ||
| 381 | - if($soma < $metade){ | ||
| 382 | - $metadeInf[] = $k; | ||
| 383 | - $somaInf = $soma; | ||
| 384 | - $maxMetade1 = $v; | ||
| 385 | - } | ||
| 386 | - else{ | ||
| 387 | - $metadeSup[] = $k; | ||
| 388 | - $somaSup = $somaSup + $v; | ||
| 389 | - } | ||
| 390 | - } | ||
| 391 | - $percInf = ($somaInf * 100) / $total; | ||
| 392 | - $percSup = ($somaSup * 100) / $total; | ||
| 393 | - | ||
| 394 | - $numclassesatual = $this->layer->numclasses; | ||
| 395 | - //apaga todas as classes existentes | ||
| 396 | - $classetemp = $this->layer->getClass(0); | ||
| 397 | - $estilotemp = $classetemp->getStyle(0); | ||
| 398 | - for ($i=0; $i < $numclassesatual; ++$i){ | ||
| 399 | - $classe = $this->layer->getClass($i); | ||
| 400 | - $classe->set("status",MS_DELETE); | ||
| 401 | - } | ||
| 402 | - //adiciona as classes novas | ||
| 403 | - $expressao = "('[".$itemid."]'in'".implode(",",$metadeInf)."')"; | ||
| 404 | - $nomeclasse = "Tot ".$somaInf.' ('.round($percInf,2).'%) Max: '.$maxMetade1; | ||
| 405 | - $classe = ms_newClassObj($this->layer); | ||
| 406 | - $novoestilo = ms_newStyleObj($classe); | ||
| 407 | - if ($this->layer->type == 0){ | ||
| 408 | - $novoestilo->set("symbolname","ponto"); | ||
| 409 | - $novoestilo->set("size","6"); | ||
| 410 | - } | ||
| 411 | - $ncor = $novoestilo->color; | ||
| 412 | - $ncor->setrgb(246,183,134); | ||
| 413 | - $ncor = $novoestilo->outlinecolor; | ||
| 414 | - $ncor->setrgb(255,255,255); | ||
| 415 | - $classe->setexpression($expressao); | ||
| 416 | - $classe->set("name",$nomeclasse); | ||
| 417 | - | ||
| 418 | - $expressao = "('[".$itemid."]'in'".implode(",",$metadeSup)."')"; | ||
| 419 | - $nomeclasse = "Tot ".$somaSup.' ('.round($percSup,2).'%) '; | ||
| 420 | - $classe = ms_newClassObj($this->layer); | ||
| 421 | - $novoestilo = ms_newStyleObj($classe); | ||
| 422 | - if ($this->layer->type == 0){ | ||
| 423 | - $novoestilo->set("symbolname","ponto"); | ||
| 424 | - $novoestilo->set("size","6"); | ||
| 425 | - } | ||
| 426 | - $ncor = $novoestilo->color; | ||
| 427 | - $ncor->setrgb(210,111,111); | ||
| 428 | - $ncor = $novoestilo->outlinecolor; | ||
| 429 | - $ncor->setrgb(255,255,255); | ||
| 430 | - $classe->setexpression($expressao); | ||
| 431 | - $classe->set("name",$nomeclasse); | ||
| 432 | - | ||
| 433 | - $this->layer->setMetaData("cache",""); | ||
| 434 | - return ("ok"); | ||
| 435 | - } | ||
| 436 | - else{ | ||
| 437 | - return ("erro. Nenhum valor numerico no item"); | ||
| 438 | - } | ||
| 439 | - } | ||
| 440 | - /* | ||
| 441 | - function: classemedia | ||
| 442 | - | ||
| 443 | - Classifica os dados em duas classes, a primeira concentra os registros que estão abaixo da média e a segunda aqueles que são iguais ou superiores a média | 1 | +<?php |
| 444 | 2 | ||
| 445 | - Parametros: | 3 | +/* |
| 4 | + * Title: classe_alteraclasse.php | ||
| 5 | + * | ||
| 6 | + * Manipulação de classes e estilos de um layer | ||
| 7 | + * | ||
| 8 | + * Licenca: | ||
| 9 | + * | ||
| 10 | + * GPL2 | ||
| 11 | + * | ||
| 12 | + * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet | ||
| 13 | + * | ||
| 14 | + * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil | ||
| 15 | + * Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
| 16 | + * | ||
| 17 | + * Este programa é software livre; você pode redistribuí-lo | ||
| 18 | + * e/ou modificá-lo sob os termos da Licença Pública Geral | ||
| 19 | + * GNU conforme publicada pela Free Software Foundation; | ||
| 20 | + * | ||
| 21 | + * Este programa é distribuído na expectativa de que seja útil, | ||
| 22 | + * porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
| 23 | + * de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
| 24 | + * Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
| 25 | + * Você deve ter recebido uma copia da Licença Pública Geral do | ||
| 26 | + * GNU junto com este programa; se não, escreva para a | ||
| 27 | + * Free Software Foundation, Inc., no endereço | ||
| 28 | + * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 29 | + * | ||
| 30 | + * Arquivo: | ||
| 31 | + * | ||
| 32 | + * i3geo/classesphp/classe_alteraclasse.php | ||
| 33 | + */ | ||
| 34 | +/* | ||
| 35 | + * Classe: Alteraclasse | ||
| 36 | + * | ||
| 37 | + * Operações que alteram as classes da legenda de um tema existente no mapa. | ||
| 38 | + * As modificações permitem contruir novas legendas para cada tema. | ||
| 39 | + */ | ||
| 40 | +class Alteraclasse | ||
| 41 | +{ | ||
| 446 | 42 | ||
| 447 | - $item - item da tabela de atributos | 43 | + /* |
| 44 | + * Variavel: $mapa | ||
| 45 | + * | ||
| 46 | + * Objeto mapa | ||
| 47 | + */ | ||
| 48 | + public $mapa; | ||
| 448 | 49 | ||
| 449 | - $ignorar - valor que será ignorado na listagem final | ||
| 450 | - */ | ||
| 451 | - function classemedia($item,$ignorar) | ||
| 452 | - { | ||
| 453 | - if(!$this->layer){ | ||
| 454 | - return "erro"; | ||
| 455 | - } | ||
| 456 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,false,$ignorar); | 50 | + /* |
| 51 | + * Variavel: $arquivo | ||
| 52 | + * | ||
| 53 | + * Arquivo map file | ||
| 54 | + */ | ||
| 55 | + protected $arquivo; | ||
| 457 | 56 | ||
| 458 | - if (count($valores) > 0){ | ||
| 459 | - $media = array_sum($valores) / count($valores); | 57 | + /* |
| 58 | + * Variavel: $layer | ||
| 59 | + * | ||
| 60 | + * Objeto layer | ||
| 61 | + */ | ||
| 62 | + public $layer; | ||
| 460 | 63 | ||
| 461 | - $numclassesatual = $this->layer->numclasses; | ||
| 462 | - //apaga todas as classes existentes | ||
| 463 | - $classetemp = $this->layer->getClass(0); | ||
| 464 | - $estilotemp = $classetemp->getStyle(0); | ||
| 465 | - for ($i=0; $i < $numclassesatual; ++$i){ | ||
| 466 | - $classe = $this->layer->getClass($i); | ||
| 467 | - $classe->set("status",MS_DELETE); | ||
| 468 | - } | ||
| 469 | - //adiciona as classes novas | ||
| 470 | - $expressao = "([".$item."]<".$media.")"; | ||
| 471 | - $nomeclasse = "< media ".$media; | ||
| 472 | - $classe = ms_newClassObj($this->layer); | ||
| 473 | - | ||
| 474 | - $novoestilo = ms_newStyleObj($classe); | ||
| 475 | - if ($this->layer->type == 0){ | ||
| 476 | - $novoestilo->set("symbolname","ponto"); | ||
| 477 | - $novoestilo->set("size","6"); | ||
| 478 | - } | ||
| 479 | - $ncor = $novoestilo->color; | ||
| 480 | - $ncor->setrgb(200,183,134); | ||
| 481 | - $ncor = $novoestilo->outlinecolor; | ||
| 482 | - $ncor->setrgb(255,255,255); | ||
| 483 | - $classe->setexpression($expressao); | ||
| 484 | - $classe->set("name",$nomeclasse); | 64 | + /* |
| 65 | + * Variavel: $nome | ||
| 66 | + * | ||
| 67 | + * Nome do layer | ||
| 68 | + */ | ||
| 69 | + protected $nome; | ||
| 485 | 70 | ||
| 486 | - $expressao = "([".$item."]>=".$media.")"; | ||
| 487 | - $nomeclasse = ">= media ".$media; | ||
| 488 | - $classe = ms_newClassObj($this->layer); | ||
| 489 | - | ||
| 490 | - $novoestilo = ms_newStyleObj($classe); | ||
| 491 | - if ($this->layer->type == 0){ | ||
| 492 | - $novoestilo->set("symbolname","ponto"); | ||
| 493 | - $novoestilo->set("size","6"); | ||
| 494 | - } | ||
| 495 | - $ncor = $novoestilo->color; | ||
| 496 | - $ncor->setrgb(210,100,100); | ||
| 497 | - $ncor = $novoestilo->outlinecolor; | ||
| 498 | - $ncor->setrgb(255,255,255); | ||
| 499 | - $classe->setexpression($expressao); | ||
| 500 | - $classe->set("name",$nomeclasse); | 71 | + /* |
| 72 | + * Function: __construct | ||
| 73 | + * | ||
| 74 | + * Cria um objeto Alteraclasse | ||
| 75 | + * | ||
| 76 | + * Parametros: | ||
| 77 | + * | ||
| 78 | + * $map_file - Endereço do mapfile no servidor. | ||
| 79 | + * | ||
| 80 | + * $tema - nome do tema | ||
| 81 | + */ | ||
| 82 | + function __construct($map_file, $tema = "", $locaplic = "", $ext = "") | ||
| 83 | + { | ||
| 84 | + include (dirname(__FILE__) . "/../ms_configura.php"); | ||
| 85 | + $this->postgis_mapa = $postgis_mapa; | ||
| 501 | 86 | ||
| 502 | - $this->layer->setMetaData("cache",""); | ||
| 503 | - return ("ok"); | ||
| 504 | - } | ||
| 505 | - else{ | ||
| 506 | - return ("erro. Nenhum valor numerico no item"); | ||
| 507 | - } | ||
| 508 | - } | ||
| 509 | - /* | ||
| 510 | - function: quantil | 87 | + include_once (dirname(__FILE__) . "/funcoes_gerais.php"); |
| 511 | 88 | ||
| 512 | - Cria classes em um objeto layer com intervalos baseados no calculo de quantil | 89 | + $this->locaplic = $locaplic; |
| 513 | 90 | ||
| 514 | - Parametros: | 91 | + $this->mapa = ms_newMapObj($map_file); |
| 92 | + substituiConObj($this->mapa, $postgis_mapa); | ||
| 515 | 93 | ||
| 516 | - $item - item da tabela de atributos | 94 | + $this->arquivo = str_replace(".map", "", $map_file) . ".map"; |
| 95 | + $this->layer = ""; | ||
| 96 | + if ($tema != "" && @$this->mapa->getlayerbyname($tema)) { | ||
| 97 | + $this->layer = $this->mapa->getlayerbyname($tema); | ||
| 98 | + } | ||
| 99 | + $this->nome = $tema; | ||
| 100 | + if ($ext && $ext != "") { | ||
| 101 | + $e = explode(" ", $ext); | ||
| 102 | + $extatual = $this->mapa->extent; | ||
| 103 | + $extatual->setextent((min($e[0], $e[2])), (min($e[1], $e[3])), (max($e[0], $e[2])), (max($e[1], $e[3]))); | ||
| 104 | + } | ||
| 105 | + } | ||
| 517 | 106 | ||
| 518 | - $nclasses - número de classes | 107 | + /* |
| 108 | + * function: salva | ||
| 109 | + * | ||
| 110 | + * Salva o mapfile atual | ||
| 111 | + * | ||
| 112 | + */ | ||
| 113 | + function salva() | ||
| 114 | + { | ||
| 115 | + restauraConObj($this->mapa, $this->postgis_mapa); | ||
| 116 | + $this->mapa->save($this->arquivo); | ||
| 117 | + } | ||
| 519 | 118 | ||
| 520 | - $ignorar - valor que será ignorado na listagem final | ||
| 521 | - */ | ||
| 522 | - function quantil($item,$nclasses,$ignorar) | ||
| 523 | - { | ||
| 524 | - if(!$this->layer){ | ||
| 525 | - return "erro"; | ||
| 526 | - } | ||
| 527 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar); | ||
| 528 | - if (count($valores) > 0){ | ||
| 529 | - //rotina obtida do pacote TME | ||
| 530 | - sort($valores); | ||
| 531 | - //$valores = array_unique($valores); | ||
| 532 | - $numValues = count($valores); | ||
| 533 | - $classNum = $numValues / $nclasses; // Number in each class | ||
| 534 | - for ($i = 0; $i < $nclasses; $i++) { | ||
| 535 | - $position = (int)($classNum * $i); | ||
| 536 | - $classBreaks[] = $valores[$position]; | ||
| 537 | - } | ||
| 538 | - $classBreaks[] = $valores[$numValues-1]; // Last class break = biggest value | ||
| 539 | - //echo "<pre>";var_dump($classBreaks);exit; | ||
| 540 | - $numclassesatual = $this->layer->numclasses; | ||
| 541 | - //apaga todas as classes existentes | ||
| 542 | - $classetemp = $this->layer->getClass(0); | ||
| 543 | - $estilotemp = $classetemp->getStyle(0); | ||
| 544 | - for ($i=0; $i < $numclassesatual; ++$i){ | ||
| 545 | - $classe = $this->layer->getClass($i); | ||
| 546 | - $classe->set("status",MS_DELETE); | ||
| 547 | - } | ||
| 548 | - //adiciona as classes novas | ||
| 549 | - for ($i=0; $i < $nclasses; ++$i){ | ||
| 550 | - $expressao = "(([".$item."]>".$classBreaks[$i].")and([".$item."]<=".$classBreaks[$i + 1]."))"; | ||
| 551 | - $nomeclasse = "> ".$classBreaks[$i]." e <= que ".($classBreaks[$i + 1]); | ||
| 552 | - if($i == 0){ | ||
| 553 | - $expressao = "([".$item."]<=".$classBreaks[$i + 1].")"; | ||
| 554 | - $nomeclasse = "<= que ".($classBreaks[$i + 1]); | ||
| 555 | - } | ||
| 556 | - if($i == ($nclasses - 1)){ | ||
| 557 | - $expressao = "([".$item."] >=".$classBreaks[$i].")"; | ||
| 558 | - $nomeclasse = ">= que ".($classBreaks[$i]); | ||
| 559 | - } | ||
| 560 | - $classe = ms_newClassObj($this->layer); | ||
| 561 | - $novoestilo = ms_newStyleObj($classe); | ||
| 562 | - if ($this->layer->type == 0){ | ||
| 563 | - $novoestilo->set("symbolname","ponto"); | ||
| 564 | - $novoestilo->set("size","6"); | ||
| 565 | - } | ||
| 566 | - $ncor = $novoestilo->color; | ||
| 567 | - $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255))); | ||
| 568 | - $ncor = $novoestilo->outlinecolor; | ||
| 569 | - $ncor->setrgb(255,255,255); | ||
| 570 | - $classe->setexpression($expressao); | ||
| 571 | - $classe->set("name",$nomeclasse); | ||
| 572 | - //$classe->set("title",($this->layer->name)."+".$i); | ||
| 573 | - } | ||
| 574 | - $this->layer->setMetaData("cache",""); | ||
| 575 | - return ("ok"); | ||
| 576 | - } | ||
| 577 | - else{ | ||
| 578 | - return ("erro. Nenhum valor numerico no item"); | ||
| 579 | - } | ||
| 580 | - } | ||
| 581 | - /* | ||
| 582 | - function: quebrasnaturais | 119 | + /* |
| 120 | + * Function: aplicacoresrgb | ||
| 121 | + * | ||
| 122 | + * Aplica cores nas classes atuais conforme uma lista de cores em RGB | ||
| 123 | + * | ||
| 124 | + * Parametro: | ||
| 125 | + * | ||
| 126 | + * cores {array} - array com a lista de valores RGB | ||
| 127 | + */ | ||
| 128 | + function aplicacoresrgb($cores) | ||
| 129 | + { | ||
| 130 | + if (! $this->layer) { | ||
| 131 | + return "erro"; | ||
| 132 | + } | ||
| 133 | + $numclasses = $this->layer->numclasses; | ||
| 134 | + if ($numclasses > 0) { | ||
| 135 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 136 | + $classe = $this->layer->getClass($i); | ||
| 137 | + $estilo = $classe->getstyle(0); | ||
| 138 | + if ($cores[$i]) { | ||
| 139 | + $cor = explode(",", $cores[$i]); | ||
| 140 | + $ncor = $estilo->color; | ||
| 141 | + $ncor->setrgb($cor[0], $cor[1], $cor[2]); | ||
| 142 | + } | ||
| 143 | + } | ||
| 144 | + } | ||
| 145 | + $this->layer->setMetaData("cache", ""); | ||
| 146 | + return ("ok"); | ||
| 147 | + } | ||
| 583 | 148 | ||
| 584 | - Cria classes em um objeto layer com intervalos baseados no calculo de quebras naturais | 149 | + /* |
| 150 | + * function: simbolounico | ||
| 151 | + * | ||
| 152 | + * Elimina as classes existentes em um objeto layer mantendo apenas a primeira classe. | ||
| 153 | + * Todos os elementos passarão a ser desenhados conforme essa primeira classe, uma vez que a expressão de definição da classe passa a ser vazia. | ||
| 154 | + */ | ||
| 155 | + function simbolounico() | ||
| 156 | + { | ||
| 157 | + if (! $this->layer) { | ||
| 158 | + return "erro"; | ||
| 159 | + } | ||
| 160 | + $numclasses = $this->layer->numclasses; | ||
| 161 | + if ($numclasses > 0) { | ||
| 162 | + // elimina a expressão da primeira classe | ||
| 163 | + $classe0 = $this->layer->getClass(0); | ||
| 164 | + // echo "<pre>";var_dump($classe0);exit; | ||
| 165 | + $classe0->setexpression(""); | ||
| 166 | + $classe0->set("name", " "); | ||
| 167 | + // apaga todas as classes menos a primeira | ||
| 168 | + for ($i = 1; $i < $numclasses; ++ $i) { | ||
| 169 | + $classe = $this->layer->getClass($i); | ||
| 170 | + $classe->set("status", MS_DELETE); | ||
| 171 | + } | ||
| 172 | + } else { | ||
| 173 | + $classe = ms_newClassObj($this->layer); | ||
| 174 | + $novoestilo = ms_newStyleObj($classe); | ||
| 175 | + if ($this->layer->type == 0) { | ||
| 176 | + $novoestilo->set("symbolname", "ponto"); | ||
| 177 | + $novoestilo->set("size", "6"); | ||
| 178 | + } | ||
| 179 | + $cor = $novoestilo->color; | ||
| 180 | + $cor->setRGB(255, 100, 100); | ||
| 181 | + } | ||
| 182 | + $this->layer->setMetaData("cache", ""); | ||
| 183 | + return ("ok"); | ||
| 184 | + } | ||
| 585 | 185 | ||
| 586 | - Parametros: | 186 | + /* |
| 187 | + * function: alteraclasses | ||
| 188 | + * | ||
| 189 | + * Altera as classes existentes em um objeto layer conforme a lista de índices, nomes e expressões definidas nos parâmetros passados como argumentos. | ||
| 190 | + * | ||
| 191 | + * Parametros: | ||
| 192 | + * | ||
| 193 | + * $ids - lista de ids, separados por vírgula, que identificam as classes no layer | ||
| 194 | + * | ||
| 195 | + * $nomes - lista com os novos nomes | ||
| 196 | + * | ||
| 197 | + * $exps - lista com as novas expressões | ||
| 198 | + * | ||
| 199 | + * $base64 sim|nao indica se as strings estao codificadas em base64 | ||
| 200 | + * | ||
| 201 | + * $minScales - lista com valores para minscaledenom | ||
| 202 | + * | ||
| 203 | + * $maxScales - lista com valores para maxscaledenom | ||
| 204 | + */ | ||
| 205 | + function alteraclasses($ids, $nomes, $exps, $base64 = "nao", $minScales = "", $maxScales = "") | ||
| 206 | + { | ||
| 207 | + if ($base64 == "sim") { | ||
| 208 | + // $ids = base64_decode($ids); | ||
| 209 | + // $nomes = base64_decode($nomes); | ||
| 210 | + // $exps = base64_decode($exps); | ||
| 211 | + } | ||
| 212 | + // prepara os arrays com os valores | ||
| 213 | + $ids = explode(";", $ids); | ||
| 214 | + $minScales = explode(";", $minScales); | ||
| 215 | + $maxScales = explode(";", $maxScales); | ||
| 587 | 216 | ||
| 588 | - $item - item da tabela de atributos | 217 | + $nomes = $this->converteTexto($nomes); |
| 218 | + $nomes = explode(";", $nomes); | ||
| 219 | + $exps = mb_convert_encoding($exps, "ISO-8859-1", "UTF-8"); | ||
| 220 | + $exps = explode(";", $exps); | ||
| 221 | + // pega os layers existentes no array ids e armazena no array t | ||
| 222 | + $c = count($ids); | ||
| 223 | + for ($i = 0; $i < $c; ++ $i) { | ||
| 224 | + $tx = explode("-", $ids[$i]); | ||
| 225 | + $t[] = $tx[0]; | ||
| 226 | + } | ||
| 227 | + // elimina nomes de layers duplicados | ||
| 228 | + $t = array_unique($t); | ||
| 229 | + // elimina as classes existentes atualmente em cada layer | ||
| 230 | + foreach ($t as $tema) { | ||
| 231 | + $layer = $this->mapa->getlayerbyname($tema); | ||
| 232 | + $layer->setmetadata("cache", ""); | ||
| 233 | + $nc = $layer->numclasses; | ||
| 234 | + if ($nc > 0) { | ||
| 235 | + for ($i = 0; $i < $nc; ++ $i) { | ||
| 236 | + $class = $layer->getclass($i); | ||
| 237 | + $class->set("status", MS_DELETE); | ||
| 238 | + } | ||
| 239 | + } | ||
| 240 | + } | ||
| 241 | + // acrescenta as classes definidas | ||
| 242 | + $c = count($ids); | ||
| 243 | + for ($i = 0; $i < $c; ++ $i) { | ||
| 244 | + $layerc = explode("-", $ids[$i]); // nome do layer é o indice 0 do array | ||
| 245 | + $layer = $this->mapa->getlayerbyname($layerc[0]); | ||
| 246 | + $layer->setMetaData("cache", ""); | ||
| 247 | + $ncl = $layer->numclasses; | ||
| 248 | + if ($layerc[1] < $ncl) { | ||
| 249 | + $classe = $layer->getclass($layerc[1]); | ||
| 250 | + $classe->set("status", MS_DEFAULT); | ||
| 251 | + $classe->set("name", $nomes[$i]); | ||
| 252 | + $e = $exps[$i]; | ||
| 253 | + $e = str_replace("\\", "'", $e); | ||
| 254 | + $e = str_replace('"', "'", $e); | ||
| 255 | + $e = str_replace("''", "'", $e); | ||
| 256 | + $e = str_replace("##", "'", $e); | ||
| 257 | + $classe->setexpression($e); | ||
| 258 | + if ($minScales[$i]) { | ||
| 259 | + if ($minScales[$i] == 0 || $minScales[$i] == "") { | ||
| 260 | + $minScales[$i] = - 1; | ||
| 261 | + } | ||
| 262 | + $classe->set("minscaledenom", $minScales[$i]); | ||
| 263 | + } | ||
| 264 | + if ($maxScales[$i]) { | ||
| 265 | + if ($maxScales[$i] == 0 || $maxScales[$i] == "") { | ||
| 266 | + $maxScales[$i] = - 1; | ||
| 267 | + } | ||
| 268 | + $classe->set("maxscaledenom", $maxScales[$i]); | ||
| 269 | + } | ||
| 270 | + } | ||
| 271 | + } | ||
| 272 | + } | ||
| 589 | 273 | ||
| 590 | - $nclasses - número de classes | 274 | + /* |
| 275 | + * function: intervalosiguais | ||
| 276 | + * | ||
| 277 | + * Cria classes em um objeto layer com intervalos iguais baseando-se em um item numérico na tabela de atributos com um número de classes fixos. | ||
| 278 | + * | ||
| 279 | + * Parametros: | ||
| 280 | + * | ||
| 281 | + * $item - item da tabela de atributos | ||
| 282 | + * | ||
| 283 | + * $nclasses - número de classes | ||
| 284 | + * | ||
| 285 | + * $ignorar - valor que será ignorado na listagem final | ||
| 286 | + */ | ||
| 287 | + function intervalosiguais($item, $nclasses, $ignorar) | ||
| 288 | + { | ||
| 289 | + if (! $this->layer) { | ||
| 290 | + return "erro"; | ||
| 291 | + } | ||
| 292 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, true, $ignorar); | ||
| 293 | + if (count($valores) > 0) { | ||
| 294 | + // calcula o menor valor e o maior valor | ||
| 295 | + $min = min($valores); | ||
| 296 | + $max = max($valores); | ||
| 297 | + $intervalo = ($max - $min) / $nclasses; | ||
| 298 | + $numclassesatual = $this->layer->numclasses; | ||
| 299 | + // apaga todas as classes existentes | ||
| 300 | + $classetemp = $this->layer->getClass(0); | ||
| 301 | + $estilotemp = $classetemp->getStyle(0); | ||
| 302 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 303 | + $classe = $this->layer->getClass($i); | ||
| 304 | + $classe->set("status", MS_DELETE); | ||
| 305 | + } | ||
| 306 | + // adiciona as classes novas | ||
| 307 | + $intatual = $min; | ||
| 308 | + for ($i = 0; $i < $nclasses; ++ $i) { | ||
| 309 | + if ($i == $nclasses - 1) { | ||
| 310 | + $expressao = "(([" . $item . "]>=" . $intatual . ")and([" . $item . "]<=" . ($intatual + $intervalo) . "))"; | ||
| 311 | + } else { | ||
| 312 | + $expressao = "(([" . $item . "]>=" . $intatual . ")and([" . $item . "]<" . ($intatual + $intervalo) . "))"; | ||
| 313 | + } | ||
| 314 | + $nomeclasse = ">= " . $intatual . " e < que " . ($intatual + $intervalo); | ||
| 315 | + $intatual = $intatual + $intervalo; | ||
| 316 | + $classe = ms_newClassObj($this->layer); | ||
| 317 | + $novoestilo = ms_newStyleObj($classe); | ||
| 318 | + if ($this->layer->type == 0) { | ||
| 319 | + $novoestilo->set("symbolname", "ponto"); | ||
| 320 | + $novoestilo->set("size", "6"); | ||
| 321 | + } | ||
| 322 | + $ncor = $novoestilo->color; | ||
| 323 | + $ncor->setrgb((mt_rand(0, 255)), (mt_rand(0, 255)), (mt_rand(0, 255))); | ||
| 324 | + $ncor = $novoestilo->outlinecolor; | ||
| 325 | + $ncor->setrgb(255, 255, 255); | ||
| 326 | + $classe->setexpression($expressao); | ||
| 327 | + $classe->set("name", $nomeclasse); | ||
| 328 | + $classe->set("title", ($this->layer->name) . "+" . $i); | ||
| 329 | + } | ||
| 330 | + $this->layer->setMetaData("cache", ""); | ||
| 331 | + return ("ok"); | ||
| 332 | + } else { | ||
| 333 | + return ("erro. Nenhum valor numerico no item"); | ||
| 334 | + } | ||
| 335 | + } | ||
| 591 | 336 | ||
| 592 | - $ignorar - valor que será ignorado na listagem final | ||
| 593 | - */ | ||
| 594 | - function quebrasnaturais($item,$nclasses,$ignorar) | ||
| 595 | - { | ||
| 596 | - if(!$this->layer){ | ||
| 597 | - return "erro"; | ||
| 598 | - } | ||
| 599 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar); | ||
| 600 | - if (count($valores) > 0){ | ||
| 601 | - include(dirname(__FILE__)."/../pacotes/jenks-master/jenks.php"); | ||
| 602 | - $classBreaks = getJenksClasses($nclasses, $valores); | ||
| 603 | - //echo "<pre>";var_dump($classBreaks);exit; | ||
| 604 | - $numclassesatual = $this->layer->numclasses; | ||
| 605 | - //apaga todas as classes existentes | ||
| 606 | - $classetemp = $this->layer->getClass(0); | ||
| 607 | - $estilotemp = $classetemp->getStyle(0); | ||
| 608 | - for ($i=0; $i < $numclassesatual; ++$i){ | ||
| 609 | - $classe = $this->layer->getClass($i); | ||
| 610 | - $classe->set("status",MS_DELETE); | ||
| 611 | - } | ||
| 612 | - //adiciona as classes novas | ||
| 613 | - for ($i=0; $i < $nclasses; ++$i){ | ||
| 614 | - $expressao = "(([".$item."]>".$classBreaks[$i].")and([".$item."]<=".$classBreaks[$i + 1]."))"; | ||
| 615 | - $nomeclasse = "> ".$classBreaks[$i]." e <= que ".($classBreaks[$i + 1]); | ||
| 616 | - if($i == 0){ | ||
| 617 | - $expressao = "([".$item."]<=".$classBreaks[$i + 1].")"; | ||
| 618 | - $nomeclasse = "<= que ".($classBreaks[$i + 1]); | ||
| 619 | - } | ||
| 620 | - if($i == ($nclasses - 1)){ | ||
| 621 | - $expressao = "([".$item."] >=".$classBreaks[$i].")"; | ||
| 622 | - $nomeclasse = ">= que ".($classBreaks[$i]); | ||
| 623 | - } | ||
| 624 | - $classe = ms_newClassObj($this->layer); | ||
| 625 | - $novoestilo = ms_newStyleObj($classe); | ||
| 626 | - if ($this->layer->type == 0){ | ||
| 627 | - $novoestilo->set("symbolname","ponto"); | ||
| 628 | - $novoestilo->set("size","6"); | ||
| 629 | - } | ||
| 630 | - $ncor = $novoestilo->color; | ||
| 631 | - $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255))); | ||
| 632 | - $ncor = $novoestilo->outlinecolor; | ||
| 633 | - $ncor->setrgb(255,255,255); | ||
| 634 | - $classe->setexpression($expressao); | ||
| 635 | - $classe->set("name",$nomeclasse); | ||
| 636 | - //$classe->set("title",($this->layer->name)."+".$i); | ||
| 637 | - } | ||
| 638 | - $this->layer->setMetaData("cache",""); | ||
| 639 | - return ("ok"); | ||
| 640 | - } | ||
| 641 | - else{ | ||
| 642 | - return ("erro. Nenhum valor numerico no item"); | ||
| 643 | - } | ||
| 644 | - } | ||
| 645 | - | ||
| 646 | - /* | ||
| 647 | - function: quartis | ||
| 648 | - | ||
| 649 | - Cria classes em um objeto layer com intervalos em quartis baseando-se em um item numérico na tabela de atributos com um número de classes fixos. | ||
| 650 | - | ||
| 651 | - Parametros: | ||
| 652 | - | ||
| 653 | - $item - Item da tabela de atributos utilizado para gerar as classes. | ||
| 654 | - | ||
| 655 | - $ignorar - valor que será ignorado na listagem final | ||
| 656 | - | ||
| 657 | - $tipoLegenda - tipo de texto que será incluído no nome de cada classe completo|simples|minimo | ||
| 658 | - | ||
| 659 | - Include: | ||
| 660 | - <classe_estatistica.php> | ||
| 661 | - */ | ||
| 662 | - function quartis($item,$ignorar="",$tipoLegenda="minimo") | ||
| 663 | - { | ||
| 664 | - if(!$this->layer){ | ||
| 665 | - return "erro"; | ||
| 666 | - } | ||
| 667 | - | ||
| 668 | - $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar); | ||
| 669 | - if (count($valores) > 0) | ||
| 670 | - { | ||
| 671 | - if(file_exists($this->locaplic."/classe_estatistica.php")) | ||
| 672 | - include_once($this->locaplic."/classe_estatistica.php"); | ||
| 673 | - else | ||
| 674 | - include_once("classe_estatistica.php"); | ||
| 675 | - $estat = new estatistica(); | ||
| 676 | - $estat->calcula($valores); | ||
| 677 | - $calc = $estat->resultado; | ||
| 678 | - $numclassesatual = $this->layer->numclasses; | ||
| 679 | - //apaga todas as classes existentes | ||
| 680 | - $classetemp = $this->layer->getClass(0); | ||
| 681 | - for ($i=0; $i < $numclassesatual; ++$i) | ||
| 682 | - { | ||
| 683 | - $classe = $this->layer->getClass($i); | ||
| 684 | - $classe->set("status",MS_DELETE); | ||
| 685 | - } | ||
| 686 | - //adiciona as classes novas | ||
| 687 | - $expressao[] = "([".$item."]<=".($calc["quartil1"]).")"; | ||
| 688 | - $expressao[] = "(([".$item."]>".($calc["quartil1"]).")and([".$item."]<=".($calc["quartil2"])."))"; | ||
| 689 | - if($calc["quartil3"] != 0){ | ||
| 690 | - $expressao[] = "(([".$item."]>".($calc["quartil2"]).")and([".$item."]<=".($calc["quartil3"])."))"; | ||
| 691 | - $expressao[] = "([".$item."]>".($calc["quartil3"]).")"; | ||
| 692 | - } | ||
| 693 | - $nomes[] = "<= ".($calc["quartil1"]); | ||
| 694 | - $nomes[] = "> ".($calc["quartil1"])." e <= ".($calc["quartil2"]); | ||
| 695 | - if($calc["quartil3"] != 0){ | ||
| 696 | - $nomes[] = "> ".($calc["quartil2"])." e <= ".($calc["quartil3"]); | ||
| 697 | - $nomes[] = "> ".($calc["quartil3"]); | ||
| 698 | - } | ||
| 699 | - $vcor = array(250,230,150,0); | ||
| 700 | - for ($i=0;$i < count($nomes);++$i) | ||
| 701 | - { | ||
| 702 | - $classe = ms_newClassObj($this->layer); | ||
| 703 | - $novoestilo = ms_newStyleObj($classe); | ||
| 704 | - if ($this->layer->type == 0) | ||
| 705 | - { | ||
| 706 | - $novoestilo->set("symbolname","ponto"); | ||
| 707 | - $novoestilo->set("size","6"); | ||
| 708 | - } | ||
| 709 | - $classe->setexpression($expressao[$i]); | ||
| 710 | - if($tipoLegenda == "completo") | ||
| 711 | - { | ||
| 712 | - $nomeClasse = "Quartil ".($i+1)." ".$expressao[$i]; | ||
| 713 | - } | ||
| 714 | - if($tipoLegenda == "simples") | ||
| 715 | - { | ||
| 716 | - $nomeClasse = "Quartil ".($i+1)." ".$nomes[$i]; | ||
| 717 | - } | ||
| 718 | - if($tipoLegenda == "minimo" || $tipoLegenda == "") | ||
| 719 | - { | ||
| 720 | - $nomeClasse = $nomes[$i]; | ||
| 721 | - } | ||
| 722 | - | ||
| 723 | - $classe->set("name",$nomeClasse); | ||
| 724 | - $ncor = $novoestilo->color; | ||
| 725 | - $ncor->setrgb(255,$vcor[$i],$vcor[$i]); | ||
| 726 | - $ncor = $novoestilo->outlinecolor; | ||
| 727 | - $ncor->setrgb(255,255,255); | ||
| 728 | - } | ||
| 729 | - $this->layer->setMetaData("cache",""); | ||
| 730 | - return ("ok"); | ||
| 731 | - } | ||
| 732 | - else | ||
| 733 | - {return ("erro. Nenhum valor numerico no item"); | ||
| 734 | - } | ||
| 735 | - } | ||
| 736 | - /* | ||
| 737 | - function: valorunico | ||
| 738 | - | ||
| 739 | - Cria classes em um objeto layer baseando-se em um item na tabela de atributos. | ||
| 740 | - | ||
| 741 | - Para cada ocorrência de um valor é acrescentada uma classe. | ||
| 742 | - | ||
| 743 | - Parametros: | ||
| 744 | - | ||
| 745 | - $item - Item da tabela de atributos utilizado para gerar as classes. | ||
| 746 | - | ||
| 747 | - $ignorar - valor que será ignorado na listagem final | ||
| 748 | - | ||
| 749 | - $itemNome - item que será usado para definir os nomes das classes (por default será igual a $item) | ||
| 750 | - */ | ||
| 751 | - function valorunico($item,$ignorar,$itemNome="") | ||
| 752 | - { | ||
| 753 | - if(!$this->layer){ | ||
| 754 | - return "erro"; | ||
| 755 | - } | ||
| 756 | - if($itemNome == "" || $ignorar != "") | ||
| 757 | - { | ||
| 758 | - $itemNome = $item; | ||
| 759 | - } | ||
| 760 | - // pega valores | ||
| 761 | - $vs = $this->pegaValores($this->mapa,$this->layer,$item,false,$ignorar); | ||
| 762 | - if ($item == $itemNome) | ||
| 763 | - { | ||
| 764 | - $ns = $vs; | ||
| 765 | - } | ||
| 766 | - else{ | ||
| 767 | - $ns = $this->pegaValores($this->mapa,$this->layer,$itemNome,false,$ignorar); | ||
| 768 | - } | ||
| 769 | - $lista = array(); | ||
| 770 | - for ($i = 0; $i < count($vs); ++$i){ | ||
| 771 | - $temp[$vs[$i]] = $ns[$i]; | ||
| 772 | - } | ||
| 773 | - $valores = array_keys($temp); | ||
| 774 | - $nomes = array(); | ||
| 775 | - foreach($temp as $t) | ||
| 776 | - { | ||
| 777 | - $nomes[] = $t; | ||
| 778 | - } | ||
| 779 | - $nclassexist = $this->layer->numclasses; | ||
| 780 | - if ($nclassexist > count($valores)) | ||
| 781 | - { | ||
| 782 | - $nclassexist = count($valores); | ||
| 783 | - } | ||
| 784 | - if($this->layer->numclasses == 0) | ||
| 785 | - { | ||
| 786 | - $temp = ms_newClassObj($this->layer); | ||
| 787 | - ms_newStyleObj($temp); | ||
| 788 | - } | ||
| 789 | - // cria classes | ||
| 790 | - $classes = array(); | ||
| 791 | - $classpadrao = $this->layer->getClass(0); | ||
| 792 | - for ($i = 0; $i < $nclassexist; ++$i) | ||
| 793 | - { | ||
| 794 | - $classes[$i] = $this->layer->getClass($i); | ||
| 795 | - } | ||
| 796 | - $c = $this->layer->numclasses; | ||
| 797 | - for ($i = 0; $i < $c; ++$i) // apaga classes atuais | ||
| 798 | - { | ||
| 799 | - $cl = $this->layer->getClass($i); | ||
| 800 | - $cl->set("status",MS_DELETE); | ||
| 801 | - } | ||
| 802 | - $c = count($valores); | ||
| 803 | - for ($i = 0; $i < $c; ++$i) | ||
| 804 | - { | ||
| 805 | - $classes[$i] = ms_newClassObj($this->layer); | ||
| 806 | - $newstyle = ms_newStyleObj($classes[$i]); | ||
| 807 | - } | ||
| 808 | - for ($i = 0; $i < $c; ++$i) | ||
| 809 | - { | ||
| 810 | - $e = "('[".$item."]'eq'".$valores[$i]."')"; | ||
| 811 | - $ca = $classes[$i]; | ||
| 812 | - $ca->setexpression($e); | ||
| 813 | - $texto = $this->converteTexto($nomes[$i]); | ||
| 814 | - $ca->set("name",$texto); | ||
| 815 | - $estilo = $classes[$i]->getStyle(0); | ||
| 816 | - $ncor = $estilo->color; | ||
| 817 | - $ncor->setrgb((mt_rand(0,255)),(mt_rand(0,255)),(mt_rand(0,255))); | ||
| 818 | - $ncor = $estilo->outlinecolor; | ||
| 819 | - $ncor->setrgb(255,255,255); | ||
| 820 | - if ($this->layer->type == 0) //tipo ponto | ||
| 821 | - { | ||
| 822 | - $estilo->set("symbolname","ponto"); | ||
| 823 | - $estilo->set("size",6); | ||
| 824 | - } | ||
| 825 | - //$c->set("title",$tema."+".$i); | ||
| 826 | - } | ||
| 827 | - $this->layer->setMetaData("cache",""); | ||
| 828 | - return("ok"); | ||
| 829 | - } | ||
| 830 | - /* | ||
| 831 | - function: adicionaclasse | ||
| 832 | - | ||
| 833 | - Adiciona uma nova classe em um objeto layer | ||
| 834 | - | ||
| 835 | - A nova classe será uma c�pia da classe 0. | ||
| 836 | - */ | ||
| 837 | - function adicionaclasse() | ||
| 838 | - { | ||
| 839 | - if(!$this->layer){ | ||
| 840 | - return "erro"; | ||
| 841 | - } | ||
| 842 | - $classe = $this->layer->getclass(0); | ||
| 843 | - $c = ms_newClassObj($this->layer, $classe); | ||
| 844 | - $this->layer->setMetaData("cache",""); | ||
| 845 | - return("ok"); | ||
| 846 | - } | ||
| 847 | - /* | ||
| 848 | - function: sobeclasse | ||
| 849 | - | ||
| 850 | - Sobe uma classe na ordem de desenho | ||
| 851 | - | ||
| 852 | - Parametro: | ||
| 853 | - | ||
| 854 | - $idclasse {numerico} - id da classe (índice) | ||
| 855 | - */ | ||
| 856 | - function sobeclasse($idclasse) | ||
| 857 | - { | ||
| 858 | - if(!$this->layer){ | ||
| 859 | - return "erro"; | ||
| 860 | - } | ||
| 861 | - $this->layer->moveclassup($idclasse); | ||
| 862 | - return("ok"); | ||
| 863 | - } | ||
| 864 | - /* | ||
| 865 | - function: desceclasse | ||
| 866 | - | ||
| 867 | - Desce uma classe na ordem de desenho | ||
| 868 | - | ||
| 869 | - Parametro: | ||
| 870 | - | ||
| 871 | - $idclasse {numerico} - id da classe (índice) | ||
| 872 | - */ | ||
| 873 | - function desceclasse($idclasse) | ||
| 874 | - { | ||
| 875 | - if(!$this->layer){ | ||
| 876 | - return "erro"; | ||
| 877 | - } | ||
| 878 | - $this->layer->moveclassdown($idclasse); | ||
| 879 | - return("ok"); | ||
| 880 | - } | ||
| 881 | - /* | ||
| 882 | - function: adicionaopacidade | ||
| 883 | - | ||
| 884 | - Adiciona opacidade variável de 0 a 100 conforme o número de classes | ||
| 885 | - | ||
| 886 | - */ | ||
| 887 | - function adicionaopacidade() | ||
| 888 | - { | ||
| 889 | - //error_reporting(0); | ||
| 890 | - if(!$this->layer){ | ||
| 891 | - return "erro"; | ||
| 892 | - } | ||
| 893 | - $numclasses = $this->layer->numclasses; | ||
| 894 | - $n = intval(100 / $numclasses); | ||
| 895 | - for($i=0;$i<$numclasses;++$i) | ||
| 896 | - { | ||
| 897 | - $classe = $this->layer->getclass($i); | ||
| 898 | - $numestilos = $classe->numstyles; | ||
| 899 | - $o = ($i * $n) + 5; | ||
| 900 | - for($j=0;$j<$numestilos;++$j) | ||
| 901 | - { | ||
| 902 | - $estilo = $classe->getstyle($j); | ||
| 903 | - $estilo->set("opacity",$o); | ||
| 904 | - } | ||
| 905 | - } | ||
| 906 | - $this->layer->setMetaData("cache",""); | ||
| 907 | - return("ok"); | ||
| 908 | - } | ||
| 909 | - /* | ||
| 910 | - function: alteracor | ||
| 911 | - | ||
| 912 | - Aplica uma nova cor aos estilos de uma classe | ||
| 913 | - | ||
| 914 | - Parametros: | ||
| 915 | - | ||
| 916 | - $idclasse {numerico} - id da classe (índice) | ||
| 917 | - | ||
| 918 | - $cor {string} - cor rgb | ||
| 919 | - */ | ||
| 920 | - function alteracor($idclasse,$cor) | ||
| 921 | - { | ||
| 922 | - //error_reporting(0); | ||
| 923 | - if(!$this->layer){ | ||
| 924 | - return "erro"; | ||
| 925 | - } | ||
| 926 | - $numclasses = $this->layer->numclasses; | ||
| 927 | - $cor = str_replace(" ",",",$cor); | ||
| 928 | - $cor = explode(",",$cor); | ||
| 929 | - $classe = $this->layer->getclass($idclasse); | ||
| 930 | - $numestilos = $classe->numstyles; | ||
| 931 | - for($j=0;$j<$numestilos;++$j) | ||
| 932 | - { | ||
| 933 | - $estilo = $classe->getstyle($j); | ||
| 934 | - $ncor = $estilo->color; | ||
| 935 | - $ncor->setrgb($cor[0],$cor[1],$cor[2]); | ||
| 936 | - } | ||
| 937 | - $this->layer->setMetaData("cache",""); | ||
| 938 | - return("ok"); | ||
| 939 | - } | ||
| 940 | - /* | ||
| 941 | - function: alterageometria | ||
| 942 | - | ||
| 943 | - Altera a geometria de representação de todos os estilos de todas as classes de um layer | ||
| 944 | - | ||
| 945 | - Parametro: | ||
| 946 | - | ||
| 947 | - $tipo {string} - tipo de representação | ||
| 948 | - */ | ||
| 949 | - function alterageometria($tipo) | ||
| 950 | - { | ||
| 951 | - //error_reporting(0); | ||
| 952 | - if(!$this->layer){ | ||
| 953 | - return "erro"; | ||
| 954 | - } | ||
| 955 | - $numclasses = $this->layer->numclasses; | ||
| 956 | - for($i=0;$i<$numclasses;++$i) | ||
| 957 | - { | ||
| 958 | - $classe = $this->layer->getclass($i); | ||
| 959 | - $numestilos = $classe->numstyles; | ||
| 960 | - for($j=0;$j<$numestilos;++$j) | ||
| 961 | - { | ||
| 962 | - $estilo = $classe->getstyle($j); | ||
| 963 | - $s = "STYLE geomtransform '$tipo' END"; | ||
| 964 | - $estilo->updateFromString($s); | ||
| 965 | - } | ||
| 966 | - } | ||
| 967 | - $this->layer->setMetaData("cache",""); | ||
| 968 | - return("ok"); | ||
| 969 | - } | ||
| 970 | - /* | ||
| 971 | - function: alteraCoresClasses | ||
| 972 | - | ||
| 973 | - Altera as cores das classes existentes em um objeto layer gerando uma paleta de cores de acordo com um valor inicial e final. | ||
| 974 | - | ||
| 975 | - Parametros: | ||
| 976 | - | ||
| 977 | - $cori - cor inicial. | ||
| 978 | - | ||
| 979 | - $corf - cor final. | ||
| 980 | - | ||
| 981 | - Include: | ||
| 982 | - <class.palette.php> | ||
| 983 | - */ | ||
| 984 | - function alteraCoresClasses($cori,$corf) | ||
| 985 | - { | ||
| 986 | - if(!$this->layer){ | ||
| 987 | - return "erro"; | ||
| 988 | - } | ||
| 989 | - if(file_exists($this->locaplic."/class.palette.php")) | ||
| 990 | - include_once($this->locaplic."/class.palette.php"); | ||
| 991 | - else | ||
| 992 | - include_once("class.palette.php"); | ||
| 993 | - | ||
| 994 | - $cori = RGB2hex(explode(",",$cori)); | ||
| 995 | - $corf = RGB2hex(explode(",",$corf)); | ||
| 996 | - $numclasses = $this->layer->numclasses; | ||
| 997 | - $myPalette=new palette(array($cori,$corf),($numclasses + 1)); | ||
| 998 | - $cores = $myPalette->colorRGB; | ||
| 999 | - for($i=0;$i<$numclasses;++$i) | ||
| 1000 | - { | ||
| 1001 | - $classe = $this->layer->getclass($i); | ||
| 1002 | - $estilo = $classe->getstyle(0); | ||
| 1003 | - $corpaleta = $cores[$i]; | ||
| 1004 | - if ($this->layer->type == MS_LAYER_LINE) | ||
| 1005 | - { | ||
| 1006 | - $cor = $estilo->outlinecolor; | ||
| 1007 | - $cor->setrgb($corpaleta[0],$corpaleta[1],$corpaleta[2]); | ||
| 1008 | - } | ||
| 1009 | - $cor = $estilo->color; | ||
| 1010 | - $cor->setrgb($corpaleta[0],$corpaleta[1],$corpaleta[2]); | ||
| 1011 | - } | ||
| 1012 | - $this->layer->setMetaData("cache",""); | ||
| 1013 | - return("ok"); | ||
| 1014 | - } | ||
| 1015 | - /* | ||
| 1016 | - function: inverteCoresClasses | ||
| 1017 | - | ||
| 1018 | - Inverte as cores da legenda de um tema. | ||
| 1019 | - */ | ||
| 1020 | - function inverteCoresClasses(){ | ||
| 1021 | - if(!$this->layer){ | ||
| 1022 | - return "erro"; | ||
| 1023 | - } | ||
| 1024 | - $numclasses = $this->layer->numclasses; | ||
| 1025 | - $cor = array(); | ||
| 1026 | - for($i=0;$i<$numclasses;++$i){ | ||
| 1027 | - $classe = $this->layer->getclass($i); | ||
| 1028 | - $estilo = $classe->getstyle(0); | ||
| 1029 | - $c = $estilo->color; | ||
| 1030 | - $cor[] = array( | ||
| 1031 | - "r"=>($c->red), | ||
| 1032 | - "g"=>($c->green), | ||
| 1033 | - "b"=>($c->blue) | ||
| 1034 | - ); | ||
| 1035 | - } | ||
| 1036 | - $cor = array_reverse($cor); | ||
| 1037 | - for($i=0;$i<$numclasses;++$i){ | ||
| 1038 | - $classe = $this->layer->getclass($i); | ||
| 1039 | - $c = $cor[$i]; | ||
| 1040 | - $estilo = $classe->getstyle(0); | ||
| 1041 | - $ncor = $estilo->color; | ||
| 1042 | - $ncor->setrgb($c["r"],$c["g"],$c["b"]); | ||
| 1043 | - } | ||
| 1044 | - $this->layer->setMetaData("cache",""); | ||
| 1045 | - return("ok"); | ||
| 1046 | - } | ||
| 1047 | - /* | ||
| 1048 | - function: calculaTamanhoClasses | ||
| 1049 | - | ||
| 1050 | - Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo. | ||
| 1051 | - */ | ||
| 1052 | - function calculaTamanhoClasses() | ||
| 1053 | - { | ||
| 1054 | - if(!$this->layer){ | ||
| 1055 | - return "erro"; | ||
| 1056 | - } | ||
| 1057 | - $numclasses = $this->layer->numclasses; | ||
| 1058 | - for($i=0;$i<$numclasses;++$i) | ||
| 1059 | - { | ||
| 1060 | - $classe = $this->layer->getclass($i); | ||
| 1061 | - $estilo = $classe->getstyle(0); | ||
| 1062 | - $estilo->set("size",($i+1)); | ||
| 1063 | - if ($estilo->symbolname == "") | ||
| 1064 | - { | ||
| 1065 | - if ($this->layer->type == MS_LAYER_LINE) | ||
| 1066 | - { | ||
| 1067 | - $estilo->set("symbolname","linha"); | ||
| 1068 | - } | ||
| 1069 | - if ($this->layer->type == MS_LAYER_POINT) | ||
| 1070 | - { | ||
| 1071 | - $estilo->set("symbolname","ponto"); | ||
| 1072 | - } | ||
| 1073 | - if ($this->layer->type == MS_LAYER_POLYGON) | ||
| 1074 | - { | ||
| 1075 | - $estilo->set("symbolname","p4"); | ||
| 1076 | - } | ||
| 1077 | - } | ||
| 1078 | - } | ||
| 1079 | - $this->layer->setMetaData("cache",""); | ||
| 1080 | - return("ok"); | ||
| 1081 | - } | ||
| 1082 | - /* | ||
| 1083 | - function: ordenaClasses | 337 | + /* |
| 338 | + * function: metade | ||
| 339 | + * | ||
| 340 | + * Classifica os dados em duas classes, a primeira concentra os registros que somados correspondem à primeira metade do total e a segunda classe corresponde à segunda metade | ||
| 341 | + * | ||
| 342 | + * Parametros: | ||
| 343 | + * | ||
| 344 | + * $item - item da tabela de atributos | ||
| 345 | + * | ||
| 346 | + * $itemid - item que identifica unicamente cada registro | ||
| 347 | + * | ||
| 348 | + * $ignorar - valor que será ignorado na listagem final | ||
| 349 | + */ | ||
| 350 | + function metade($item, $itemid, $ignorar) | ||
| 351 | + { | ||
| 352 | + if (! $this->layer) { | ||
| 353 | + return "erro"; | ||
| 354 | + } | ||
| 355 | + // cria um array contendo o id como chave e o valor | ||
| 356 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, true, $ignorar); | ||
| 357 | + $ids = $this->pegaValores($this->mapa, $this->layer, $itemid, false, $ignorar); | ||
| 358 | + $lista = array(); | ||
| 359 | + for ($i = 0; $i < count($valores); ++ $i) { | ||
| 360 | + $lista[$ids[$i]] = $valores[$i]; | ||
| 361 | + } | ||
| 1084 | 362 | ||
| 1085 | - Ordena as classes pelo nome | ||
| 1086 | - */ | ||
| 1087 | - function ordenaClasses() | ||
| 1088 | - { | ||
| 1089 | - if(!$this->layer){ | ||
| 1090 | - return "erro"; | ||
| 1091 | - } | ||
| 1092 | - $numclasses = $this->layer->numclasses; | ||
| 1093 | - if($numclasses == 1){ | ||
| 1094 | - return("ok"); | ||
| 1095 | - } | ||
| 1096 | - //pega o nome das classes | ||
| 1097 | - $nomes = array(); | ||
| 1098 | - for($i=0;$i<$numclasses;$i++){ | ||
| 1099 | - $classe = $this->layer->getclass($i); | ||
| 1100 | - $nomes[$classe->name] = $classe->convertToString(); | ||
| 1101 | - } | ||
| 1102 | - ksort($nomes); | ||
| 1103 | - $indice = 0; | ||
| 1104 | - foreach($nomes as $n){ | ||
| 1105 | - $classe = $this->layer->getclass($indice); | ||
| 1106 | - $classe->updatefromstring($n); | ||
| 1107 | - $indice++; | ||
| 1108 | - } | ||
| 1109 | - $this->layer->setMetaData("cache",""); | ||
| 1110 | - return("ok"); | ||
| 1111 | - } | ||
| 1112 | - /* | ||
| 1113 | - function: statusClasse | ||
| 1114 | - | ||
| 1115 | - Inverte o status a uma classe desligando ou desligando, conforme o status atual. | ||
| 1116 | - | ||
| 1117 | - Parametros: | ||
| 1118 | - | ||
| 1119 | - $classe - id da classe | ||
| 1120 | - | ||
| 1121 | - */ | ||
| 1122 | - function statusClasse($classe) | ||
| 1123 | - { | ||
| 1124 | - // | ||
| 1125 | - //na versão 6 do Mapserver as classes não obedecem o OFF ou ON em arquivos RASTER. Foi necessário contornar o problema usando um metadata | ||
| 1126 | - // | ||
| 1127 | - if(!$this->layer){ | ||
| 1128 | - return "erro"; | ||
| 1129 | - } | ||
| 1130 | - $cl = $this->layer->getclass($classe); | ||
| 1131 | - $status = $cl->status; | ||
| 1132 | - echo $status; | ||
| 1133 | - if ($status == MS_OFF){ | ||
| 1134 | - $cl->set("status",MS_ON); | ||
| 1135 | - if($this->layer->type == 3){ | ||
| 1136 | - $e = $cl->getstyle(0); | ||
| 1137 | - $e->set("opacity",100); | ||
| 1138 | - } | ||
| 1139 | - } | ||
| 1140 | - else{ | ||
| 1141 | - $cl->set("status",MS_OFF); | ||
| 1142 | - if($this->layer->type == 3){ | ||
| 1143 | - $e = $cl->getstyle(0); | ||
| 1144 | - $e->set("opacity",0); | ||
| 1145 | - } | ||
| 1146 | - } | ||
| 1147 | - $this->layer->setMetaData("cache",""); | ||
| 1148 | - return("ok"); | ||
| 1149 | - } | ||
| 1150 | - /* | ||
| 1151 | - Function: pegaValores | ||
| 1152 | - | ||
| 1153 | - Pega os valores de um item de um tema. | ||
| 1154 | - | ||
| 1155 | - Parametros: | ||
| 1156 | - | ||
| 1157 | - $layer {objeto} - Layer que será processado. | ||
| 1158 | - | ||
| 1159 | - $item {string} - Item que será processado. | ||
| 1160 | - | ||
| 1161 | - $numerico {boleano} - O item e numerico (true ou false). | ||
| 1162 | - | ||
| 1163 | - $ignorar {string} - valor que será ignorado na listagem final | ||
| 1164 | - | ||
| 1165 | - Retorno: | ||
| 1166 | - | ||
| 1167 | - {array} | ||
| 1168 | - */ | ||
| 1169 | - function pegaValores($mapa,$layer,$item,$numerico=false,$ignorar="") | ||
| 1170 | - { | ||
| 1171 | - $layer->set("template","none.htm"); | ||
| 1172 | - //$layer->setfilter(""); | ||
| 1173 | - $versao = versao(); | ||
| 1174 | - $versao = $versao["principal"]; | ||
| 1175 | - $ignorararray = explode(",",$ignorar); | ||
| 1176 | - if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS) | ||
| 1177 | - { | ||
| 1178 | - if($layer->type == MS_LAYER_RASTER){ | ||
| 1179 | - if($item == "pixel"){ | ||
| 1180 | - $item = "value_0"; | ||
| 1181 | - } | ||
| 1182 | - } | ||
| 1183 | - | ||
| 1184 | - $sopen = $layer->open(); | ||
| 1185 | - if($sopen == MS_FAILURE){ | ||
| 1186 | - return "erro"; | ||
| 1187 | - } | ||
| 1188 | - $res_count = $layer->getNumresults(); | ||
| 1189 | - $valitem = array(); | ||
| 1190 | - for ($i=0;$i<$res_count;++$i) | ||
| 1191 | - { | ||
| 1192 | - if($versao >= 6) | ||
| 1193 | - { | ||
| 1194 | - $shape = $layer->getShape($layer->getResult($i)); | ||
| 1195 | - } | ||
| 1196 | - else{ | ||
| 1197 | - $result = $layer->getResult($i); | ||
| 1198 | - $shp_index = $result->shapeindex; | ||
| 1199 | - $shape = $layer->getfeature($shp_index,-1); | ||
| 1200 | - } | ||
| 1201 | - $v = trim($shape->values[$item]); | ||
| 1202 | - if ($numerico) | ||
| 1203 | - { | ||
| 1204 | - if (is_numeric($v)) | ||
| 1205 | - { | ||
| 1206 | - if ($ignorar == "") | ||
| 1207 | - { | ||
| 1208 | - $valitem[] = $v; | ||
| 1209 | - } | ||
| 1210 | - else | ||
| 1211 | - { | ||
| 1212 | - //if ($v != $ignorar) | ||
| 1213 | - if(!in_array($v,$ignorararray)) | ||
| 1214 | - { | ||
| 1215 | - $valitem[] = $v; | ||
| 1216 | - } | ||
| 1217 | - } | ||
| 1218 | - } | ||
| 1219 | - } | ||
| 1220 | - else | ||
| 1221 | - { | ||
| 1222 | - if ($ignorar == "") | ||
| 1223 | - { | ||
| 1224 | - $valitem[] = $v; | ||
| 1225 | - } | ||
| 1226 | - else | ||
| 1227 | - { | ||
| 1228 | - if(!in_array($v,$ignorararray)) | ||
| 1229 | - { | ||
| 1230 | - $valitem[] = $v; | ||
| 1231 | - } | ||
| 1232 | - } | ||
| 1233 | - } | ||
| 1234 | - } | ||
| 1235 | - $fechou = $layer->close(); | ||
| 1236 | - } | ||
| 1237 | - $layer->close(); | ||
| 1238 | - return ($valitem); | ||
| 1239 | - } | ||
| 1240 | - /* | ||
| 1241 | - Function: converteTexto | 363 | + if (count($lista) > 0) { |
| 364 | + asort($lista); | ||
| 365 | + // $valores = array_unique($valores); | ||
| 366 | + $numValues = count($lista); | ||
| 367 | + // soma os valores | ||
| 368 | + $total = array_sum($lista); | ||
| 369 | + // metade | ||
| 370 | + $metade = $total / 2; | ||
| 371 | + // separa os dados em dois conjuntos | ||
| 372 | + $metadeInf = array(); | ||
| 373 | + $metadeSup = array(); | ||
| 374 | + $IdNumerico = true; | ||
| 375 | + $soma = 0; | ||
| 376 | + $somaInf = 0; | ||
| 377 | + $somaSup = 0; | ||
| 378 | + $maxMetade1 = 0; | ||
| 379 | + foreach ($lista as $k => $v) { | ||
| 380 | + $soma = $soma + $v; | ||
| 381 | + if ($soma < $metade) { | ||
| 382 | + $metadeInf[] = $k; | ||
| 383 | + $somaInf = $soma; | ||
| 384 | + $maxMetade1 = $v; | ||
| 385 | + } else { | ||
| 386 | + $metadeSup[] = $k; | ||
| 387 | + $somaSup = $somaSup + $v; | ||
| 388 | + } | ||
| 389 | + } | ||
| 390 | + $percInf = ($somaInf * 100) / $total; | ||
| 391 | + $percSup = ($somaSup * 100) / $total; | ||
| 1242 | 392 | ||
| 1243 | - Converte uma string de ISO-8859-1 para UTF-8 | 393 | + $numclassesatual = $this->layer->numclasses; |
| 394 | + // apaga todas as classes existentes | ||
| 395 | + $classetemp = $this->layer->getClass(0); | ||
| 396 | + $estilotemp = $classetemp->getStyle(0); | ||
| 397 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 398 | + $classe = $this->layer->getClass($i); | ||
| 399 | + $classe->set("status", MS_DELETE); | ||
| 400 | + } | ||
| 401 | + // adiciona as classes novas | ||
| 402 | + $expressao = "('[" . $itemid . "]'in'" . implode(",", $metadeInf) . "')"; | ||
| 403 | + $nomeclasse = "Tot " . $somaInf . ' (' . round($percInf, 2) . '%) Max: ' . $maxMetade1; | ||
| 404 | + $classe = ms_newClassObj($this->layer); | ||
| 405 | + $novoestilo = ms_newStyleObj($classe); | ||
| 406 | + if ($this->layer->type == 0) { | ||
| 407 | + $novoestilo->set("symbolname", "ponto"); | ||
| 408 | + $novoestilo->set("size", "6"); | ||
| 409 | + } | ||
| 410 | + $ncor = $novoestilo->color; | ||
| 411 | + $ncor->setrgb(246, 183, 134); | ||
| 412 | + $ncor = $novoestilo->outlinecolor; | ||
| 413 | + $ncor->setrgb(255, 255, 255); | ||
| 414 | + $classe->setexpression($expressao); | ||
| 415 | + $classe->set("name", $nomeclasse); | ||
| 1244 | 416 | ||
| 1245 | - Parametro: | 417 | + $expressao = "('[" . $itemid . "]'in'" . implode(",", $metadeSup) . "')"; |
| 418 | + $nomeclasse = "Tot " . $somaSup . ' (' . round($percSup, 2) . '%) '; | ||
| 419 | + $classe = ms_newClassObj($this->layer); | ||
| 420 | + $novoestilo = ms_newStyleObj($classe); | ||
| 421 | + if ($this->layer->type == 0) { | ||
| 422 | + $novoestilo->set("symbolname", "ponto"); | ||
| 423 | + $novoestilo->set("size", "6"); | ||
| 424 | + } | ||
| 425 | + $ncor = $novoestilo->color; | ||
| 426 | + $ncor->setrgb(210, 111, 111); | ||
| 427 | + $ncor = $novoestilo->outlinecolor; | ||
| 428 | + $ncor->setrgb(255, 255, 255); | ||
| 429 | + $classe->setexpression($expressao); | ||
| 430 | + $classe->set("name", $nomeclasse); | ||
| 1246 | 431 | ||
| 1247 | - $texto - string que será convertida | 432 | + $this->layer->setMetaData("cache", ""); |
| 433 | + return ("ok"); | ||
| 434 | + } else { | ||
| 435 | + return ("erro. Nenhum valor numerico no item"); | ||
| 436 | + } | ||
| 437 | + } | ||
| 1248 | 438 | ||
| 1249 | - Return: | 439 | + /* |
| 440 | + * function: classemedia | ||
| 441 | + * | ||
| 442 | + * Classifica os dados em duas classes, a primeira concentra os registros que estão abaixo da média e a segunda aqueles que são iguais ou superiores a média | ||
| 443 | + * | ||
| 444 | + * Parametros: | ||
| 445 | + * | ||
| 446 | + * $item - item da tabela de atributos | ||
| 447 | + * | ||
| 448 | + * $ignorar - valor que será ignorado na listagem final | ||
| 449 | + */ | ||
| 450 | + function classemedia($item, $ignorar) | ||
| 451 | + { | ||
| 452 | + if (! $this->layer) { | ||
| 453 | + return "erro"; | ||
| 454 | + } | ||
| 455 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, false, $ignorar); | ||
| 1250 | 456 | ||
| 1251 | - {string} | ||
| 1252 | - */ | ||
| 1253 | - function converteTexto($texto) | ||
| 1254 | - { | ||
| 1255 | - if (function_exists("mb_convert_encoding")) | ||
| 1256 | - { | ||
| 1257 | - if (!mb_detect_encoding($texto,"UTF-8",true)) | ||
| 1258 | - { | ||
| 1259 | - $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); | ||
| 1260 | - } | ||
| 1261 | - } | ||
| 1262 | - return $texto; | ||
| 1263 | - } | ||
| 1264 | -} | 457 | + if (count($valores) > 0) { |
| 458 | + $media = array_sum($valores) / count($valores); | ||
| 459 | + | ||
| 460 | + $numclassesatual = $this->layer->numclasses; | ||
| 461 | + // apaga todas as classes existentes | ||
| 462 | + $classetemp = $this->layer->getClass(0); | ||
| 463 | + $estilotemp = $classetemp->getStyle(0); | ||
| 464 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 465 | + $classe = $this->layer->getClass($i); | ||
| 466 | + $classe->set("status", MS_DELETE); | ||
| 467 | + } | ||
| 468 | + // adiciona as classes novas | ||
| 469 | + $expressao = "([" . $item . "]<" . $media . ")"; | ||
| 470 | + $nomeclasse = "< media " . $media; | ||
| 471 | + $classe = ms_newClassObj($this->layer); | ||
| 472 | + | ||
| 473 | + $novoestilo = ms_newStyleObj($classe); | ||
| 474 | + if ($this->layer->type == 0) { | ||
| 475 | + $novoestilo->set("symbolname", "ponto"); | ||
| 476 | + $novoestilo->set("size", "6"); | ||
| 477 | + } | ||
| 478 | + $ncor = $novoestilo->color; | ||
| 479 | + $ncor->setrgb(200, 183, 134); | ||
| 480 | + $ncor = $novoestilo->outlinecolor; | ||
| 481 | + $ncor->setrgb(255, 255, 255); | ||
| 482 | + $classe->setexpression($expressao); | ||
| 483 | + $classe->set("name", $nomeclasse); | ||
| 484 | + | ||
| 485 | + $expressao = "([" . $item . "]>=" . $media . ")"; | ||
| 486 | + $nomeclasse = ">= media " . $media; | ||
| 487 | + $classe = ms_newClassObj($this->layer); | ||
| 488 | + | ||
| 489 | + $novoestilo = ms_newStyleObj($classe); | ||
| 490 | + if ($this->layer->type == 0) { | ||
| 491 | + $novoestilo->set("symbolname", "ponto"); | ||
| 492 | + $novoestilo->set("size", "6"); | ||
| 493 | + } | ||
| 494 | + $ncor = $novoestilo->color; | ||
| 495 | + $ncor->setrgb(210, 100, 100); | ||
| 496 | + $ncor = $novoestilo->outlinecolor; | ||
| 497 | + $ncor->setrgb(255, 255, 255); | ||
| 498 | + $classe->setexpression($expressao); | ||
| 499 | + $classe->set("name", $nomeclasse); | ||
| 500 | + | ||
| 501 | + $this->layer->setMetaData("cache", ""); | ||
| 502 | + return ("ok"); | ||
| 503 | + } else { | ||
| 504 | + return ("erro. Nenhum valor numerico no item"); | ||
| 505 | + } | ||
| 506 | + } | ||
| 507 | + | ||
| 508 | + /* | ||
| 509 | + * function: quantil | ||
| 510 | + * | ||
| 511 | + * Cria classes em um objeto layer com intervalos baseados no calculo de quantil | ||
| 512 | + * | ||
| 513 | + * Parametros: | ||
| 514 | + * | ||
| 515 | + * $item - item da tabela de atributos | ||
| 516 | + * | ||
| 517 | + * $nclasses - número de classes | ||
| 518 | + * | ||
| 519 | + * $ignorar - valor que será ignorado na listagem final | ||
| 520 | + */ | ||
| 521 | + function quantil($item, $nclasses, $ignorar) | ||
| 522 | + { | ||
| 523 | + if (! $this->layer) { | ||
| 524 | + return "erro"; | ||
| 525 | + } | ||
| 526 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, true, $ignorar); | ||
| 527 | + if (count($valores) > 0) { | ||
| 528 | + // rotina obtida do pacote TME | ||
| 529 | + sort($valores); | ||
| 530 | + // $valores = array_unique($valores); | ||
| 531 | + $numValues = count($valores); | ||
| 532 | + $classNum = $numValues / $nclasses; // Number in each class | ||
| 533 | + for ($i = 0; $i < $nclasses; $i ++) { | ||
| 534 | + $position = (int) ($classNum * $i); | ||
| 535 | + $classBreaks[] = $valores[$position]; | ||
| 536 | + } | ||
| 537 | + $classBreaks[] = $valores[$numValues - 1]; // Last class break = biggest value | ||
| 538 | + // echo "<pre>";var_dump($classBreaks);exit; | ||
| 539 | + $numclassesatual = $this->layer->numclasses; | ||
| 540 | + // apaga todas as classes existentes | ||
| 541 | + $classetemp = $this->layer->getClass(0); | ||
| 542 | + $estilotemp = $classetemp->getStyle(0); | ||
| 543 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 544 | + $classe = $this->layer->getClass($i); | ||
| 545 | + $classe->set("status", MS_DELETE); | ||
| 546 | + } | ||
| 547 | + // adiciona as classes novas | ||
| 548 | + for ($i = 0; $i < $nclasses; ++ $i) { | ||
| 549 | + $expressao = "(([" . $item . "]>" . $classBreaks[$i] . ")and([" . $item . "]<=" . $classBreaks[$i + 1] . "))"; | ||
| 550 | + $nomeclasse = "> " . $classBreaks[$i] . " e <= que " . ($classBreaks[$i + 1]); | ||
| 551 | + if ($i == 0) { | ||
| 552 | + $expressao = "([" . $item . "]<=" . $classBreaks[$i + 1] . ")"; | ||
| 553 | + $nomeclasse = "<= que " . ($classBreaks[$i + 1]); | ||
| 554 | + } | ||
| 555 | + if ($i == ($nclasses - 1)) { | ||
| 556 | + $expressao = "([" . $item . "] >=" . $classBreaks[$i] . ")"; | ||
| 557 | + $nomeclasse = ">= que " . ($classBreaks[$i]); | ||
| 558 | + } | ||
| 559 | + $classe = ms_newClassObj($this->layer); | ||
| 560 | + $novoestilo = ms_newStyleObj($classe); | ||
| 561 | + if ($this->layer->type == 0) { | ||
| 562 | + $novoestilo->set("symbolname", "ponto"); | ||
| 563 | + $novoestilo->set("size", "6"); | ||
| 564 | + } | ||
| 565 | + $ncor = $novoestilo->color; | ||
| 566 | + $ncor->setrgb((mt_rand(0, 255)), (mt_rand(0, 255)), (mt_rand(0, 255))); | ||
| 567 | + $ncor = $novoestilo->outlinecolor; | ||
| 568 | + $ncor->setrgb(255, 255, 255); | ||
| 569 | + $classe->setexpression($expressao); | ||
| 570 | + $classe->set("name", $nomeclasse); | ||
| 571 | + // $classe->set("title",($this->layer->name)."+".$i); | ||
| 572 | + } | ||
| 573 | + $this->layer->setMetaData("cache", ""); | ||
| 574 | + return ("ok"); | ||
| 575 | + } else { | ||
| 576 | + return ("erro. Nenhum valor numerico no item"); | ||
| 577 | + } | ||
| 578 | + } | ||
| 579 | + | ||
| 580 | + /* | ||
| 581 | + * function: quebrasnaturais | ||
| 582 | + * | ||
| 583 | + * Cria classes em um objeto layer com intervalos baseados no calculo de quebras naturais | ||
| 584 | + * | ||
| 585 | + * Parametros: | ||
| 586 | + * | ||
| 587 | + * $item - item da tabela de atributos | ||
| 588 | + * | ||
| 589 | + * $nclasses - número de classes | ||
| 590 | + * | ||
| 591 | + * $ignorar - valor que será ignorado na listagem final | ||
| 592 | + */ | ||
| 593 | + function quebrasnaturais($item, $nclasses, $ignorar) | ||
| 594 | + { | ||
| 595 | + if (! $this->layer) { | ||
| 596 | + return "erro"; | ||
| 597 | + } | ||
| 598 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, true, $ignorar); | ||
| 599 | + if (count($valores) > 0) { | ||
| 600 | + include (dirname(__FILE__) . "/../pacotes/jenks-master/jenks.php"); | ||
| 601 | + $classBreaks = getJenksClasses($nclasses, $valores); | ||
| 602 | + // echo "<pre>";var_dump($classBreaks);exit; | ||
| 603 | + $numclassesatual = $this->layer->numclasses; | ||
| 604 | + // apaga todas as classes existentes | ||
| 605 | + $classetemp = $this->layer->getClass(0); | ||
| 606 | + $estilotemp = $classetemp->getStyle(0); | ||
| 607 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 608 | + $classe = $this->layer->getClass($i); | ||
| 609 | + $classe->set("status", MS_DELETE); | ||
| 610 | + } | ||
| 611 | + // adiciona as classes novas | ||
| 612 | + for ($i = 0; $i < $nclasses; ++ $i) { | ||
| 613 | + $expressao = "(([" . $item . "]>" . $classBreaks[$i] . ")and([" . $item . "]<=" . $classBreaks[$i + 1] . "))"; | ||
| 614 | + $nomeclasse = "> " . $classBreaks[$i] . " e <= que " . ($classBreaks[$i + 1]); | ||
| 615 | + if ($i == 0) { | ||
| 616 | + $expressao = "([" . $item . "]<=" . $classBreaks[$i + 1] . ")"; | ||
| 617 | + $nomeclasse = "<= que " . ($classBreaks[$i + 1]); | ||
| 618 | + } | ||
| 619 | + if ($i == ($nclasses - 1)) { | ||
| 620 | + $expressao = "([" . $item . "] >=" . $classBreaks[$i] . ")"; | ||
| 621 | + $nomeclasse = ">= que " . ($classBreaks[$i]); | ||
| 622 | + } | ||
| 623 | + $classe = ms_newClassObj($this->layer); | ||
| 624 | + $novoestilo = ms_newStyleObj($classe); | ||
| 625 | + if ($this->layer->type == 0) { | ||
| 626 | + $novoestilo->set("symbolname", "ponto"); | ||
| 627 | + $novoestilo->set("size", "6"); | ||
| 628 | + } | ||
| 629 | + $ncor = $novoestilo->color; | ||
| 630 | + $ncor->setrgb((mt_rand(0, 255)), (mt_rand(0, 255)), (mt_rand(0, 255))); | ||
| 631 | + $ncor = $novoestilo->outlinecolor; | ||
| 632 | + $ncor->setrgb(255, 255, 255); | ||
| 633 | + $classe->setexpression($expressao); | ||
| 634 | + $classe->set("name", $nomeclasse); | ||
| 635 | + // $classe->set("title",($this->layer->name)."+".$i); | ||
| 636 | + } | ||
| 637 | + $this->layer->setMetaData("cache", ""); | ||
| 638 | + return ("ok"); | ||
| 639 | + } else { | ||
| 640 | + return ("erro. Nenhum valor numerico no item"); | ||
| 641 | + } | ||
| 642 | + } | ||
| 643 | + | ||
| 644 | + /* | ||
| 645 | + * function: quartis | ||
| 646 | + * | ||
| 647 | + * Cria classes em um objeto layer com intervalos em quartis baseando-se em um item numérico na tabela de atributos com um número de classes fixos. | ||
| 648 | + * | ||
| 649 | + * Parametros: | ||
| 650 | + * | ||
| 651 | + * $item - Item da tabela de atributos utilizado para gerar as classes. | ||
| 652 | + * | ||
| 653 | + * $ignorar - valor que será ignorado na listagem final | ||
| 654 | + * | ||
| 655 | + * $tipoLegenda - tipo de texto que será incluído no nome de cada classe completo|simples|minimo | ||
| 656 | + * | ||
| 657 | + * Include: | ||
| 658 | + * <classe_estatistica.php> | ||
| 659 | + */ | ||
| 660 | + function quartis($item, $ignorar = "", $tipoLegenda = "minimo") | ||
| 661 | + { | ||
| 662 | + if (! $this->layer) { | ||
| 663 | + return "erro"; | ||
| 664 | + } | ||
| 665 | + | ||
| 666 | + $valores = $this->pegaValores($this->mapa, $this->layer, $item, true, $ignorar); | ||
| 667 | + if (count($valores) > 0) { | ||
| 668 | + if (file_exists($this->locaplic . "/classe_estatistica.php")) | ||
| 669 | + include_once ($this->locaplic . "/classe_estatistica.php"); | ||
| 670 | + else | ||
| 671 | + include_once ("classe_estatistica.php"); | ||
| 672 | + $estat = new estatistica(); | ||
| 673 | + $estat->calcula($valores); | ||
| 674 | + $calc = $estat->resultado; | ||
| 675 | + $numclassesatual = $this->layer->numclasses; | ||
| 676 | + // apaga todas as classes existentes | ||
| 677 | + $classetemp = $this->layer->getClass(0); | ||
| 678 | + for ($i = 0; $i < $numclassesatual; ++ $i) { | ||
| 679 | + $classe = $this->layer->getClass($i); | ||
| 680 | + $classe->set("status", MS_DELETE); | ||
| 681 | + } | ||
| 682 | + // adiciona as classes novas | ||
| 683 | + $expressao[] = "([" . $item . "]<=" . ($calc["quartil1"]) . ")"; | ||
| 684 | + $expressao[] = "(([" . $item . "]>" . ($calc["quartil1"]) . ")and([" . $item . "]<=" . ($calc["quartil2"]) . "))"; | ||
| 685 | + if ($calc["quartil3"] != 0) { | ||
| 686 | + $expressao[] = "(([" . $item . "]>" . ($calc["quartil2"]) . ")and([" . $item . "]<=" . ($calc["quartil3"]) . "))"; | ||
| 687 | + $expressao[] = "([" . $item . "]>" . ($calc["quartil3"]) . ")"; | ||
| 688 | + } | ||
| 689 | + $nomes[] = "<= " . ($calc["quartil1"]); | ||
| 690 | + $nomes[] = "> " . ($calc["quartil1"]) . " e <= " . ($calc["quartil2"]); | ||
| 691 | + if ($calc["quartil3"] != 0) { | ||
| 692 | + $nomes[] = "> " . ($calc["quartil2"]) . " e <= " . ($calc["quartil3"]); | ||
| 693 | + $nomes[] = "> " . ($calc["quartil3"]); | ||
| 694 | + } | ||
| 695 | + $vcor = array( | ||
| 696 | + 250, | ||
| 697 | + 230, | ||
| 698 | + 150, | ||
| 699 | + 0 | ||
| 700 | + ); | ||
| 701 | + for ($i = 0; $i < count($nomes); ++ $i) { | ||
| 702 | + $classe = ms_newClassObj($this->layer); | ||
| 703 | + $novoestilo = ms_newStyleObj($classe); | ||
| 704 | + if ($this->layer->type == 0) { | ||
| 705 | + $novoestilo->set("symbolname", "ponto"); | ||
| 706 | + $novoestilo->set("size", "6"); | ||
| 707 | + } | ||
| 708 | + $classe->setexpression($expressao[$i]); | ||
| 709 | + if ($tipoLegenda == "completo") { | ||
| 710 | + $nomeClasse = "Quartil " . ($i + 1) . " " . $expressao[$i]; | ||
| 711 | + } | ||
| 712 | + if ($tipoLegenda == "simples") { | ||
| 713 | + $nomeClasse = "Quartil " . ($i + 1) . " " . $nomes[$i]; | ||
| 714 | + } | ||
| 715 | + if ($tipoLegenda == "minimo" || $tipoLegenda == "") { | ||
| 716 | + $nomeClasse = $nomes[$i]; | ||
| 717 | + } | ||
| 718 | + | ||
| 719 | + $classe->set("name", $nomeClasse); | ||
| 720 | + $ncor = $novoestilo->color; | ||
| 721 | + $ncor->setrgb(255, $vcor[$i], $vcor[$i]); | ||
| 722 | + $ncor = $novoestilo->outlinecolor; | ||
| 723 | + $ncor->setrgb(255, 255, 255); | ||
| 724 | + } | ||
| 725 | + $this->layer->setMetaData("cache", ""); | ||
| 726 | + return ("ok"); | ||
| 727 | + } else { | ||
| 728 | + return ("erro. Nenhum valor numerico no item"); | ||
| 729 | + } | ||
| 730 | + } | ||
| 731 | + | ||
| 732 | + /* | ||
| 733 | + * function: valorunico | ||
| 734 | + * | ||
| 735 | + * Cria classes em um objeto layer baseando-se em um item na tabela de atributos. | ||
| 736 | + * | ||
| 737 | + * Para cada ocorrência de um valor é acrescentada uma classe. | ||
| 738 | + * | ||
| 739 | + * Parametros: | ||
| 740 | + * | ||
| 741 | + * $item - Item da tabela de atributos utilizado para gerar as classes. | ||
| 742 | + * | ||
| 743 | + * $ignorar - valor que será ignorado na listagem final | ||
| 744 | + * | ||
| 745 | + * $itemNome - item que será usado para definir os nomes das classes (por default será igual a $item) | ||
| 746 | + */ | ||
| 747 | + function valorunico($item, $ignorar, $itemNome = "") | ||
| 748 | + { | ||
| 749 | + if (! $this->layer) { | ||
| 750 | + return "erro"; | ||
| 751 | + } | ||
| 752 | + if ($itemNome == "" || $ignorar != "") { | ||
| 753 | + $itemNome = $item; | ||
| 754 | + } | ||
| 755 | + // pega valores | ||
| 756 | + $vs = $this->pegaValores($this->mapa, $this->layer, $item, false, $ignorar); | ||
| 757 | + if ($item == $itemNome) { | ||
| 758 | + $ns = $vs; | ||
| 759 | + } else { | ||
| 760 | + $ns = $this->pegaValores($this->mapa, $this->layer, $itemNome, false, $ignorar); | ||
| 761 | + } | ||
| 762 | + $lista = array(); | ||
| 763 | + for ($i = 0; $i < count($vs); ++ $i) { | ||
| 764 | + $temp[$vs[$i]] = $ns[$i]; | ||
| 765 | + } | ||
| 766 | + $valores = array_keys($temp); | ||
| 767 | + $nomes = array(); | ||
| 768 | + foreach ($temp as $t) { | ||
| 769 | + $nomes[] = $t; | ||
| 770 | + } | ||
| 771 | + $nclassexist = $this->layer->numclasses; | ||
| 772 | + if ($nclassexist > count($valores)) { | ||
| 773 | + $nclassexist = count($valores); | ||
| 774 | + } | ||
| 775 | + if ($this->layer->numclasses == 0) { | ||
| 776 | + $temp = ms_newClassObj($this->layer); | ||
| 777 | + ms_newStyleObj($temp); | ||
| 778 | + } | ||
| 779 | + // cria classes | ||
| 780 | + $classes = array(); | ||
| 781 | + $classpadrao = $this->layer->getClass(0); | ||
| 782 | + for ($i = 0; $i < $nclassexist; ++ $i) { | ||
| 783 | + $classes[$i] = $this->layer->getClass($i); | ||
| 784 | + } | ||
| 785 | + $c = $this->layer->numclasses; | ||
| 786 | + for ($i = 0; $i < $c; ++ $i) // apaga classes atuais | ||
| 787 | +{ | ||
| 788 | + $cl = $this->layer->getClass($i); | ||
| 789 | + $cl->set("status", MS_DELETE); | ||
| 790 | + } | ||
| 791 | + $c = count($valores); | ||
| 792 | + for ($i = 0; $i < $c; ++ $i) { | ||
| 793 | + $classes[$i] = ms_newClassObj($this->layer); | ||
| 794 | + $newstyle = ms_newStyleObj($classes[$i]); | ||
| 795 | + } | ||
| 796 | + for ($i = 0; $i < $c; ++ $i) { | ||
| 797 | + $e = "('[" . $item . "]'eq'" . $valores[$i] . "')"; | ||
| 798 | + $ca = $classes[$i]; | ||
| 799 | + $ca->setexpression($e); | ||
| 800 | + $texto = $this->converteTexto($nomes[$i]); | ||
| 801 | + $ca->set("name", $texto); | ||
| 802 | + $estilo = $classes[$i]->getStyle(0); | ||
| 803 | + $ncor = $estilo->color; | ||
| 804 | + $ncor->setrgb((mt_rand(0, 255)), (mt_rand(0, 255)), (mt_rand(0, 255))); | ||
| 805 | + $ncor = $estilo->outlinecolor; | ||
| 806 | + $ncor->setrgb(255, 255, 255); | ||
| 807 | + if ($this->layer->type == 0) // tipo ponto | ||
| 808 | +{ | ||
| 809 | + $estilo->set("symbolname", "ponto"); | ||
| 810 | + $estilo->set("size", 6); | ||
| 811 | + } | ||
| 812 | + // $c->set("title",$tema."+".$i); | ||
| 813 | + } | ||
| 814 | + $this->layer->setMetaData("cache", ""); | ||
| 815 | + return ("ok"); | ||
| 816 | + } | ||
| 817 | + | ||
| 818 | + /* | ||
| 819 | + * function: adicionaclasse | ||
| 820 | + * | ||
| 821 | + * Adiciona uma nova classe em um objeto layer | ||
| 822 | + * | ||
| 823 | + * A nova classe será uma c�pia da classe 0. | ||
| 824 | + */ | ||
| 825 | + function adicionaclasse() | ||
| 826 | + { | ||
| 827 | + if (! $this->layer) { | ||
| 828 | + return "erro"; | ||
| 829 | + } | ||
| 830 | + $classe = $this->layer->getclass(0); | ||
| 831 | + $c = ms_newClassObj($this->layer, $classe); | ||
| 832 | + $this->layer->setMetaData("cache", ""); | ||
| 833 | + return ("ok"); | ||
| 834 | + } | ||
| 835 | + | ||
| 836 | + /* | ||
| 837 | + * function: sobeclasse | ||
| 838 | + * | ||
| 839 | + * Sobe uma classe na ordem de desenho | ||
| 840 | + * | ||
| 841 | + * Parametro: | ||
| 842 | + * | ||
| 843 | + * $idclasse {numerico} - id da classe (índice) | ||
| 844 | + */ | ||
| 845 | + function sobeclasse($idclasse) | ||
| 846 | + { | ||
| 847 | + if (! $this->layer) { | ||
| 848 | + return "erro"; | ||
| 849 | + } | ||
| 850 | + $this->layer->moveclassup($idclasse); | ||
| 851 | + return ("ok"); | ||
| 852 | + } | ||
| 853 | + | ||
| 854 | + /* | ||
| 855 | + * function: desceclasse | ||
| 856 | + * | ||
| 857 | + * Desce uma classe na ordem de desenho | ||
| 858 | + * | ||
| 859 | + * Parametro: | ||
| 860 | + * | ||
| 861 | + * $idclasse {numerico} - id da classe (índice) | ||
| 862 | + */ | ||
| 863 | + function desceclasse($idclasse) | ||
| 864 | + { | ||
| 865 | + if (! $this->layer) { | ||
| 866 | + return "erro"; | ||
| 867 | + } | ||
| 868 | + $this->layer->moveclassdown($idclasse); | ||
| 869 | + return ("ok"); | ||
| 870 | + } | ||
| 871 | + | ||
| 872 | + /* | ||
| 873 | + * function: adicionaopacidade | ||
| 874 | + * | ||
| 875 | + * Adiciona opacidade variável de 0 a 100 conforme o número de classes | ||
| 876 | + * | ||
| 877 | + */ | ||
| 878 | + function adicionaopacidade() | ||
| 879 | + { | ||
| 880 | + // error_reporting(0); | ||
| 881 | + if (! $this->layer) { | ||
| 882 | + return "erro"; | ||
| 883 | + } | ||
| 884 | + $numclasses = $this->layer->numclasses; | ||
| 885 | + $n = intval(100 / $numclasses); | ||
| 886 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 887 | + $classe = $this->layer->getclass($i); | ||
| 888 | + $numestilos = $classe->numstyles; | ||
| 889 | + $o = ($i * $n) + 5; | ||
| 890 | + for ($j = 0; $j < $numestilos; ++ $j) { | ||
| 891 | + $estilo = $classe->getstyle($j); | ||
| 892 | + $estilo->set("opacity", $o); | ||
| 893 | + } | ||
| 894 | + } | ||
| 895 | + $this->layer->setMetaData("cache", ""); | ||
| 896 | + return ("ok"); | ||
| 897 | + } | ||
| 898 | + | ||
| 899 | + /* | ||
| 900 | + * function: alteracor | ||
| 901 | + * | ||
| 902 | + * Aplica uma nova cor aos estilos de uma classe | ||
| 903 | + * | ||
| 904 | + * Parametros: | ||
| 905 | + * | ||
| 906 | + * $idclasse {numerico} - id da classe (índice) | ||
| 907 | + * | ||
| 908 | + * $cor {string} - cor rgb | ||
| 909 | + */ | ||
| 910 | + function alteracor($idclasse, $cor) | ||
| 911 | + { | ||
| 912 | + // error_reporting(0); | ||
| 913 | + if (! $this->layer) { | ||
| 914 | + return "erro"; | ||
| 915 | + } | ||
| 916 | + $numclasses = $this->layer->numclasses; | ||
| 917 | + $cor = str_replace(" ", ",", $cor); | ||
| 918 | + $cor = explode(",", $cor); | ||
| 919 | + $classe = $this->layer->getclass($idclasse); | ||
| 920 | + $numestilos = $classe->numstyles; | ||
| 921 | + for ($j = 0; $j < $numestilos; ++ $j) { | ||
| 922 | + $estilo = $classe->getstyle($j); | ||
| 923 | + $ncor = $estilo->color; | ||
| 924 | + $ncoroutline = $estilo->outlinecolor; | ||
| 925 | + if ($ncor->red < 0) { | ||
| 926 | + $ncoroutline->setrgb($cor[0], $cor[1], $cor[2]); | ||
| 927 | + } else { | ||
| 928 | + $ncor->setrgb($cor[0], $cor[1], $cor[2]); | ||
| 929 | + } | ||
| 930 | + } | ||
| 931 | + $this->layer->setMetaData("cache", ""); | ||
| 932 | + return ("ok"); | ||
| 933 | + } | ||
| 934 | + | ||
| 935 | + /* | ||
| 936 | + * function: alterageometria | ||
| 937 | + * | ||
| 938 | + * Altera a geometria de representação de todos os estilos de todas as classes de um layer | ||
| 939 | + * | ||
| 940 | + * Parametro: | ||
| 941 | + * | ||
| 942 | + * $tipo {string} - tipo de representação | ||
| 943 | + */ | ||
| 944 | + function alterageometria($tipo) | ||
| 945 | + { | ||
| 946 | + // error_reporting(0); | ||
| 947 | + if (! $this->layer) { | ||
| 948 | + return "erro"; | ||
| 949 | + } | ||
| 950 | + $numclasses = $this->layer->numclasses; | ||
| 951 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 952 | + $classe = $this->layer->getclass($i); | ||
| 953 | + $numestilos = $classe->numstyles; | ||
| 954 | + for ($j = 0; $j < $numestilos; ++ $j) { | ||
| 955 | + $estilo = $classe->getstyle($j); | ||
| 956 | + $s = "STYLE geomtransform '$tipo' END"; | ||
| 957 | + $estilo->updateFromString($s); | ||
| 958 | + } | ||
| 959 | + } | ||
| 960 | + $this->layer->setMetaData("cache", ""); | ||
| 961 | + return ("ok"); | ||
| 962 | + } | ||
| 963 | + | ||
| 964 | + /* | ||
| 965 | + * function: alteraCoresClasses | ||
| 966 | + * | ||
| 967 | + * Altera as cores das classes existentes em um objeto layer gerando uma paleta de cores de acordo com um valor inicial e final. | ||
| 968 | + * | ||
| 969 | + * Parametros: | ||
| 970 | + * | ||
| 971 | + * $cori - cor inicial. | ||
| 972 | + * | ||
| 973 | + * $corf - cor final. | ||
| 974 | + * | ||
| 975 | + * Include: | ||
| 976 | + * <class.palette.php> | ||
| 977 | + */ | ||
| 978 | + function alteraCoresClasses($cori, $corf) | ||
| 979 | + { | ||
| 980 | + if (! $this->layer) { | ||
| 981 | + return "erro"; | ||
| 982 | + } | ||
| 983 | + if (file_exists($this->locaplic . "/class.palette.php")) | ||
| 984 | + include_once ($this->locaplic . "/class.palette.php"); | ||
| 985 | + else | ||
| 986 | + include_once ("class.palette.php"); | ||
| 987 | + | ||
| 988 | + $cori = RGB2hex(explode(",", $cori)); | ||
| 989 | + $corf = RGB2hex(explode(",", $corf)); | ||
| 990 | + $numclasses = $this->layer->numclasses; | ||
| 991 | + $myPalette = new palette(array( | ||
| 992 | + $cori, | ||
| 993 | + $corf | ||
| 994 | + ), ($numclasses + 1)); | ||
| 995 | + $cores = $myPalette->colorRGB; | ||
| 996 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 997 | + $classe = $this->layer->getclass($i); | ||
| 998 | + $estilo = $classe->getstyle(0); | ||
| 999 | + $corpaleta = $cores[$i]; | ||
| 1000 | + if ($this->layer->type == MS_LAYER_LINE) { | ||
| 1001 | + $cor = $estilo->outlinecolor; | ||
| 1002 | + $cor->setrgb($corpaleta[0], $corpaleta[1], $corpaleta[2]); | ||
| 1003 | + } | ||
| 1004 | + $cor = $estilo->color; | ||
| 1005 | + $cor->setrgb($corpaleta[0], $corpaleta[1], $corpaleta[2]); | ||
| 1006 | + } | ||
| 1007 | + $this->layer->setMetaData("cache", ""); | ||
| 1008 | + return ("ok"); | ||
| 1009 | + } | ||
| 1010 | + | ||
| 1011 | + /* | ||
| 1012 | + * function: inverteCoresClasses | ||
| 1013 | + * | ||
| 1014 | + * Inverte as cores da legenda de um tema. | ||
| 1015 | + */ | ||
| 1016 | + function inverteCoresClasses() | ||
| 1017 | + { | ||
| 1018 | + if (! $this->layer) { | ||
| 1019 | + return "erro"; | ||
| 1020 | + } | ||
| 1021 | + $numclasses = $this->layer->numclasses; | ||
| 1022 | + $cor = array(); | ||
| 1023 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 1024 | + $classe = $this->layer->getclass($i); | ||
| 1025 | + $estilo = $classe->getstyle(0); | ||
| 1026 | + $c = $estilo->color; | ||
| 1027 | + $cor[] = array( | ||
| 1028 | + "r" => ($c->red), | ||
| 1029 | + "g" => ($c->green), | ||
| 1030 | + "b" => ($c->blue) | ||
| 1031 | + ); | ||
| 1032 | + } | ||
| 1033 | + $cor = array_reverse($cor); | ||
| 1034 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 1035 | + $classe = $this->layer->getclass($i); | ||
| 1036 | + $c = $cor[$i]; | ||
| 1037 | + $estilo = $classe->getstyle(0); | ||
| 1038 | + $ncor = $estilo->color; | ||
| 1039 | + $ncor->setrgb($c["r"], $c["g"], $c["b"]); | ||
| 1040 | + } | ||
| 1041 | + $this->layer->setMetaData("cache", ""); | ||
| 1042 | + return ("ok"); | ||
| 1043 | + } | ||
| 1044 | + | ||
| 1045 | + /* | ||
| 1046 | + * function: calculaTamanhoClasses | ||
| 1047 | + * | ||
| 1048 | + * Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo. | ||
| 1049 | + */ | ||
| 1050 | + function calculaTamanhoClasses() | ||
| 1051 | + { | ||
| 1052 | + if (! $this->layer) { | ||
| 1053 | + return "erro"; | ||
| 1054 | + } | ||
| 1055 | + $numclasses = $this->layer->numclasses; | ||
| 1056 | + for ($i = 0; $i < $numclasses; ++ $i) { | ||
| 1057 | + $classe = $this->layer->getclass($i); | ||
| 1058 | + $estilo = $classe->getstyle(0); | ||
| 1059 | + $estilo->set("size", ($i + 1)); | ||
| 1060 | + if ($estilo->symbolname == "") { | ||
| 1061 | + if ($this->layer->type == MS_LAYER_LINE) { | ||
| 1062 | + $estilo->set("symbolname", "linha"); | ||
| 1063 | + } | ||
| 1064 | + if ($this->layer->type == MS_LAYER_POINT) { | ||
| 1065 | + $estilo->set("symbolname", "ponto"); | ||
| 1066 | + } | ||
| 1067 | + if ($this->layer->type == MS_LAYER_POLYGON) { | ||
| 1068 | + $estilo->set("symbolname", "p4"); | ||
| 1069 | + } | ||
| 1070 | + } | ||
| 1071 | + } | ||
| 1072 | + $this->layer->setMetaData("cache", ""); | ||
| 1073 | + return ("ok"); | ||
| 1074 | + } | ||
| 1075 | + | ||
| 1076 | + /* | ||
| 1077 | + * function: ordenaClasses | ||
| 1078 | + * | ||
| 1079 | + * Ordena as classes pelo nome | ||
| 1080 | + */ | ||
| 1081 | + function ordenaClasses() | ||
| 1082 | + { | ||
| 1083 | + if (! $this->layer) { | ||
| 1084 | + return "erro"; | ||
| 1085 | + } | ||
| 1086 | + $numclasses = $this->layer->numclasses; | ||
| 1087 | + if ($numclasses == 1) { | ||
| 1088 | + return ("ok"); | ||
| 1089 | + } | ||
| 1090 | + // pega o nome das classes | ||
| 1091 | + $nomes = array(); | ||
| 1092 | + for ($i = 0; $i < $numclasses; $i ++) { | ||
| 1093 | + $classe = $this->layer->getclass($i); | ||
| 1094 | + $nomes[$classe->name] = $classe->convertToString(); | ||
| 1095 | + } | ||
| 1096 | + ksort($nomes); | ||
| 1097 | + $indice = 0; | ||
| 1098 | + foreach ($nomes as $n) { | ||
| 1099 | + $classe = $this->layer->getclass($indice); | ||
| 1100 | + $classe->updatefromstring($n); | ||
| 1101 | + $indice ++; | ||
| 1102 | + } | ||
| 1103 | + $this->layer->setMetaData("cache", ""); | ||
| 1104 | + return ("ok"); | ||
| 1105 | + } | ||
| 1106 | + | ||
| 1107 | + /* | ||
| 1108 | + * function: statusClasse | ||
| 1109 | + * | ||
| 1110 | + * Inverte o status a uma classe desligando ou desligando, conforme o status atual. | ||
| 1111 | + * | ||
| 1112 | + * Parametros: | ||
| 1113 | + * | ||
| 1114 | + * $classe - id da classe | ||
| 1115 | + * | ||
| 1116 | + */ | ||
| 1117 | + function statusClasse($classe) | ||
| 1118 | + { | ||
| 1119 | + // | ||
| 1120 | + // na versão 6 do Mapserver as classes não obedecem o OFF ou ON em arquivos RASTER. Foi necessário contornar o problema usando um metadata | ||
| 1121 | + // | ||
| 1122 | + if (! $this->layer) { | ||
| 1123 | + return "erro"; | ||
| 1124 | + } | ||
| 1125 | + $cl = $this->layer->getclass($classe); | ||
| 1126 | + $status = $cl->status; | ||
| 1127 | + echo $status; | ||
| 1128 | + if ($status == MS_OFF) { | ||
| 1129 | + $cl->set("status", MS_ON); | ||
| 1130 | + if ($this->layer->type == 3) { | ||
| 1131 | + $e = $cl->getstyle(0); | ||
| 1132 | + $e->set("opacity", 100); | ||
| 1133 | + } | ||
| 1134 | + } else { | ||
| 1135 | + $cl->set("status", MS_OFF); | ||
| 1136 | + if ($this->layer->type == 3) { | ||
| 1137 | + $e = $cl->getstyle(0); | ||
| 1138 | + $e->set("opacity", 0); | ||
| 1139 | + } | ||
| 1140 | + } | ||
| 1141 | + $this->layer->setMetaData("cache", ""); | ||
| 1142 | + return ("ok"); | ||
| 1143 | + } | ||
| 1144 | + | ||
| 1145 | + /* | ||
| 1146 | + * Function: pegaValores | ||
| 1147 | + * | ||
| 1148 | + * Pega os valores de um item de um tema. | ||
| 1149 | + * | ||
| 1150 | + * Parametros: | ||
| 1151 | + * | ||
| 1152 | + * $layer {objeto} - Layer que será processado. | ||
| 1153 | + * | ||
| 1154 | + * $item {string} - Item que será processado. | ||
| 1155 | + * | ||
| 1156 | + * $numerico {boleano} - O item e numerico (true ou false). | ||
| 1157 | + * | ||
| 1158 | + * $ignorar {string} - valor que será ignorado na listagem final | ||
| 1159 | + * | ||
| 1160 | + * Retorno: | ||
| 1161 | + * | ||
| 1162 | + * {array} | ||
| 1163 | + */ | ||
| 1164 | + function pegaValores($mapa, $layer, $item, $numerico = false, $ignorar = "") | ||
| 1165 | + { | ||
| 1166 | + $layer->set("template", "none.htm"); | ||
| 1167 | + // $layer->setfilter(""); | ||
| 1168 | + $versao = versao(); | ||
| 1169 | + $versao = $versao["principal"]; | ||
| 1170 | + $ignorararray = explode(",", $ignorar); | ||
| 1171 | + if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS) { | ||
| 1172 | + if ($layer->type == MS_LAYER_RASTER) { | ||
| 1173 | + if ($item == "pixel") { | ||
| 1174 | + $item = "value_0"; | ||
| 1175 | + } | ||
| 1176 | + } | ||
| 1177 | + | ||
| 1178 | + $sopen = $layer->open(); | ||
| 1179 | + if ($sopen == MS_FAILURE) { | ||
| 1180 | + return "erro"; | ||
| 1181 | + } | ||
| 1182 | + $res_count = $layer->getNumresults(); | ||
| 1183 | + $valitem = array(); | ||
| 1184 | + for ($i = 0; $i < $res_count; ++ $i) { | ||
| 1185 | + if ($versao >= 6) { | ||
| 1186 | + $shape = $layer->getShape($layer->getResult($i)); | ||
| 1187 | + } else { | ||
| 1188 | + $result = $layer->getResult($i); | ||
| 1189 | + $shp_index = $result->shapeindex; | ||
| 1190 | + $shape = $layer->getfeature($shp_index, - 1); | ||
| 1191 | + } | ||
| 1192 | + $v = trim($shape->values[$item]); | ||
| 1193 | + if ($numerico) { | ||
| 1194 | + if (is_numeric($v)) { | ||
| 1195 | + if ($ignorar == "") { | ||
| 1196 | + $valitem[] = $v; | ||
| 1197 | + } else { | ||
| 1198 | + // if ($v != $ignorar) | ||
| 1199 | + if (! in_array($v, $ignorararray)) { | ||
| 1200 | + $valitem[] = $v; | ||
| 1201 | + } | ||
| 1202 | + } | ||
| 1203 | + } | ||
| 1204 | + } else { | ||
| 1205 | + if ($ignorar == "") { | ||
| 1206 | + $valitem[] = $v; | ||
| 1207 | + } else { | ||
| 1208 | + if (! in_array($v, $ignorararray)) { | ||
| 1209 | + $valitem[] = $v; | ||
| 1210 | + } | ||
| 1211 | + } | ||
| 1212 | + } | ||
| 1213 | + } | ||
| 1214 | + $fechou = $layer->close(); | ||
| 1215 | + } | ||
| 1216 | + $layer->close(); | ||
| 1217 | + return ($valitem); | ||
| 1218 | + } | ||
| 1219 | + | ||
| 1220 | + /* | ||
| 1221 | + * Function: converteTexto | ||
| 1222 | + * | ||
| 1223 | + * Converte uma string de ISO-8859-1 para UTF-8 | ||
| 1224 | + * | ||
| 1225 | + * Parametro: | ||
| 1226 | + * | ||
| 1227 | + * $texto - string que será convertida | ||
| 1228 | + * | ||
| 1229 | + * Return: | ||
| 1230 | + * | ||
| 1231 | + * {string} | ||
| 1232 | + */ | ||
| 1233 | + function converteTexto($texto) | ||
| 1234 | + { | ||
| 1235 | + if (function_exists("mb_convert_encoding")) { | ||
| 1236 | + if (! mb_detect_encoding($texto, "UTF-8", true)) { | ||
| 1237 | + $texto = mb_convert_encoding($texto, "UTF-8", "ISO-8859-1"); | ||
| 1238 | + } | ||
| 1239 | + } | ||
| 1240 | + return $texto; | ||
| 1241 | + } | ||
| 1242 | +} | ||
| 1265 | ?> | 1243 | ?> |
| 1266 | \ No newline at end of file | 1244 | \ No newline at end of file |
classesphp/classe_legenda.php
| @@ -117,9 +117,8 @@ class Legenda | @@ -117,9 +117,8 @@ class Legenda | ||
| 117 | 117 | ||
| 118 | function __construct($map_file="",$locaplic="",$tema="",$template="") | 118 | function __construct($map_file="",$locaplic="",$tema="",$template="") |
| 119 | { | 119 | { |
| 120 | - include(dirname(__FILE__)."/../ms_configura.php"); | 120 | + include(dirname(__FILE__)."/../ms_configura.php"); |
| 121 | $this->postgis_mapa = $postgis_mapa; | 121 | $this->postgis_mapa = $postgis_mapa; |
| 122 | - | ||
| 123 | include_once(dirname(__FILE__)."/funcoes_gerais.php"); | 122 | include_once(dirname(__FILE__)."/funcoes_gerais.php"); |
| 124 | $this->v = versao(); | 123 | $this->v = versao(); |
| 125 | $this->v = $this->v["principal"]; | 124 | $this->v = $this->v["principal"]; |
| @@ -130,22 +129,22 @@ class Legenda | @@ -130,22 +129,22 @@ class Legenda | ||
| 130 | } | 129 | } |
| 131 | $this->mapa = ms_newMapObj($map_file); | 130 | $this->mapa = ms_newMapObj($map_file); |
| 132 | substituiConObj($this->mapa,$postgis_mapa); | 131 | substituiConObj($this->mapa,$postgis_mapa); |
| 133 | - | ||
| 134 | $this->arquivo = str_replace(".map","",$map_file).".map"; | 132 | $this->arquivo = str_replace(".map","",$map_file).".map"; |
| 133 | + | ||
| 135 | if($tema != "" && @$this->mapa->getlayerbyname($tema)) | 134 | if($tema != "" && @$this->mapa->getlayerbyname($tema)) |
| 136 | { | 135 | { |
| 137 | - $this->layer = $this->mapa->getlayerbyname($tema); | 136 | + $this->layer = $this->mapa->getlayerbyname($tema); |
| 138 | $this->nome = $tema; | 137 | $this->nome = $tema; |
| 139 | $vermultilayer = new vermultilayer(); | 138 | $vermultilayer = new vermultilayer(); |
| 140 | $vermultilayer->verifica($map_file,$tema); | 139 | $vermultilayer->verifica($map_file,$tema); |
| 141 | if ($vermultilayer->resultado == 1) // o tema e multi layer | 140 | if ($vermultilayer->resultado == 1) // o tema e multi layer |
| 142 | { | 141 | { |
| 143 | - $ls = $vermultilayer->temas; | 142 | + $ls = $vermultilayer->temas; |
| 144 | $this->visiveis = $vermultilayer->temasvisiveis; | 143 | $this->visiveis = $vermultilayer->temasvisiveis; |
| 145 | } | 144 | } |
| 146 | else | 145 | else |
| 147 | { | 146 | { |
| 148 | - $ls[] = $tema; | 147 | + $ls[] = $tema; |
| 149 | $this->visiveis = array($tema); | 148 | $this->visiveis = array($tema); |
| 150 | } | 149 | } |
| 151 | $this->grupo = $ls; | 150 | $this->grupo = $ls; |
| @@ -424,9 +423,9 @@ class Legenda | @@ -424,9 +423,9 @@ class Legenda | ||
| 424 | array | 423 | array |
| 425 | */ | 424 | */ |
| 426 | function tabelaLegenda($totaliza="nao"){ | 425 | function tabelaLegenda($totaliza="nao"){ |
| 427 | - $linhas = array(); | 426 | + $linhas = array(); |
| 428 | foreach ($this->visiveis as $l){ | 427 | foreach ($this->visiveis as $l){ |
| 429 | - $layer = $this->mapa->getlayerbyname($l); | 428 | + $layer = $this->mapa->getlayerbyname($l); |
| 430 | //verifica se é wms ou wfs | 429 | //verifica se é wms ou wfs |
| 431 | $c = $layer->connectiontype; | 430 | $c = $layer->connectiontype; |
| 432 | 431 |
ferramentas/legenda/exec.php
| @@ -104,9 +104,12 @@ Cria elementos para construir uma legenda no formato de tabela em HTML. | @@ -104,9 +104,12 @@ Cria elementos para construir uma legenda no formato de tabela em HTML. | ||
| 104 | */ | 104 | */ |
| 105 | case "EDITALEGENDA": | 105 | case "EDITALEGENDA": |
| 106 | include_once(dirname(__FILE__)."/../../classesphp/classe_legenda.php"); | 106 | include_once(dirname(__FILE__)."/../../classesphp/classe_legenda.php"); |
| 107 | + | ||
| 107 | $m = new Legenda($map_file,$locaplic,$tema); | 108 | $m = new Legenda($map_file,$locaplic,$tema); |
| 108 | $r = $m->tabelaLegenda(); | 109 | $r = $m->tabelaLegenda(); |
| 109 | - if (!$r){$r = "erro.Erro legenda nao disponivel";} | 110 | + if (!$r){ |
| 111 | + $r = "erro.Erro legenda nao disponivel"; | ||
| 112 | + } | ||
| 110 | $retorno = $r; | 113 | $retorno = $r; |
| 111 | break; | 114 | break; |
| 112 | /* | 115 | /* |
ferramentas/opcoes_label/dicionario.js
| @@ -154,5 +154,10 @@ i3GEOF.proplabel.dicionario = { | @@ -154,5 +154,10 @@ i3GEOF.proplabel.dicionario = { | ||
| 154 | pt : "Propriedades do texto", | 154 | pt : "Propriedades do texto", |
| 155 | en : "", | 155 | en : "", |
| 156 | es : "" | 156 | es : "" |
| 157 | + } ], | ||
| 158 | + 'observacao' : [ { | ||
| 159 | + pt : "Mantenha essa janela aberta ao aplicar para que as propriedades sejam consideradas", | ||
| 160 | + en : "", | ||
| 161 | + es : "" | ||
| 157 | } ] | 162 | } ] |
| 158 | }; | 163 | }; |
ferramentas/opcoes_label/template_mst.html
| 1 | <div class="container-fluid"> | 1 | <div class="container-fluid"> |
| 2 | - <div style="width: 100%;" class='form-group label-fixed condensed'> | 2 | + <h5 class='alert alert-info'> |
| 3 | + {{{observacao}}} | ||
| 4 | + </h5> | ||
| 5 | + <div style="width: 100%;" class='form-group label-fixed condensed'> | ||
| 3 | <label class="control-label" for="">{{{fonte}}}</label> | 6 | <label class="control-label" for="">{{{fonte}}}</label> |
| 4 | <div style="width: 100%;" class="input-group"> | 7 | <div style="width: 100%;" class="input-group"> |
| 5 | <div id="i3GEOproplabelDivListaFonte"></div> | 8 | <div id="i3GEOproplabelDivListaFonte"></div> |
temas/_lbairros.map
| 1 | MAP | 1 | MAP |
| 2 | - FONTSET "/var/www/i3geo/symbols/fontes.txt" | ||
| 3 | - SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" | 2 | + FONTSET "/var/www/i3geo/symbols/fontes.txt" |
| 3 | + SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" | ||
| 4 | LAYER | 4 | LAYER |
| 5 | - CONNECTION "i3geosaude" | 5 | + CONNECTION "user=postgres password=postgres dbname=i3geosaude host=localhost port=5432" |
| 6 | CONNECTIONTYPE POSTGIS | 6 | CONNECTIONTYPE POSTGIS |
| 7 | DATA "the_geom from (select gid, st_setsrid(the_geom,4326) as the_geom,co_bairro,no_bairro,no_distr,no_municip from i3geo_metaestat.bairros ) as foo using unique co_bairro using srid=4326" | 7 | DATA "the_geom from (select gid, st_setsrid(the_geom,4326) as the_geom,co_bairro,no_bairro,no_distr,no_municip from i3geo_metaestat.bairros ) as foo using unique co_bairro using srid=4326" |
| 8 | METADATA | 8 | METADATA |
| 9 | - "TIP" "no_bairro,id" | ||
| 10 | "cache" "sim" | 9 | "cache" "sim" |
| 10 | + "TIP" "no_bairro,id" | ||
| 11 | "CLASSE" "SIM" | 11 | "CLASSE" "SIM" |
| 12 | "permitekmz" "SIM" | 12 | "permitekmz" "SIM" |
| 13 | "ITENSDESC" "id,Código bairro,Nome,Distrito,Município" | 13 | "ITENSDESC" "id,Código bairro,Nome,Distrito,Município" |
| 14 | "EDITAVEL" "NAO" | 14 | "EDITAVEL" "NAO" |
| 15 | + "extensao" "-70.041740706664 -33.694583050265 -34.792884974458 2.8730391155742" | ||
| 15 | "wkttip" "SIM" | 16 | "wkttip" "SIM" |
| 16 | "permitedownload" "SIM" | 17 | "permitedownload" "SIM" |
| 17 | "permitecomentario" "NAO" | 18 | "permitecomentario" "NAO" |
| 18 | "escondido" "NAO" | 19 | "escondido" "NAO" |
| 19 | "download" "SIM" | 20 | "download" "SIM" |
| 20 | - "ITENS" "gid,co_bairro,no_bairro,no_distr,no_municip" | ||
| 21 | "CONEXAOORIGINAL" "i3geosaude" | 21 | "CONEXAOORIGINAL" "i3geosaude" |
| 22 | - "transitioneffect" "NAO" | ||
| 23 | - "permiteogc" "SIM" | 22 | + "ITENS" "gid,co_bairro,no_bairro,no_distr,no_municip" |
| 24 | "permitekml" "SIM" | 23 | "permitekml" "SIM" |
| 24 | + "permiteogc" "SIM" | ||
| 25 | + "transitioneffect" "NAO" | ||
| 25 | "TEMA" "_Bairros POSTGIS" | 26 | "TEMA" "_Bairros POSTGIS" |
| 26 | "identifica" "nao" | 27 | "identifica" "nao" |
| 27 | END # METADATA | 28 | END # METADATA |
| @@ -41,4 +42,6 @@ MAP | @@ -41,4 +42,6 @@ MAP | ||
| 41 | TITLE "" | 42 | TITLE "" |
| 42 | END # CLASS | 43 | END # CLASS |
| 43 | END # LAYER | 44 | END # LAYER |
| 45 | + | ||
| 44 | END # MAP | 46 | END # MAP |
| 47 | + |
temas/_lbiomashp.map
| @@ -8,42 +8,42 @@ MAP | @@ -8,42 +8,42 @@ MAP | ||
| 8 | CONNECTION "" | 8 | CONNECTION "" |
| 9 | DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" | 9 | DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" |
| 10 | METADATA | 10 | METADATA |
| 11 | - "cache" "sim" | ||
| 12 | "TIP" "CD_LEGENDA" | 11 | "TIP" "CD_LEGENDA" |
| 13 | - "olopacity" "" | 12 | + "cache" "sim" |
| 14 | "CLASSE" "SIM" | 13 | "CLASSE" "SIM" |
| 14 | + "olopacity" "" | ||
| 15 | "animagif" "" | 15 | "animagif" "" |
| 16 | "permitekmz" "SIM" | 16 | "permitekmz" "SIM" |
| 17 | "gmopacity" "" | 17 | "gmopacity" "" |
| 18 | "gmstatus" "" | 18 | "gmstatus" "" |
| 19 | "ITENSDESC" "Teste de acentuação" | 19 | "ITENSDESC" "Teste de acentuação" |
| 20 | - "editavel" "" | ||
| 21 | - "ESCALA" "250000" | ||
| 22 | "TILES" "SIM" | 20 | "TILES" "SIM" |
| 21 | + "ESCALA" "250000" | ||
| 22 | + "editavel" "" | ||
| 23 | "arquivotemaoriginal" "" | 23 | "arquivotemaoriginal" "" |
| 24 | "extensao" "-73.990940816816 -33.74827031115 -34.822855820777 5.272224303909" | 24 | "extensao" "-73.990940816816 -33.74827031115 -34.822855820777 5.272224303909" |
| 25 | - "olstatus" "" | ||
| 26 | "nomeoriginal" "" | 25 | "nomeoriginal" "" |
| 26 | + "olstatus" "" | ||
| 27 | "permitedownload" "SIM" | 27 | "permitedownload" "SIM" |
| 28 | - "permitecomentario" "NAO" | ||
| 29 | "FILTROORIGINAL" "" | 28 | "FILTROORIGINAL" "" |
| 30 | - "escondido" "NAO" | 29 | + "permitecomentario" "NAO" |
| 31 | "DATAORIGINAL" "" | 30 | "DATAORIGINAL" "" |
| 32 | - "esquematabelaeditavel" "" | 31 | + "escondido" "NAO" |
| 33 | "download" "SIM" | 32 | "download" "SIM" |
| 33 | + "esquematabelaeditavel" "" | ||
| 34 | "itembuscarapida" "CD_LEGENDA" | 34 | "itembuscarapida" "CD_LEGENDA" |
| 35 | - "tme" "" | ||
| 36 | "ITENS" "CD_LEGENDA" | 35 | "ITENS" "CD_LEGENDA" |
| 37 | - "transitioneffect" "NAO" | ||
| 38 | - "permiteogc" "SIM" | 36 | + "tme" "" |
| 39 | "permitekml" "SIM" | 37 | "permitekml" "SIM" |
| 40 | - "TEMA" "Biomas shapefile (acentuação)" | 38 | + "permiteogc" "SIM" |
| 39 | + "transitioneffect" "NAO" | ||
| 41 | "convcaracter" "SIM" | 40 | "convcaracter" "SIM" |
| 42 | - "colunageometria" "" | 41 | + "TEMA" "Biomas shapefile (acentuação)" |
| 43 | "colunaidunico" "" | 42 | "colunaidunico" "" |
| 43 | + "colunageometria" "" | ||
| 44 | "identifica" "sim" | 44 | "identifica" "sim" |
| 45 | - "storymap" "" | ||
| 46 | "tabelaeditavel" "" | 45 | "tabelaeditavel" "" |
| 46 | + "storymap" "" | ||
| 47 | END # METADATA | 47 | END # METADATA |
| 48 | NAME "_lbiomashp" | 48 | NAME "_lbiomashp" |
| 49 | PROCESSING "ITEMS=CD_LEGENDA" | 49 | PROCESSING "ITEMS=CD_LEGENDA" |