Commit c53f9f280e2d2724441a794428979967f6c20475
1 parent
45b6b41c
Exists in
master
and in
7 other branches
$1
Showing
5 changed files
with
90 additions
and
44 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/classe_analise.php
... | ... | @@ -100,24 +100,24 @@ $ext - Extensão geográfica do mapa |
100 | 100 | */ |
101 | 101 | function __construct($map_file,$tema="",$locaplic="",$ext="") |
102 | 102 | { |
103 | - //error_reporting(0); | |
103 | + //error_reporting(0); | |
104 | 104 | $this->qyfile = str_replace(".map",".qy",$map_file); |
105 | - include_once(dirname(__FILE__)."/funcoes_gerais.php"); | |
105 | + include_once(dirname(__FILE__)."/funcoes_gerais.php"); | |
106 | 106 | if(empty($locaplic)){ |
107 | 107 | $locaplic = dirname(__FILE__)."/.."; |
108 | 108 | } |
109 | - $this->v = versao(); | |
109 | + $this->v = versao(); | |
110 | 110 | $this->v = $this->v["principal"]; |
111 | 111 | $this->dbaseExiste = false; |
112 | 112 | if(function_exists("dbase_create")) |
113 | 113 | {$this->dbaseExiste = true;} |
114 | - $this->locaplic = $locaplic; | |
115 | - $this->mapa = ms_newMapObj($map_file); | |
116 | - $this->arquivo = $map_file; | |
117 | - if($tema != "" && @$this->mapa->getlayerbyname($tema)) | |
118 | - {$this->layer = $this->mapa->getlayerbyname($tema);} | |
119 | - $this->nome = $tema; | |
120 | - $this->diretorio = dirname($this->arquivo); | |
114 | + $this->locaplic = $locaplic; | |
115 | + $this->mapa = ms_newMapObj($map_file); | |
116 | + $this->arquivo = $map_file; | |
117 | + if($tema != "" && @$this->mapa->getlayerbyname($tema)) | |
118 | + {$this->layer = $this->mapa->getlayerbyname($tema);} | |
119 | + $this->nome = $tema; | |
120 | + $this->diretorio = dirname($this->arquivo); | |
121 | 121 | if($ext && $ext != ""){ |
122 | 122 | $e = explode(" ",$ext); |
123 | 123 | $extatual = $this->mapa->extent; |
... | ... | @@ -169,10 +169,10 @@ Method: salva |
169 | 169 | |
170 | 170 | Salva o mapfile atual |
171 | 171 | */ |
172 | - function salva() | |
173 | - { | |
174 | - if (connection_aborted()){exit();} | |
175 | - $this->mapa->save($this->arquivo); | |
172 | + function salva() | |
173 | + { | |
174 | + if (connection_aborted()){exit();} | |
175 | + $this->mapa->save($this->arquivo); | |
176 | 176 | } |
177 | 177 | |
178 | 178 | /* |
... | ... | @@ -733,7 +733,7 @@ $locaplic - diretório da aplicação i3geo |
733 | 733 | { |
734 | 734 | if (file_exists($nomearq)) |
735 | 735 | { |
736 | - if($this->dbaseExiste == false){ | |
736 | + if($this->dbaseExiste == false){ | |
737 | 737 | if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) |
738 | 738 | include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); |
739 | 739 | else |
... | ... | @@ -827,7 +827,7 @@ $locaplic - diretório da aplicação i3geo |
827 | 827 | { |
828 | 828 | if (file_exists($nomearq)) |
829 | 829 | { |
830 | - if($this->dbaseExiste == false){ | |
830 | + if($this->dbaseExiste == false){ | |
831 | 831 | if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) |
832 | 832 | include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); |
833 | 833 | else |
... | ... | @@ -1303,11 +1303,15 @@ $unir - sim|nao indica se os elementos selecionados deverão ser unidos em |
1303 | 1303 | $wkt - (opcional) elemento no formato wkt para o qual o buffer será gerado. Só de ve ser definido se $this->nome for vazio, ou seja |
1304 | 1304 | se o parâmetro "tema" não tiver sido fornecido ao construtor da classe |
1305 | 1305 | |
1306 | +$multiplicar - (opcional) multiplicar os valores por | |
1307 | + | |
1308 | +$itemdistancia - (opcional) coluna com os valores | |
1309 | + | |
1306 | 1310 | return: |
1307 | 1311 | |
1308 | 1312 | nome do layer criado com o buffer. |
1309 | 1313 | */ |
1310 | - function criaBuffer($distancia,$locaplic,$unir="nao",$wkt="") | |
1314 | + function criaBuffer($distancia,$locaplic,$unir="nao",$wkt="",$multiplicar=1,$itemdistancia="") | |
1311 | 1315 | { |
1312 | 1316 | set_time_limit(180); |
1313 | 1317 | error_reporting(0); |
... | ... | @@ -1345,18 +1349,22 @@ nome do layer criado com o buffer. |
1345 | 1349 | $dd1->setXY($rect->minx, $rect->miny); |
1346 | 1350 | $poPoint->project($projInObj, $projOutObj); |
1347 | 1351 | $dd2 = ms_newpointobj(); |
1348 | - $dd2->setXY(($poPoint->x + $distancia), $poPoint->y); | |
1349 | - $dd2->project($projOutObj,$projInObj); | |
1350 | - $d = $dd1->distanceToPoint($dd2); | |
1351 | - if ($distancia < 0){$d = $d * -1;} | |
1352 | - //calcula a distancia 29100 | |
1353 | - //gera o buffer | |
1354 | - $buffers[] = $shape->buffer($d); | |
1355 | - $shapes[] = $shape; | |
1352 | + if($itemdistancia != ""){ | |
1353 | + $distancia = $shape->values[$itemdistancia]; | |
1354 | + } | |
1355 | + if(is_numeric($distancia)){ | |
1356 | + $dd2->setXY(($poPoint->x) + ($distancia * $multiplicar), $poPoint->y); | |
1357 | + $dd2->project($projOutObj,$projInObj); | |
1358 | + $d = $dd1->distanceToPoint($dd2); | |
1359 | + if ($distancia < 0){$d = $d * -1;} | |
1360 | + //calcula a distancia 29100 | |
1361 | + //gera o buffer | |
1362 | + $buffers[] = $shape->buffer($d); | |
1363 | + $shapes[] = $shape; | |
1364 | + } | |
1356 | 1365 | } |
1357 | 1366 | //faz a união dos elementos se necessário |
1358 | - if($unir == "sim") | |
1359 | - { | |
1367 | + if($unir == "sim"){ | |
1360 | 1368 | $ns = $buffers[0]; |
1361 | 1369 | for($s=1;$s < count($buffers);$s++) |
1362 | 1370 | {$ns = $ns->union($buffers[$s]);} |
... | ... | @@ -2419,7 +2427,7 @@ $operacao - Tipo de an&aacute;lise. |
2419 | 2427 | $statusoriginal = $sb->status; |
2420 | 2428 | $sb->set("status",MS_OFF); |
2421 | 2429 | $ext->setextent(($bounds->minx),($bounds->miny),($bounds->maxx),($bounds->maxy)); |
2422 | - $imagem = gravaImagemMapa($this->mapa); | |
2430 | + $imagem = gravaImagemMapa($this->mapa); | |
2423 | 2431 | $this->mapa->setsize($w,$h); |
2424 | 2432 | $ext->setextent($minx,$miny,$maxx,$maxy); |
2425 | 2433 | $nlayer->set("status",MS_DELETE); |
... | ... | @@ -2461,7 +2469,7 @@ $operacao - Tipo de an&aacute;lise. |
2461 | 2469 | //verifica a versão do mapserver |
2462 | 2470 | //se for anterior a 5, utiliza a conexão com o postgis para fazer o processamento dos daods |
2463 | 2471 | // |
2464 | - $v = versao(); | |
2472 | + $v = versao(); | |
2465 | 2473 | if (($v["principal"] < 5)) |
2466 | 2474 | {return ("erro. E necessario uma versão maior que 5.0 do Mapserver.");} |
2467 | 2475 | foreach ($geos["dados"] as &$geo) | ... | ... |
ferramentas/buffer/dicionario.js
... | ... | @@ -19,7 +19,7 @@ es:"", |
19 | 19 | it:"" |
20 | 20 | }], |
21 | 21 | 4: [{ |
22 | -pt:"Distância do entorno em metros", | |
22 | +pt:"Distância do entorno em metros:", | |
23 | 23 | en:"", |
24 | 24 | es:"", |
25 | 25 | it:"" |
... | ... | @@ -55,7 +55,13 @@ es:"", |
55 | 55 | it:"" |
56 | 56 | }], |
57 | 57 | 10: [{ |
58 | -pt:"", | |
58 | +pt:"Ou um item da tabela de atributos que contém as distâncias:", | |
59 | +en:"", | |
60 | +es:"", | |
61 | +it:"" | |
62 | +}], | |
63 | +11: [{ | |
64 | +pt:"Multiplicar por:", | |
59 | 65 | en:"", |
60 | 66 | es:"", |
61 | 67 | it:"" | ... | ... |
ferramentas/buffer/exec.php
... | ... | @@ -19,7 +19,7 @@ Salva o mapa acrescentando um novo layer com o buffer. |
19 | 19 | include_once(dirname(__FILE__)."/../../classesphp/classe_analise.php"); |
20 | 20 | copiaSeguranca($map_file); |
21 | 21 | $m = new Analise($map_file,$tema,$locaplic,$ext); |
22 | - $retorno = $m->criaBuffer($distancia,$locaplic,$unir,$wkt); | |
22 | + $retorno = $m->criaBuffer($distancia,$locaplic,$unir,$wkt,$multiplicar,$itemdistancia); | |
23 | 23 | $m->salva(); |
24 | 24 | $_SESSION["contadorsalva"]++; |
25 | 25 | //limpa selecao | ... | ... |
ferramentas/buffer/index.js
... | ... | @@ -160,10 +160,15 @@ i3GEOF.buffer = { |
160 | 160 | }, |
161 | 161 | t2: function(){ |
162 | 162 | var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.buffer.dicionario); |
163 | - ins += "<br><br><input onclick='javascript:this.select();' class=digitar id='i3GEObufferd' type=text size=10 value='0'/><br>"; | |
164 | - ins += "<p class='paragrafo'>"+$trad(5,i3GEOF.buffer.dicionario); | |
165 | - ins += "<br><br><select id=i3GEObufferunir ><option value=nao selected >"+$trad("x15")+"</option><option value=sim >"+$trad("x14")+"</option></select>"; | |
163 | + ins += "<br></p><input onclick='javascript:this.select();' class=digitar id='i3GEObufferd' type=text size=10 value='0'/>"; | |
164 | + | |
165 | + ins += "<br><br><p class='paragrafo' >"+$trad(10,i3GEOF.buffer.dicionario); | |
166 | + ins += "<br></p><div id=i3GEObufferondeItens style='text-align:left;display:block' ></div> "; | |
167 | + | |
168 | + ins += "<br><p class='paragrafo'>"+$trad(5,i3GEOF.buffer.dicionario); | |
169 | + ins += "<br></p><select id=i3GEObufferunir ><option value=nao selected >"+$trad("x15")+"</option><option value=sim >"+$trad("x14")+"</option></select>"; | |
166 | 170 | i3GEO.util.proximoAnterior("i3GEOF.buffer.t1()","i3GEOF.buffer.t3()",ins,"i3GEOF.buffer.t2","i3GEObufferresultado"); |
171 | + i3GEOF.buffer.comboItens(); | |
167 | 172 | }, |
168 | 173 | t3: function(){ |
169 | 174 | var ins = "<p class='paragrafo'>"+$trad(6,i3GEOF.buffer.dicionario); |
... | ... | @@ -189,11 +194,12 @@ i3GEOF.buffer = { |
189 | 194 | {return;} |
190 | 195 | var distancia = $i("i3GEObufferd").value, |
191 | 196 | tema = $i("i3GEObuffertemasComSel").value, |
197 | + multiplicar = $i("i3GEObufferdfator").value*1, | |
198 | + itemdistancia = $i("i3GEObuffertemasItem").value, | |
192 | 199 | p, |
193 | 200 | fim, |
194 | 201 | cp; |
195 | - if (distancia*1 !== 0) | |
196 | - { | |
202 | + if (distancia*1 !== 0 || itemdistancia != ""){ | |
197 | 203 | i3GEOF.buffer.aguarde.visibility = "visible"; |
198 | 204 | fim = function(retorno){ |
199 | 205 | i3GEOF.buffer.aguarde.visibility = "hidden"; |
... | ... | @@ -202,7 +208,12 @@ i3GEOF.buffer = { |
202 | 208 | else |
203 | 209 | {i3GEO.atualiza();} |
204 | 210 | }; |
205 | - p = i3GEO.configura.locaplic+"/ferramentas/buffer/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=criabuffer&tema="+tema+"&distancia="+distancia+"&unir="+$i("i3GEObufferunir").value; | |
211 | + p = i3GEO.configura.locaplic+"/ferramentas/buffer/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=criabuffer&tema="+tema+"&unir="+$i("i3GEObufferunir").value; | |
212 | + if(itemdistancia != ""){ | |
213 | + p += "&distancia=0&itemdistancia="+itemdistancia+"&multiplicar="+multiplicar; | |
214 | + }else{ | |
215 | + p += "&distancia=" + distancia*1 + "&itemdistancia=&multiplicar=1"; | |
216 | + } | |
206 | 217 | cp = new cpaint(); |
207 | 218 | cp.set_response_type("JSON"); |
208 | 219 | cp.call(p,"criaBuffer",fim); |
... | ... | @@ -225,12 +236,12 @@ i3GEOF.buffer = { |
225 | 236 | i3GEO.util.comboTemas( |
226 | 237 | "i3GEObuffertemasComSel", |
227 | 238 | function(retorno){ |
228 | - $i("i3GEObufferSelTemas").innerHTML = retorno.dados; | |
229 | - $i("i3GEObufferSelTemas").style.display = "block"; | |
230 | - if ($i("i3GEObuffertemasComSel")){ | |
231 | - $i("i3GEObuffertemasComSel").onchange = function(){ | |
232 | - i3GEO.mapa.ativaTema($i("i3GEObuffertemasComSel").value); | |
233 | - }; | |
239 | + $i("i3GEObufferSelTemas").innerHTML = retorno.dados; | |
240 | + $i("i3GEObufferSelTemas").style.display = "block"; | |
241 | + if ($i("i3GEObuffertemasComSel")){ | |
242 | + $i("i3GEObuffertemasComSel").onchange = function(){ | |
243 | + i3GEO.mapa.ativaTema($i("i3GEObuffertemasComSel").value); | |
244 | + }; | |
234 | 245 | } |
235 | 246 | if(i3GEO.temaAtivo !== ""){ |
236 | 247 | $i("i3GEObuffertemasComSel").value = i3GEO.temaAtivo; |
... | ... | @@ -242,5 +253,26 @@ i3GEOF.buffer = { |
242 | 253 | false, |
243 | 254 | "selecionados" |
244 | 255 | ); |
256 | + }, | |
257 | + /* | |
258 | + Function: comboItens | |
259 | + | |
260 | + Cria um combo para escolha de um item do tema | |
261 | + | |
262 | + Veja: | |
263 | + | |
264 | + <i3GEO.util.comboItens> | |
265 | + | |
266 | + */ | |
267 | + comboItens: function(){ | |
268 | + i3GEO.util.comboItens( | |
269 | + "i3GEObuffertemasItem", | |
270 | + $i("i3GEObuffertemasComSel").value, | |
271 | + function(retorno){ | |
272 | + $i("i3GEObufferondeItens").innerHTML = retorno.dados + " " + $trad(11,i3GEOF.buffer.dicionario)+" <input onclick='javascript:this.select();' class=digitar id='i3GEObufferdfator' type=text size=10 value='1'/>"; | |
273 | + $i("i3GEObufferondeItens").style.display = "block"; | |
274 | + }, | |
275 | + "i3GEObufferondeItens" | |
276 | + ); | |
245 | 277 | } |
246 | 278 | }; |
247 | 279 | \ No newline at end of file | ... | ... |