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 | 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 | 18 | <!DOCTYPE html> |
| 18 | 19 | <html lang="pt-br"> |
| 19 | 20 | <head> |
| 20 | 21 | <meta http-equiv="Category" content="i3Geo Mapa interativo MMA geoprocessamento sig mobile"> |
| 21 | 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 | 24 | <title>i3GEO - OpenLayers</title> |
| 25 | 25 | <script src="../pacotes/ol4/ol.js"></script> |
| 26 | 26 | <script src="../js/i3geo.js"></script> |
| ... | ... | @@ -40,152 +40,142 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 40 | 40 | background: none; |
| 41 | 41 | margin-bottom: 15px; |
| 42 | 42 | } |
| 43 | -.foraDoMapa + span > span { | |
| 43 | + | |
| 44 | +.foraDoMapa+span>span { | |
| 44 | 45 | background-color: yellow; |
| 45 | 46 | } |
| 46 | 47 | </style> |
| 47 | 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 | 50 | Marque com data-traduzir="true" os elementos que deverao passar pelo tradutor |
| 50 | 51 | --> |
| 51 | 52 | <body id="i3geo" style='background: white;'> |
| 52 | - <!-- inclui o nome do usuario logado | |
| 53 | + <!-- inclui o nome do usuario logado | |
| 53 | 54 | <div id="i3GEONomeLogin" |
| 54 | 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 | 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 | 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 | 156 | data-idLista - id do DIV dentro de idconteudo que sera utilizado para mostrar as "pastas" que abrem o proximo nivel |
| 168 | 157 | data-idLinks - id do DIV dentro de idconteudo que sera utilizado para mostrar a lista de links que abre cada ferramenta |
| 169 | 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 | 166 | data-idListaDeCamadas - id onde sera incluida a lista de camadas |
| 178 | 167 | data-idListaFundo - id onde sera incluida a lista de camadas de fundo (mapa base) |
| 179 | 168 | data-verificaAbrangencia - se for uma string, faz a verificacao se a camada esta fora da abrangencia atual do mapa, |
| 180 | 169 | inserindo ou nao a string como uma classe CSS. Pode degradar a performance e depende |
| 181 | 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 | 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 | 180 | data-idMenus - id do DIV que recebera a lista de menus cadastrados no sistema de administracao |
| 191 | 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 | 184 | Variaveis javascript: |
| 195 | 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 | 216 | <div class="hidden-xs hidden-sm" onclick="i3GEO.guias.ativa('identifica',this)" style="margin-top: 3px;"> |
| 226 | 217 | <button title="{{{iconeIdentifica}}}" class="iconeGuiaMovel" style="box-shadow: none;"> |
| 227 | 218 | <img src="../imagens/gisicons/pointer-info.png" style="cursor: pointer; padding: 3px;"> |
| 228 | 219 | </button> |
| 229 | 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 | 276 | A lista de camadas de fundo e obtida da variavel i3GEO.Interface.openlayers.LAYERSADICIONAIS |
| 264 | 277 | Essa variavel e definida via javascript, e no caso das interfaces padrao do i3Geo, e definida |
| 265 | 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 | 351 | <div class="form-group label-floating"> |
| 332 | 352 | <label class="control-label" for="i3GEObuscatema">{{{a1}}}</label> |
| 333 | 353 | <div class="input-group"> |
| ... | ... | @@ -340,18 +360,18 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 340 | 360 | </div> |
| 341 | 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 | 364 | Nessa funcao ficam tambem os parametros: |
| 345 | 365 | "idOndeMenus": "catalogoMenus", |
| 346 | 366 | "idCatalogoPrincipal": "catalogoPrincipal", |
| 347 | 367 | "idCatalogoNavegacao": "catalogoNavegacao", |
| 348 | 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 | 375 | As funcoes de inicializacao recebem um objeto com parametros. Que por padrao sao: |
| 356 | 376 | config: { |
| 357 | 377 | 'templateDir': '../interface/templates/dir.html', |
| ... | ... | @@ -366,43 +386,63 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 366 | 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 | 446 | <div class="list-group condensed"><div class="row-content text-left"> |
| 407 | 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 | 448 | <label style="width: 255px;vertical-align: middle;"> |
| ... | ... | @@ -412,92 +452,107 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 412 | 452 | </label> |
| 413 | 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 | 513 | Funcoes de busca por registros. Pode ser feita nos temas existentes no mapa, em um servico de busca e no google |
| 453 | 514 | No botao que dispara a busca, ficam os parametros de configuracao |
| 454 | 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 | 556 | <div class="list-group condensed"> |
| 502 | 557 | <div class="checkbox text-left"> |
| 503 | 558 | <label> |
| ... | ... | @@ -507,55 +562,60 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 507 | 562 | </div> |
| 508 | 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 | 619 | <div> |
| 560 | 620 | <table> |
| 561 | 621 | <tr> |
| ... | ... | @@ -573,7 +633,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 573 | 633 | <div> </div> |
| 574 | 634 | </div> |
| 575 | 635 | </script> |
| 576 | - <script> | |
| 636 | + <script> | |
| 577 | 637 | //ativa o banner de inicializacao |
| 578 | 638 | i3GEO.janela.tempoMsg($i("i3GEOlogoMarcaTemplate").innerHTML,4000); |
| 579 | 639 | (function() { |
| ... | ... | @@ -727,7 +787,7 @@ if ($_SESSION ["usuario"] != $_COOKIE ["i3geousuariologin"]) { |
| 727 | 787 | theme: "inset-2", |
| 728 | 788 | axis: "yx", |
| 729 | 789 | scrollbarPosition: "inside", |
| 730 | - scrollButtons:{ enable: true }, | |
| 790 | + scrollButtons:{ enable: false }, | |
| 731 | 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 | 1244 | \ No newline at end of file | ... | ... |
classesphp/classe_legenda.php
| ... | ... | @@ -117,9 +117,8 @@ class Legenda |
| 117 | 117 | |
| 118 | 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 | 121 | $this->postgis_mapa = $postgis_mapa; |
| 122 | - | |
| 123 | 122 | include_once(dirname(__FILE__)."/funcoes_gerais.php"); |
| 124 | 123 | $this->v = versao(); |
| 125 | 124 | $this->v = $this->v["principal"]; |
| ... | ... | @@ -130,22 +129,22 @@ class Legenda |
| 130 | 129 | } |
| 131 | 130 | $this->mapa = ms_newMapObj($map_file); |
| 132 | 131 | substituiConObj($this->mapa,$postgis_mapa); |
| 133 | - | |
| 134 | 132 | $this->arquivo = str_replace(".map","",$map_file).".map"; |
| 133 | + | |
| 135 | 134 | if($tema != "" && @$this->mapa->getlayerbyname($tema)) |
| 136 | 135 | { |
| 137 | - $this->layer = $this->mapa->getlayerbyname($tema); | |
| 136 | + $this->layer = $this->mapa->getlayerbyname($tema); | |
| 138 | 137 | $this->nome = $tema; |
| 139 | 138 | $vermultilayer = new vermultilayer(); |
| 140 | 139 | $vermultilayer->verifica($map_file,$tema); |
| 141 | 140 | if ($vermultilayer->resultado == 1) // o tema e multi layer |
| 142 | 141 | { |
| 143 | - $ls = $vermultilayer->temas; | |
| 142 | + $ls = $vermultilayer->temas; | |
| 144 | 143 | $this->visiveis = $vermultilayer->temasvisiveis; |
| 145 | 144 | } |
| 146 | 145 | else |
| 147 | 146 | { |
| 148 | - $ls[] = $tema; | |
| 147 | + $ls[] = $tema; | |
| 149 | 148 | $this->visiveis = array($tema); |
| 150 | 149 | } |
| 151 | 150 | $this->grupo = $ls; |
| ... | ... | @@ -424,9 +423,9 @@ class Legenda |
| 424 | 423 | array |
| 425 | 424 | */ |
| 426 | 425 | function tabelaLegenda($totaliza="nao"){ |
| 427 | - $linhas = array(); | |
| 426 | + $linhas = array(); | |
| 428 | 427 | foreach ($this->visiveis as $l){ |
| 429 | - $layer = $this->mapa->getlayerbyname($l); | |
| 428 | + $layer = $this->mapa->getlayerbyname($l); | |
| 430 | 429 | //verifica se é wms ou wfs |
| 431 | 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 | 104 | */ |
| 105 | 105 | case "EDITALEGENDA": |
| 106 | 106 | include_once(dirname(__FILE__)."/../../classesphp/classe_legenda.php"); |
| 107 | + | |
| 107 | 108 | $m = new Legenda($map_file,$locaplic,$tema); |
| 108 | 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 | 113 | $retorno = $r; |
| 111 | 114 | break; |
| 112 | 115 | /* | ... | ... |
ferramentas/opcoes_label/dicionario.js
| ... | ... | @@ -154,5 +154,10 @@ i3GEOF.proplabel.dicionario = { |
| 154 | 154 | pt : "Propriedades do texto", |
| 155 | 155 | en : "", |
| 156 | 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 | 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 | 6 | <label class="control-label" for="">{{{fonte}}}</label> |
| 4 | 7 | <div style="width: 100%;" class="input-group"> |
| 5 | 8 | <div id="i3GEOproplabelDivListaFonte"></div> | ... | ... |
temas/_lbairros.map
| 1 | 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 | 4 | LAYER |
| 5 | - CONNECTION "i3geosaude" | |
| 5 | + CONNECTION "user=postgres password=postgres dbname=i3geosaude host=localhost port=5432" | |
| 6 | 6 | CONNECTIONTYPE POSTGIS |
| 7 | 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 | 8 | METADATA |
| 9 | - "TIP" "no_bairro,id" | |
| 10 | 9 | "cache" "sim" |
| 10 | + "TIP" "no_bairro,id" | |
| 11 | 11 | "CLASSE" "SIM" |
| 12 | 12 | "permitekmz" "SIM" |
| 13 | 13 | "ITENSDESC" "id,Código bairro,Nome,Distrito,Município" |
| 14 | 14 | "EDITAVEL" "NAO" |
| 15 | + "extensao" "-70.041740706664 -33.694583050265 -34.792884974458 2.8730391155742" | |
| 15 | 16 | "wkttip" "SIM" |
| 16 | 17 | "permitedownload" "SIM" |
| 17 | 18 | "permitecomentario" "NAO" |
| 18 | 19 | "escondido" "NAO" |
| 19 | 20 | "download" "SIM" |
| 20 | - "ITENS" "gid,co_bairro,no_bairro,no_distr,no_municip" | |
| 21 | 21 | "CONEXAOORIGINAL" "i3geosaude" |
| 22 | - "transitioneffect" "NAO" | |
| 23 | - "permiteogc" "SIM" | |
| 22 | + "ITENS" "gid,co_bairro,no_bairro,no_distr,no_municip" | |
| 24 | 23 | "permitekml" "SIM" |
| 24 | + "permiteogc" "SIM" | |
| 25 | + "transitioneffect" "NAO" | |
| 25 | 26 | "TEMA" "_Bairros POSTGIS" |
| 26 | 27 | "identifica" "nao" |
| 27 | 28 | END # METADATA |
| ... | ... | @@ -41,4 +42,6 @@ MAP |
| 41 | 42 | TITLE "" |
| 42 | 43 | END # CLASS |
| 43 | 44 | END # LAYER |
| 45 | + | |
| 44 | 46 | END # MAP |
| 47 | + | ... | ... |
temas/_lbiomashp.map
| ... | ... | @@ -8,42 +8,42 @@ MAP |
| 8 | 8 | CONNECTION "" |
| 9 | 9 | DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" |
| 10 | 10 | METADATA |
| 11 | - "cache" "sim" | |
| 12 | 11 | "TIP" "CD_LEGENDA" |
| 13 | - "olopacity" "" | |
| 12 | + "cache" "sim" | |
| 14 | 13 | "CLASSE" "SIM" |
| 14 | + "olopacity" "" | |
| 15 | 15 | "animagif" "" |
| 16 | 16 | "permitekmz" "SIM" |
| 17 | 17 | "gmopacity" "" |
| 18 | 18 | "gmstatus" "" |
| 19 | 19 | "ITENSDESC" "Teste de acentuação" |
| 20 | - "editavel" "" | |
| 21 | - "ESCALA" "250000" | |
| 22 | 20 | "TILES" "SIM" |
| 21 | + "ESCALA" "250000" | |
| 22 | + "editavel" "" | |
| 23 | 23 | "arquivotemaoriginal" "" |
| 24 | 24 | "extensao" "-73.990940816816 -33.74827031115 -34.822855820777 5.272224303909" |
| 25 | - "olstatus" "" | |
| 26 | 25 | "nomeoriginal" "" |
| 26 | + "olstatus" "" | |
| 27 | 27 | "permitedownload" "SIM" |
| 28 | - "permitecomentario" "NAO" | |
| 29 | 28 | "FILTROORIGINAL" "" |
| 30 | - "escondido" "NAO" | |
| 29 | + "permitecomentario" "NAO" | |
| 31 | 30 | "DATAORIGINAL" "" |
| 32 | - "esquematabelaeditavel" "" | |
| 31 | + "escondido" "NAO" | |
| 33 | 32 | "download" "SIM" |
| 33 | + "esquematabelaeditavel" "" | |
| 34 | 34 | "itembuscarapida" "CD_LEGENDA" |
| 35 | - "tme" "" | |
| 36 | 35 | "ITENS" "CD_LEGENDA" |
| 37 | - "transitioneffect" "NAO" | |
| 38 | - "permiteogc" "SIM" | |
| 36 | + "tme" "" | |
| 39 | 37 | "permitekml" "SIM" |
| 40 | - "TEMA" "Biomas shapefile (acentuação)" | |
| 38 | + "permiteogc" "SIM" | |
| 39 | + "transitioneffect" "NAO" | |
| 41 | 40 | "convcaracter" "SIM" |
| 42 | - "colunageometria" "" | |
| 41 | + "TEMA" "Biomas shapefile (acentuação)" | |
| 43 | 42 | "colunaidunico" "" |
| 43 | + "colunageometria" "" | |
| 44 | 44 | "identifica" "sim" |
| 45 | - "storymap" "" | |
| 46 | 45 | "tabelaeditavel" "" |
| 46 | + "storymap" "" | |
| 47 | 47 | END # METADATA |
| 48 | 48 | NAME "_lbiomashp" |
| 49 | 49 | PROCESSING "ITEMS=CD_LEGENDA" | ... | ... |