Commit d9c89cf3775b69c066b1dcc440b3734c875df586
1 parent
c53f9f28
Exists in
master
and in
7 other branches
$1
Showing
5 changed files
with
128 additions
and
48 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/classe_analise.php
@@ -2041,7 +2041,7 @@ $temaPo - Tema poligonal. | @@ -2041,7 +2041,7 @@ $temaPo - Tema poligonal. | ||
2041 | 2041 | ||
2042 | $locaplic - Localização do I3geo | 2042 | $locaplic - Localização do I3geo |
2043 | */ | 2043 | */ |
2044 | - function nptPol($temaPt,$temaPo,$locaplic) | 2044 | + function nptPol($temaPt,$temaPo,$locaplic,$somaritem="") |
2045 | { | 2045 | { |
2046 | //error_reporting(0); | 2046 | //error_reporting(0); |
2047 | set_time_limit(180); | 2047 | set_time_limit(180); |
@@ -2064,45 +2064,81 @@ $locaplic - Localização do I3geo | @@ -2064,45 +2064,81 @@ $locaplic - Localização do I3geo | ||
2064 | $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON); | 2064 | $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON); |
2065 | // cria o dbf | 2065 | // cria o dbf |
2066 | $def = array(); | 2066 | $def = array(); |
2067 | - foreach ($itenspo as $ni) | ||
2068 | - {$def[] = array(substr($ni, 0, 10),"C","254");} | 2067 | + foreach ($itenspo as $ni){ |
2068 | + $def[] = array(substr($ni, 0, 10),"C","254"); | ||
2069 | + } | ||
2069 | $def[] = array("npontos","N","10","0"); | 2070 | $def[] = array("npontos","N","10","0"); |
2070 | - if($this->dbaseExiste == false) | ||
2071 | - {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);} | ||
2072 | - else | ||
2073 | - {$db = dbase_create($nomeshp.".dbf", $def);dbase_close($db);} | 2071 | + $def[] = array("soma","N","10","0"); |
2072 | + $def[] = array("media","N","10","0"); | ||
2073 | + if($this->dbaseExiste == false){ | ||
2074 | + $db = xbase_create($nomeshp.".dbf", $def);xbase_close($db); | ||
2075 | + } | ||
2076 | + else{ | ||
2077 | + $db = dbase_create($nomeshp.".dbf", $def);dbase_close($db); | ||
2078 | + } | ||
2074 | //acrescenta os pontos no novo shapefile | 2079 | //acrescenta os pontos no novo shapefile |
2075 | $dbname = $nomeshp.".dbf"; | 2080 | $dbname = $nomeshp.".dbf"; |
2076 | - if($this->dbaseExiste == false) | ||
2077 | - $db=xbase_open($dbname,2); | ||
2078 | - else | ||
2079 | - $db=dbase_open($dbname,2); | 2081 | + if($this->dbaseExiste == false){ |
2082 | + $db=xbase_open($dbname,2); | ||
2083 | + } | ||
2084 | + else{ | ||
2085 | + $db=dbase_open($dbname,2); | ||
2086 | + } | ||
2080 | $shapes = retornaShapesMapext($layerPo,$this->mapa); | 2087 | $shapes = retornaShapesMapext($layerPo,$this->mapa); |
2081 | - foreach($shapes as $shape) | ||
2082 | - { | 2088 | + foreach($shapes as $shape){ |
2083 | $novoreg = array(); | 2089 | $novoreg = array(); |
2084 | - foreach($itenspo as $ipo) | ||
2085 | - {$novoreg[] = $shape->values[$ipo];} | 2090 | + foreach($itenspo as $ipo){ |
2091 | + $novoreg[] = $shape->values[$ipo]; | ||
2092 | + } | ||
2086 | $layerPt->querybyshape($shape); | 2093 | $layerPt->querybyshape($shape); |
2087 | - $novoreg[] = $layerPt->getNumresults(); | 2094 | + if($somaritem != ""){ |
2095 | + $soma = 0; | ||
2096 | + $layerPt->open(); | ||
2097 | + $res_count = $layerPt->getNumresults(); | ||
2098 | + for ($i = 0; $i < $res_count; ++$i){ | ||
2099 | + if($this->v == 6){ | ||
2100 | + $s = $layerPt->getShape($layerPt->getResult($i)); | ||
2101 | + } | ||
2102 | + else{ | ||
2103 | + $result = $layerPt->getResult($i); | ||
2104 | + $shp_index = $result->shapeindex; | ||
2105 | + $s = $layerPt->getfeature($shp_index,-1); | ||
2106 | + } | ||
2107 | + $soma += $s->values[$somaritem]; | ||
2108 | + } | ||
2109 | + $fechou = $layerPt->close(); | ||
2110 | + $novoreg[] = $res_count; | ||
2111 | + $novoreg[] = $soma; | ||
2112 | + $novoreg[] = $soma / $res_count; | ||
2113 | + } | ||
2114 | + else{ | ||
2115 | + $novoreg[] = $layerPt->getNumresults(); | ||
2116 | + $novoreg[] = 0; | ||
2117 | + $novoreg[] = 0; | ||
2118 | + } | ||
2088 | $novoshpf->addShape($shape); | 2119 | $novoshpf->addShape($shape); |
2089 | - if($this->dbaseExiste == false) | ||
2090 | - xbase_add_record($db,$novoreg); | ||
2091 | - else | ||
2092 | - dbase_add_record($db,$novoreg); | 2120 | + if($this->dbaseExiste == false){ |
2121 | + xbase_add_record($db,$novoreg); | ||
2122 | + } | ||
2123 | + else{ | ||
2124 | + dbase_add_record($db,$novoreg); | ||
2125 | + } | ||
2126 | + } | ||
2127 | + if($this->dbaseExiste == false){ | ||
2128 | + xbase_close($db); | ||
2129 | + } | ||
2130 | + else{ | ||
2131 | + dbase_close($db); | ||
2093 | } | 2132 | } |
2094 | - if($this->dbaseExiste == false) | ||
2095 | - xbase_close($db); | ||
2096 | - else | ||
2097 | - dbase_close($db); | ||
2098 | //adiciona o novo tema no mapa | 2133 | //adiciona o novo tema no mapa |
2099 | $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,"N pontos",$metaClasse="SIM",false); | 2134 | $novolayer = criaLayer($this->mapa,MS_LAYER_POLYGON,MS_DEFAULT,"N pontos",$metaClasse="SIM",false); |
2100 | $novolayer->set("data",$nomeshp.".shp"); | 2135 | $novolayer->set("data",$nomeshp.".shp"); |
2101 | $novolayer->setmetadata("DOWNLOAD","SIM"); | 2136 | $novolayer->setmetadata("DOWNLOAD","SIM"); |
2102 | $novolayer->setmetadata("TEMALOCAL","SIM"); | 2137 | $novolayer->setmetadata("TEMALOCAL","SIM"); |
2103 | $novolayer->set("opacity","80"); | 2138 | $novolayer->set("opacity","80"); |
2104 | - if (file_exists($this->qyfile)) | ||
2105 | - {unlink ($this->qyfile);} | 2139 | + if (file_exists($this->qyfile)){ |
2140 | + unlink ($this->qyfile); | ||
2141 | + } | ||
2106 | return("ok"); | 2142 | return("ok"); |
2107 | } | 2143 | } |
2108 | /* | 2144 | /* |
ferramentas/nptpol/dicionario.js
@@ -41,5 +41,11 @@ pt:"Calcular", | @@ -41,5 +41,11 @@ pt:"Calcular", | ||
41 | en:"", | 41 | en:"", |
42 | es:"", | 42 | es:"", |
43 | it:"" | 43 | it:"" |
44 | +}], | ||
45 | +8: [{ | ||
46 | +pt:"(Opcional) Item da tabela que será somado", | ||
47 | +en:"", | ||
48 | +es:"", | ||
49 | +it:"" | ||
44 | }] | 50 | }] |
45 | }; | 51 | }; |
46 | \ No newline at end of file | 52 | \ No newline at end of file |
ferramentas/nptpol/exec.php
@@ -19,7 +19,7 @@ Salva o mapa acrescentando um novo layer com o resultado. | @@ -19,7 +19,7 @@ Salva o mapa acrescentando um novo layer com o resultado. | ||
19 | include_once(dirname(__FILE__)."/../../classesphp/classe_analise.php"); | 19 | include_once(dirname(__FILE__)."/../../classesphp/classe_analise.php"); |
20 | copiaSeguranca($map_file); | 20 | copiaSeguranca($map_file); |
21 | $m = new Analise($map_file,$tema,$locaplic,$ext); | 21 | $m = new Analise($map_file,$tema,$locaplic,$ext); |
22 | - $retorno = $m->nptPol($temaPt,$temaPo,$locaplic); | 22 | + $retorno = $m->nptPol($temaPt,$temaPo,$locaplic,$somaritem); |
23 | $m->salva(); | 23 | $m->salva(); |
24 | $_SESSION["contadorsalva"]++; | 24 | $_SESSION["contadorsalva"]++; |
25 | break; | 25 | break; |
ferramentas/nptpol/index.js
@@ -153,6 +153,10 @@ i3GEOF.nptpol = { | @@ -153,6 +153,10 @@ i3GEOF.nptpol = { | ||
153 | t1: function(){ | 153 | t1: function(){ |
154 | var ins = "<p class='paragrafo' >"+$trad(4,i3GEOF.nptpol.dicionario)+":<br>"; | 154 | var ins = "<p class='paragrafo' >"+$trad(4,i3GEOF.nptpol.dicionario)+":<br>"; |
155 | ins += "<div style='text-align:left;' id='i3GEOnptpolDivPontos' ></div><br>"; | 155 | ins += "<div style='text-align:left;' id='i3GEOnptpolDivPontos' ></div><br>"; |
156 | + | ||
157 | + ins += "<p class='paragrafo' >"+$trad(8,i3GEOF.nptpol.dicionario)+":<br>"; | ||
158 | + ins += "<div id=i3GEOnptpolondeItens style='text-align:left;display:block' >-</div><br>"; | ||
159 | + | ||
156 | ins += "<p class='paragrafo' >"+$trad(5,i3GEOF.nptpol.dicionario)+":<br>"; | 160 | ins += "<p class='paragrafo' >"+$trad(5,i3GEOF.nptpol.dicionario)+":<br>"; |
157 | ins += "<div style='text-align:left;' id='i3GEOnptpolDivPoligonos' ></div>"; | 161 | ins += "<div style='text-align:left;' id='i3GEOnptpolDivPoligonos' ></div>"; |
158 | i3GEO.util.proximoAnterior("i3GEOF.nptpol.t0()","i3GEOF.nptpol.t2()",ins,"i3GEOF.nptpol.t1","i3GEOnptpolresultado"); | 162 | i3GEO.util.proximoAnterior("i3GEOF.nptpol.t0()","i3GEOF.nptpol.t2()",ins,"i3GEOF.nptpol.t1","i3GEOnptpolresultado"); |
@@ -183,20 +187,22 @@ i3GEOF.nptpol = { | @@ -183,20 +187,22 @@ i3GEOF.nptpol = { | ||
183 | {return;} | 187 | {return;} |
184 | i3GEOF.nptpol.aguarde.visibility = "visible"; | 188 | i3GEOF.nptpol.aguarde.visibility = "visible"; |
185 | var p, | 189 | var p, |
186 | - cp, | ||
187 | - fim = function(retorno){ | ||
188 | - if (retorno.data==undefined ) | ||
189 | - {$i("i3GEOnptpolfim").innerHTML = "<p class='paragrafo' >Erro";} | ||
190 | - else | ||
191 | - {i3GEO.atualiza();} | ||
192 | - i3GEOF.nptpol.aguarde.visibility = "hidden"; | ||
193 | - }, | ||
194 | - ext; | 190 | + cp, |
191 | + somaritem = $i("i3GEOnptpoltemasItem").value, | ||
192 | + fim = function(retorno){ | ||
193 | + if (retorno.data==undefined ) | ||
194 | + {$i("i3GEOnptpolfim").innerHTML = "<p class='paragrafo' >Erro";} | ||
195 | + else | ||
196 | + {i3GEO.atualiza();} | ||
197 | + i3GEOF.nptpol.aguarde.visibility = "hidden"; | ||
198 | + }, | ||
199 | + ext; | ||
195 | if(i3GEO.Interface.ATUAL === "googlemaps") | 200 | if(i3GEO.Interface.ATUAL === "googlemaps") |
196 | {ext = i3GEO.Interface.googlemaps.bbox();} | 201 | {ext = i3GEO.Interface.googlemaps.bbox();} |
197 | else | 202 | else |
198 | {ext = i3GEO.parametros.mapexten;} | 203 | {ext = i3GEO.parametros.mapexten;} |
199 | p = i3GEO.configura.locaplic+"/ferramentas/nptpol/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=nptPol&temaPt="+$i("i3GEOnptpolPontos").value+"&temaPo="+$i("i3GEOnptpolPoligonos").value+"&ext="+ext; | 204 | p = i3GEO.configura.locaplic+"/ferramentas/nptpol/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=nptPol&temaPt="+$i("i3GEOnptpolPontos").value+"&temaPo="+$i("i3GEOnptpolPoligonos").value+"&ext="+ext; |
205 | + p += "&somaritem="+somaritem; | ||
200 | cp = new cpaint(); | 206 | cp = new cpaint(); |
201 | cp.set_response_type("JSON"); | 207 | cp.set_response_type("JSON"); |
202 | cp.call(p,"nptpol",fim); | 208 | cp.call(p,"nptpol",fim); |
@@ -216,15 +222,20 @@ i3GEOF.nptpol = { | @@ -216,15 +222,20 @@ i3GEOF.nptpol = { | ||
216 | i3GEO.util.comboTemas( | 222 | i3GEO.util.comboTemas( |
217 | "i3GEOnptpolPontos", | 223 | "i3GEOnptpolPontos", |
218 | function(retorno){ | 224 | function(retorno){ |
219 | - $i("i3GEOnptpolDivPontos").innerHTML = retorno.dados; | ||
220 | - $i("i3GEOnptpolDivPontos").style.display = "block"; | ||
221 | - if ($i("i3GEOnptpolPontos")){ | ||
222 | - $i("i3GEOnptpolPontos").onchange = function(){ | ||
223 | - i3GEO.mapa.ativaTema($i("i3GEOnptpolPontos").value); | ||
224 | - }; | 225 | + $i("i3GEOnptpolDivPontos").innerHTML = retorno.dados; |
226 | + $i("i3GEOnptpolDivPontos").style.display = "block"; | ||
227 | + if ($i("i3GEOnptpolPontos")){ | ||
228 | + $i("i3GEOnptpolPontos").onchange = function(){ | ||
229 | + var v = $i("i3GEOnptpolPontos").value; | ||
230 | + i3GEO.mapa.ativaTema(v); | ||
231 | + if(v != ""){ | ||
232 | + i3GEOF.nptpol.comboItens(); | ||
233 | + } | ||
234 | + }; | ||
225 | } | 235 | } |
226 | if(i3GEO.temaAtivo !== ""){ | 236 | if(i3GEO.temaAtivo !== ""){ |
227 | $i("i3GEOnptpolPontos").value = i3GEO.temaAtivo; | 237 | $i("i3GEOnptpolPontos").value = i3GEO.temaAtivo; |
238 | + i3GEOF.nptpol.comboItens(); | ||
228 | } | 239 | } |
229 | }, | 240 | }, |
230 | "i3GEOnptpolDivPontos", | 241 | "i3GEOnptpolDivPontos", |
@@ -246,12 +257,12 @@ i3GEOF.nptpol = { | @@ -246,12 +257,12 @@ i3GEOF.nptpol = { | ||
246 | i3GEO.util.comboTemas( | 257 | i3GEO.util.comboTemas( |
247 | "i3GEOnptpolPoligonos", | 258 | "i3GEOnptpolPoligonos", |
248 | function(retorno){ | 259 | function(retorno){ |
249 | - $i("i3GEOnptpolDivPoligonos").innerHTML = retorno.dados; | ||
250 | - $i("i3GEOnptpolDivPoligonos").style.display = "block"; | ||
251 | - if ($i("i3GEOnptpolPoligonos")){ | ||
252 | - $i("i3GEOnptpolPoligonos").onchange = function(){ | ||
253 | - i3GEO.mapa.ativaTema($i("i3GEOnptpolPoligonos").value); | ||
254 | - }; | 260 | + $i("i3GEOnptpolDivPoligonos").innerHTML = retorno.dados; |
261 | + $i("i3GEOnptpolDivPoligonos").style.display = "block"; | ||
262 | + if ($i("i3GEOnptpolPoligonos")){ | ||
263 | + $i("i3GEOnptpolPoligonos").onchange = function(){ | ||
264 | + i3GEO.mapa.ativaTema($i("i3GEOnptpolPoligonos").value); | ||
265 | + }; | ||
255 | } | 266 | } |
256 | if(i3GEO.temaAtivo !== ""){ | 267 | if(i3GEO.temaAtivo !== ""){ |
257 | $i("i3GEOnptpolPoligonos").value = i3GEO.temaAtivo; | 268 | $i("i3GEOnptpolPoligonos").value = i3GEO.temaAtivo; |
@@ -262,5 +273,32 @@ i3GEOF.nptpol = { | @@ -262,5 +273,32 @@ i3GEOF.nptpol = { | ||
262 | false, | 273 | false, |
263 | "poligonos" | 274 | "poligonos" |
264 | ); | 275 | ); |
276 | + }, | ||
277 | + /* | ||
278 | + Function: comboItens | ||
279 | + | ||
280 | + Cria um combo para escolha de um item do tema | ||
281 | + | ||
282 | + Veja: | ||
283 | + | ||
284 | + <i3GEO.util.comboItens> | ||
285 | + | ||
286 | + */ | ||
287 | + comboItens: function(){ | ||
288 | + var tema = $i("i3GEOnptpolPontos").value; | ||
289 | + if(tema != ""){ | ||
290 | + i3GEO.util.comboItens( | ||
291 | + "i3GEOnptpoltemasItem", | ||
292 | + tema, | ||
293 | + function(retorno){ | ||
294 | + $i("i3GEOnptpolondeItens").innerHTML = retorno.dados; | ||
295 | + $i("i3GEOnptpolondeItens").style.display = "block"; | ||
296 | + }, | ||
297 | + "i3GEOnptpolondeItens" | ||
298 | + ); | ||
299 | + } | ||
300 | + else{ | ||
301 | + $i("i3GEOnptpolondeItens").innerHTML = "-"; | ||
302 | + } | ||
265 | } | 303 | } |
266 | }; | 304 | }; |
267 | \ No newline at end of file | 305 | \ No newline at end of file |