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