Commit 9289b7e937c559ddad6e49744c733de7ae3d70e0

Authored by Edmar Moretti
1 parent 4da76dc9

validação dasopções de getlayrbyname e layer->open

classesphp/atlas_controle.php
@@ -212,10 +212,10 @@ function gravaid() @@ -212,10 +212,10 @@ function gravaid()
212 $_SESSION["utilizacgi"] = "nao"; 212 $_SESSION["utilizacgi"] = "nao";
213 $_SESSION["atlasxml"] = $atlasxmltemp; 213 $_SESSION["atlasxml"] = $atlasxmltemp;
214 $m = ms_newMapObj($tmpfname); 214 $m = ms_newMapObj($tmpfname);
215 - $nomes = $m->getalllayernames();  
216 - foreach($nomes as $n) 215 + $c = $m->numlayers;
  216 + for ($i=0;$i < $c;++$i)
217 { 217 {
218 - $l = $m->getlayerbyname($n); 218 + $l = $m->getlayer($i);
219 $l->setmetadata("ATLAS","nao"); 219 $l->setmetadata("ATLAS","nao");
220 $l->setmetadata("TIP",""); 220 $l->setmetadata("TIP","");
221 } 221 }
classesphp/classe_alteraclasse.php
@@ -83,7 +83,7 @@ $tema - nome do tema @@ -83,7 +83,7 @@ $tema - nome do tema
83 $this->mapa = ms_newMapObj($map_file); 83 $this->mapa = ms_newMapObj($map_file);
84 $this->arquivo = $map_file; 84 $this->arquivo = $map_file;
85 $this->layer = ""; 85 $this->layer = "";
86 - if($tema != "") 86 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
87 $this->layer = $this->mapa->getlayerbyname($tema); 87 $this->layer = $this->mapa->getlayerbyname($tema);
88 $this->nome = $tema; 88 $this->nome = $tema;
89 } 89 }
@@ -106,6 +106,7 @@ Todos os elementos passarão a ser desenhados conforme essa primeira classe, uma @@ -106,6 +106,7 @@ Todos os elementos passarão a ser desenhados conforme essa primeira classe, uma
106 */ 106 */
107 function simbolounico() 107 function simbolounico()
108 { 108 {
  109 + if(!$this->layer){return "erro";}
109 $numclasses = $this->layer->numclasses; 110 $numclasses = $this->layer->numclasses;
110 if ($numclasses > 0) 111 if ($numclasses > 0)
111 { 112 {
@@ -197,6 +198,7 @@ $ignorar - valor que será ignorado na listagem final @@ -197,6 +198,7 @@ $ignorar - valor que será ignorado na listagem final
197 */ 198 */
198 function intervalosiguais($item,$nclasses,$ignorar) 199 function intervalosiguais($item,$nclasses,$ignorar)
199 { 200 {
  201 + if(!$this->layer){return "erro";}
200 $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar); 202 $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar);
201 if (count($valores) > 0) 203 if (count($valores) > 0)
202 { 204 {
@@ -257,6 +259,7 @@ Include: @@ -257,6 +259,7 @@ Include:
257 */ 259 */
258 function quartis($item,$ignorar) 260 function quartis($item,$ignorar)
259 { 261 {
  262 + if(!$this->layer){return "erro";}
260 $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar); 263 $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar);
261 if (count($valores) > 0) 264 if (count($valores) > 0)
262 { 265 {
@@ -315,6 +318,7 @@ $ignorar - valor que será ignorado na listagem final @@ -315,6 +318,7 @@ $ignorar - valor que será ignorado na listagem final
315 */ 318 */
316 function valorunico($item,$ignorar) 319 function valorunico($item,$ignorar)
317 { 320 {
  321 + if(!$this->layer){return "erro";}
318 // pega valores 322 // pega valores
319 $valoresu = array_unique(pegaValores($this->mapa,$this->layer,$item,false,$ignorar)); 323 $valoresu = array_unique(pegaValores($this->mapa,$this->layer,$item,false,$ignorar));
320 // processa array com os valores 324 // processa array com os valores
@@ -367,6 +371,7 @@ A nova classe será uma cópia da classe 0. @@ -367,6 +371,7 @@ A nova classe será uma cópia da classe 0.
367 */ 371 */
368 function adicionaclasse() 372 function adicionaclasse()
369 { 373 {
  374 + if(!$this->layer){return "erro";}
370 $classe = $this->layer->getclass(0); 375 $classe = $this->layer->getclass(0);
371 $c = ms_newClassObj($this->layer, $classe); 376 $c = ms_newClassObj($this->layer, $classe);
372 //$classe = $this->layer->getclass(0); 377 //$classe = $this->layer->getclass(0);
@@ -388,6 +393,7 @@ Include: @@ -388,6 +393,7 @@ Include:
388 */ 393 */
389 function alteraCoresClasses($cori,$corf) 394 function alteraCoresClasses($cori,$corf)
390 { 395 {
  396 + if(!$this->layer){return "erro";}
391 if(file_exists($this->locaplic."/class.palette.php")) 397 if(file_exists($this->locaplic."/class.palette.php"))
392 include_once($this->locaplic."/class.palette.php"); 398 include_once($this->locaplic."/class.palette.php");
393 else 399 else
@@ -419,6 +425,7 @@ Inverte as cores da legenda de um tema. @@ -419,6 +425,7 @@ Inverte as cores da legenda de um tema.
419 */ 425 */
420 function inverteCoresClasses() 426 function inverteCoresClasses()
421 { 427 {
  428 + if(!$this->layer){return "erro";}
422 $numclasses = $this->layer->numclasses; 429 $numclasses = $this->layer->numclasses;
423 for($i=0;$i<$numclasses;++$i) 430 for($i=0;$i<$numclasses;++$i)
424 { 431 {
@@ -444,6 +451,7 @@ Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo. @@ -444,6 +451,7 @@ Calcula o tamanho dos estilos das classes, alterando o tamanho do símbolo.
444 */ 451 */
445 function calculaTamanhoClasses() 452 function calculaTamanhoClasses()
446 { 453 {
  454 + if(!$this->layer){return "erro";}
447 $numclasses = $this->layer->numclasses; 455 $numclasses = $this->layer->numclasses;
448 for($i=0;$i<$numclasses;++$i) 456 for($i=0;$i<$numclasses;++$i)
449 { 457 {
@@ -474,6 +482,7 @@ $classe - id da classe @@ -474,6 +482,7 @@ $classe - id da classe
474 */ 482 */
475 function statusClasse($classe) 483 function statusClasse($classe)
476 { 484 {
  485 + if(!$this->layer){return "erro";}
477 $classe = $this->layer->getclass($classe); 486 $classe = $this->layer->getclass($classe);
478 $status = $classe->status; 487 $status = $classe->status;
479 if ($status == MS_OFF) 488 if ($status == MS_OFF)
classesphp/classe_analise.php
@@ -85,7 +85,7 @@ $tema - Nome do tema que será processado @@ -85,7 +85,7 @@ $tema - Nome do tema que será processado
85 $this->locaplic = $locaplic; 85 $this->locaplic = $locaplic;
86 $this->mapa = ms_newMapObj($map_file); 86 $this->mapa = ms_newMapObj($map_file);
87 $this->arquivo = $map_file; 87 $this->arquivo = $map_file;
88 - if($tema != "") 88 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
89 $this->layer = $this->mapa->getlayerbyname($tema); 89 $this->layer = $this->mapa->getlayerbyname($tema);
90 $this->nome = $tema; 90 $this->nome = $tema;
91 $this->diretorio = dirname($this->arquivo); 91 $this->diretorio = dirname($this->arquivo);
@@ -906,7 +906,8 @@ $locaplic - Localização do I3geo. @@ -906,7 +906,8 @@ $locaplic - Localização do I3geo.
906 $res_count = $layerPt->getNumresults(); 906 $res_count = $layerPt->getNumresults();
907 $pontos = array(); 907 $pontos = array();
908 //pega um shape especifico 908 //pega um shape especifico
909 - $layerPt->open(); 909 + $sopen = $layerPt->open();
  910 + if($sopen == MS_FAILURE){return "erro";}
910 for ($i = 0; $i < $res_count; ++$i) 911 for ($i = 0; $i < $res_count; ++$i)
911 { 912 {
912 $result = $layerPt->getResult($i); 913 $result = $layerPt->getResult($i);
@@ -947,7 +948,8 @@ $locaplic - Localização do I3geo. @@ -947,7 +948,8 @@ $locaplic - Localização do I3geo.
947 $dbname = $nomeshp.".dbf"; 948 $dbname = $nomeshp.".dbf";
948 foreach($pontos as $ponto) 949 foreach($pontos as $ponto)
949 { 950 {
950 - $layerPt->open(); 951 + $sopen = $layerPt->open();
  952 + if($sopen == MS_FAILURE){return "erro";}
951 foreach ($itemspt as $ni) 953 foreach ($itemspt as $ni)
952 {$reg[] = $ponto->values[$ni];} 954 {$reg[] = $ponto->values[$ni];}
953 $layerPt->close(); 955 $layerPt->close();
@@ -963,7 +965,8 @@ $locaplic - Localização do I3geo. @@ -963,7 +965,8 @@ $locaplic - Localização do I3geo.
963 $ident = @$layer->queryByPoint($pt, 0, 0); 965 $ident = @$layer->queryByPoint($pt, 0, 0);
964 $itens = pegaItens($layer); 966 $itens = pegaItens($layer);
965 $res_count = $layer->getNumresults(); 967 $res_count = $layer->getNumresults();
966 - $layer->open(); 968 + $sopen = $layer->open();
  969 + if($sopen == MS_FAILURE){return "erro";}
967 if ($res_count > 0) 970 if ($res_count > 0)
968 { 971 {
969 $result = $layer->getResult(0); 972 $result = $layer->getResult(0);
@@ -1037,38 +1040,30 @@ function distanciaptpt($temaorigem,$temadestino,$temaoverlay,$locaplic,$itemorig @@ -1037,38 +1040,30 @@ function distanciaptpt($temaorigem,$temadestino,$temaoverlay,$locaplic,$itemorig
1037 $layerorigem = $this->mapa->getlayerbyname($temaorigem); 1040 $layerorigem = $this->mapa->getlayerbyname($temaorigem);
1038 $layerdestino = $this->mapa->getlayerbyname($temadestino); 1041 $layerdestino = $this->mapa->getlayerbyname($temadestino);
1039 $layeroverlay = $this->mapa->getlayerbyname($temaoverlay); 1042 $layeroverlay = $this->mapa->getlayerbyname($temaoverlay);
1040 - if (@$layerorigem->open() == MS_SUCCESS) 1043 + $sopen = $layerorigem->open();
  1044 + if($sopen == MS_FAILURE){return "erro";}
  1045 + $res_count = $layerorigem->getNumresults();
  1046 + for ($i = 0; $i < $res_count; ++$i)
1041 { 1047 {
1042 - $layerorigem->open();  
1043 - $res_count = $layerorigem->getNumresults();  
1044 - for ($i = 0; $i < $res_count; ++$i)  
1045 - {  
1046 - $result = $layerorigem->getResult($i);  
1047 - $shp_index = $result->shapeindex;  
1048 - $shapesorigem[] = $layerorigem->getshape(-1, $shp_index);  
1049 - }  
1050 - $layerorigem->close(); 1048 + $result = $layerorigem->getResult($i);
  1049 + $shp_index = $result->shapeindex;
  1050 + $shapesorigem[] = $layerorigem->getshape(-1, $shp_index);
1051 } 1051 }
1052 - else  
1053 - {return "erro";} 1052 + $layerorigem->close();
1054 $layeroverlay->set("tolerance",0); 1053 $layeroverlay->set("tolerance",0);
1055 $layerdestino->set("tolerance",0); 1054 $layerdestino->set("tolerance",0);
1056 $layeroverlay->queryByrect($this->mapa->extent); 1055 $layeroverlay->queryByrect($this->mapa->extent);
1057 $layerdestino->queryByFeatures($layeroverlay->index); 1056 $layerdestino->queryByFeatures($layeroverlay->index);
1058 - if (@$layerdestino->open() == MS_SUCCESS) 1057 + $sopen = $layerdestino->open();
  1058 + if($sopen == MS_FAILURE){return "erro";}
  1059 + $res_count = $layerdestino->getNumresults();
  1060 + for ($i = 0; $i < $res_count; ++$i)
1059 { 1061 {
1060 - $layerdestino->open();  
1061 - $res_count = $layerdestino->getNumresults();  
1062 - for ($i = 0; $i < $res_count; ++$i)  
1063 - {  
1064 - $result = $layerdestino->getResult($i);  
1065 - $shp_index = $result->shapeindex;  
1066 - $shapesdestino[] = $layerdestino->getshape(-1, $shp_index);  
1067 - }  
1068 - $layerdestino->close(); 1062 + $result = $layerdestino->getResult($i);
  1063 + $shp_index = $result->shapeindex;
  1064 + $shapesdestino[] = $layerdestino->getshape(-1, $shp_index);
1069 } 1065 }
1070 - else  
1071 - {return "erro";} 1066 + $layerdestino->close();
1072 $rect = $this->mapa->extent; 1067 $rect = $this->mapa->extent;
1073 $projInObj = $layerorigem->getProjection(); 1068 $projInObj = $layerorigem->getProjection();
1074 if ($projInObj == "") 1069 if ($projInObj == "")
@@ -1148,6 +1143,7 @@ nome do layer criado com o buffer. @@ -1148,6 +1143,7 @@ nome do layer criado com o buffer.
1148 */ 1143 */
1149 function criaBuffer($distancia,$locaplic,$unir="nao") 1144 function criaBuffer($distancia,$locaplic,$unir="nao")
1150 { 1145 {
  1146 + if(!$this->layer){return "erro";}
1151 set_time_limit(180); 1147 set_time_limit(180);
1152 //para manipular dbf 1148 //para manipular dbf
1153 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) 1149 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php"))
@@ -1159,37 +1155,36 @@ nome do layer criado com o buffer. @@ -1159,37 +1155,36 @@ nome do layer criado com o buffer.
1159 //pega os shapes selecionados 1155 //pega os shapes selecionados
1160 if (file_exists(($this->arquivo)."qy")) 1156 if (file_exists(($this->arquivo)."qy"))
1161 {$this->mapa->loadquery(($this->arquivo)."qy");} 1157 {$this->mapa->loadquery(($this->arquivo)."qy");}
1162 - if (@$this->layer->open() == MS_SUCCESS) 1158 + $sopen = $this->layer->open();
  1159 + if($sopen == MS_FAILURE){return "erro";}
  1160 + $items = pegaItens($this->layer);
  1161 + $this->layer->open();
  1162 + $res_count = $this->layer->getNumresults();
  1163 + $buffers = array();
  1164 + //pega um shape especifico
  1165 + for ($i = 0; $i < $res_count; ++$i)
1163 { 1166 {
1164 - $items = pegaItens($this->layer);  
1165 - $this->layer->open();  
1166 - $res_count = $this->layer->getNumresults();  
1167 - $buffers = array();  
1168 - //pega um shape especifico  
1169 - for ($i = 0; $i < $res_count; ++$i)  
1170 - {  
1171 - $result = $this->layer->getResult($i);  
1172 - $shp_index = $result->shapeindex;  
1173 - $shape = $this->layer->getshape(-1, $shp_index);  
1174 - //calcula a extensão geografica  
1175 - $rect = $shape->bounds;  
1176 - $projInObj = ms_newprojectionobj("proj=latlong");  
1177 - $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=".$rect->miny.",lon_0=".$rect->minx.",x_0=5000000,y_0=10000000");  
1178 - $poPoint = ms_newpointobj();  
1179 - $poPoint->setXY($rect->minx, $rect->miny);  
1180 - $dd1 = ms_newpointobj();  
1181 - $dd1->setXY($rect->minx, $rect->miny);  
1182 - $poPoint->project($projInObj, $projOutObj);  
1183 - $dd2 = ms_newpointobj();  
1184 - $dd2->setXY(($poPoint->x + $distancia), $poPoint->y);  
1185 - $dd2->project($projOutObj,$projInObj);  
1186 - $d = $dd1->distanceToPoint($dd2);  
1187 - if ($distancia < 0){$d = $d * -1;}  
1188 - //calcula a distancia 29100  
1189 - //gera o buffer  
1190 - $buffers[] = $shape->buffer($d);  
1191 - $shapes[] = $shape;  
1192 - } 1167 + $result = $this->layer->getResult($i);
  1168 + $shp_index = $result->shapeindex;
  1169 + $shape = $this->layer->getshape(-1, $shp_index);
  1170 + //calcula a extensão geografica
  1171 + $rect = $shape->bounds;
  1172 + $projInObj = ms_newprojectionobj("proj=latlong");
  1173 + $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=".$rect->miny.",lon_0=".$rect->minx.",x_0=5000000,y_0=10000000");
  1174 + $poPoint = ms_newpointobj();
  1175 + $poPoint->setXY($rect->minx, $rect->miny);
  1176 + $dd1 = ms_newpointobj();
  1177 + $dd1->setXY($rect->minx, $rect->miny);
  1178 + $poPoint->project($projInObj, $projOutObj);
  1179 + $dd2 = ms_newpointobj();
  1180 + $dd2->setXY(($poPoint->x + $distancia), $poPoint->y);
  1181 + $dd2->project($projOutObj,$projInObj);
  1182 + $d = $dd1->distanceToPoint($dd2);
  1183 + if ($distancia < 0){$d = $d * -1;}
  1184 + //calcula a distancia 29100
  1185 + //gera o buffer
  1186 + $buffers[] = $shape->buffer($d);
  1187 + $shapes[] = $shape;
1193 } 1188 }
1194 //faz a união dos elementos se necessário 1189 //faz a união dos elementos se necessário
1195 if($unir == "sim") 1190 if($unir == "sim")
@@ -1241,7 +1236,6 @@ nome do layer criado com o buffer. @@ -1241,7 +1236,6 @@ nome do layer criado com o buffer.
1241 $cor->setrgb(255,0,0); 1236 $cor->setrgb(255,0,0);
1242 $coro = $estilo->outlinecolor; 1237 $coro = $estilo->outlinecolor;
1243 $coro->setrgb(255,0,0); 1238 $coro->setrgb(255,0,0);
1244 -  
1245 return($novolayer->name); 1239 return($novolayer->name);
1246 } 1240 }
1247 /* 1241 /*
@@ -1257,6 +1251,7 @@ $locaplic - Localização do I3geo. @@ -1257,6 +1251,7 @@ $locaplic - Localização do I3geo.
1257 */ 1251 */
1258 function criaCentroide($locaplic) 1252 function criaCentroide($locaplic)
1259 { 1253 {
  1254 + if(!$this->layer){return "erro";}
1260 set_time_limit(180); 1255 set_time_limit(180);
1261 //para manipular dbf 1256 //para manipular dbf
1262 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) 1257 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php"))
@@ -1268,26 +1263,25 @@ $locaplic - Localização do I3geo. @@ -1268,26 +1263,25 @@ $locaplic - Localização do I3geo.
1268 //pega os shapes selecionados 1263 //pega os shapes selecionados
1269 if (file_exists(($this->arquivo)."qy")) 1264 if (file_exists(($this->arquivo)."qy"))
1270 {$this->mapa->loadquery(($this->arquivo)."qy");} 1265 {$this->mapa->loadquery(($this->arquivo)."qy");}
1271 - if (@$this->layer->open() == MS_SUCCESS) 1266 + $sopen = $this->layer->open();
  1267 + if($sopen == MS_FAILURE){return "erro";}
  1268 + $items = pegaItens($this->layer);
  1269 + $this->layer->open();
  1270 + $res_count = $this->layer->getNumresults();
  1271 + $centroides = array();
  1272 + $shapes = array();
  1273 + //pega um shape especifico
  1274 + for ($i = 0; $i < $res_count; ++$i)
1272 { 1275 {
1273 - $items = pegaItens($this->layer);  
1274 - $this->layer->open();  
1275 - $res_count = $this->layer->getNumresults();  
1276 - $centroides = array();  
1277 - $shapes = array();  
1278 - //pega um shape especifico  
1279 - for ($i = 0; $i < $res_count; ++$i)  
1280 - {  
1281 - $result = $this->layer->getResult($i);  
1282 - $shp_index = $result->shapeindex;  
1283 - $shape = $this->layer->getshape(-1, $shp_index);  
1284 - $LineObj = ms_newLineObj();  
1285 - $LineObj->add($shape->getCentroid());  
1286 - $ShapeObj = ms_newShapeObj(MS_SHAPE_POINT);  
1287 - $ShapeObj->add($LineObj);  
1288 - $centroides[] = $ShapeObj;  
1289 - $shapes[] = $shape;  
1290 - } 1276 + $result = $this->layer->getResult($i);
  1277 + $shp_index = $result->shapeindex;
  1278 + $shape = $this->layer->getshape(-1, $shp_index);
  1279 + $LineObj = ms_newLineObj();
  1280 + $LineObj->add($shape->getCentroid());
  1281 + $ShapeObj = ms_newShapeObj(MS_SHAPE_POINT);
  1282 + $ShapeObj->add($LineObj);
  1283 + $centroides[] = $ShapeObj;
  1284 + $shapes[] = $shape;
1291 } 1285 }
1292 $fechou = $this->layer->close(); 1286 $fechou = $this->layer->close();
1293 //gera o novo arquivo shape file 1287 //gera o novo arquivo shape file
@@ -1763,7 +1757,8 @@ $locaplic - Localização do I3geo @@ -1763,7 +1757,8 @@ $locaplic - Localização do I3geo
1763 $def[] = array("npontos","N","10","0"); 1757 $def[] = array("npontos","N","10","0");
1764 $db = xbase_create($nomeshp.".dbf", $def); 1758 $db = xbase_create($nomeshp.".dbf", $def);
1765 $dbname = $nomeshp.".dbf"; 1759 $dbname = $nomeshp.".dbf";
1766 - $layerPo->open(); 1760 + $sopen = $layerPo->open();
  1761 + if($sopen == MS_FAILURE){return "erro";}
1767 $layerPo->whichShapes($this->mapa->extent); 1762 $layerPo->whichShapes($this->mapa->extent);
1768 while ($shape = $layerPo->nextShape()) 1763 while ($shape = $layerPo->nextShape())
1769 { 1764 {
@@ -1796,6 +1791,7 @@ Salva o mapa acrescentando um novo layer com o resultado. @@ -1796,6 +1791,7 @@ Salva o mapa acrescentando um novo layer com o resultado.
1796 */ 1791 */
1797 function agrupaElementos($item,$locaplic) 1792 function agrupaElementos($item,$locaplic)
1798 { 1793 {
  1794 + if(!$this->layer){return "erro";}
1799 set_time_limit(180); 1795 set_time_limit(180);
1800 //para manipular dbf 1796 //para manipular dbf
1801 if(!isset($item)){$item="";} 1797 if(!isset($item)){$item="";}
@@ -1806,7 +1802,8 @@ Salva o mapa acrescentando um novo layer com o resultado. @@ -1806,7 +1802,8 @@ Salva o mapa acrescentando um novo layer com o resultado.
1806 //define o nome do novo shapefile que será criado 1802 //define o nome do novo shapefile que será criado
1807 if (file_exists(($this->arquivo)."qy")) 1803 if (file_exists(($this->arquivo)."qy"))
1808 {$this->mapa->loadquery(($this->arquivo)."qy");} 1804 {$this->mapa->loadquery(($this->arquivo)."qy");}
1809 - $this->layer->open(); 1805 + $sopen = $this->layer->open();
  1806 + if($sopen == MS_FAILURE){return "erro";}
1810 $res_count = $this->layer->getNumresults(); 1807 $res_count = $this->layer->getNumresults();
1811 // 1808 //
1812 //pega os indices dos poligonos por classe de atributo 1809 //pega os indices dos poligonos por classe de atributo
@@ -1909,6 +1906,7 @@ $locaplic - Localização do I3geo @@ -1909,6 +1906,7 @@ $locaplic - Localização do I3geo
1909 */ 1906 */
1910 function dissolvePoligono($item,$locaplic) 1907 function dissolvePoligono($item,$locaplic)
1911 { 1908 {
  1909 + if(!$this->layer){return "erro";}
1912 set_time_limit(180); 1910 set_time_limit(180);
1913 //para manipular dbf 1911 //para manipular dbf
1914 if(!isset($item)){$item="";} 1912 if(!isset($item)){$item="";}
@@ -1919,7 +1917,8 @@ $locaplic - Localização do I3geo @@ -1919,7 +1917,8 @@ $locaplic - Localização do I3geo
1919 //define o nome do novo shapefile que será criado 1917 //define o nome do novo shapefile que será criado
1920 if (file_exists(($this->arquivo)."qy")) 1918 if (file_exists(($this->arquivo)."qy"))
1921 {$this->mapa->loadquery(($this->arquivo)."qy");} 1919 {$this->mapa->loadquery(($this->arquivo)."qy");}
1922 - $this->layer->open(); 1920 + $sopen = $this->layer->open();
  1921 + if($sopen == MS_FAILURE){return "erro";}
1923 $res_count = $this->layer->getNumresults(); 1922 $res_count = $this->layer->getNumresults();
1924 // 1923 //
1925 //pega os indices dos poligonos por classe de atributo 1924 //pega os indices dos poligonos por classe de atributo
@@ -2305,7 +2304,9 @@ function gravaCoordenadasPt($tema,$limitepontos=&quot;TRUE&quot;) @@ -2305,7 +2304,9 @@ function gravaCoordenadasPt($tema,$limitepontos=&quot;TRUE&quot;)
2305 $res_count = $layerPt->getNumresults(); 2304 $res_count = $layerPt->getNumresults();
2306 $pontos = array(); 2305 $pontos = array();
2307 //pega um shape especifico 2306 //pega um shape especifico
2308 - $layerPt->open(); 2307 + $sopen = $layerPt->open();
  2308 + if($sopen == MS_FAILURE){return "erro";}
  2309 +
2309 if (($prjTema != "") && ($prjMapa != $prjTema)) 2310 if (($prjTema != "") && ($prjMapa != $prjTema))
2310 { 2311 {
2311 $projInObj = ms_newprojectionobj($prjTema); 2312 $projInObj = ms_newprojectionobj($prjTema);
classesphp/classe_atributos.php
@@ -77,7 +77,7 @@ $tema - nome do tema @@ -77,7 +77,7 @@ $tema - nome do tema
77 $this->locaplic = $locaplic; 77 $this->locaplic = $locaplic;
78 $this->mapa = ms_newMapObj($map_file); 78 $this->mapa = ms_newMapObj($map_file);
79 $this->arquivo = $map_file; 79 $this->arquivo = $map_file;
80 - if($tema != "") 80 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
81 $this->layer = $this->mapa->getlayerbyname($tema); 81 $this->layer = $this->mapa->getlayerbyname($tema);
82 $this->nome = $tema; 82 $this->nome = $tema;
83 } 83 }
@@ -106,6 +106,7 @@ xmin ymin xmax ymax separados por espaço. @@ -106,6 +106,7 @@ xmin ymin xmax ymax separados por espaço.
106 */ 106 */
107 function extensaoShape($shape) 107 function extensaoShape($shape)
108 { 108 {
  109 + if(!$this->layer){return "erro";}
109 $prjMapa = $this->mapa->getProjection(); 110 $prjMapa = $this->mapa->getProjection();
110 $prjTema = $this->layer->getProjection(); 111 $prjTema = $this->layer->getProjection();
111 $ret = $shape->bounds; 112 $ret = $shape->bounds;
@@ -141,6 +142,7 @@ $registro - Índice do registro que será consultado. @@ -141,6 +142,7 @@ $registro - Índice do registro que será consultado.
141 */ 142 */
142 function extensaoRegistro($registro) 143 function extensaoRegistro($registro)
143 { 144 {
  145 + if(!$this->layer){return "erro";}
144 $this->layer->set("template","none.htm"); 146 $this->layer->set("template","none.htm");
145 $this->layer->setfilter(""); 147 $this->layer->setfilter("");
146 $ext = ""; 148 $ext = "";
@@ -201,6 +203,7 @@ $tipo - Tipo de busca brasil|null @@ -201,6 +203,7 @@ $tipo - Tipo de busca brasil|null
201 */ 203 */
202 function itensTexto($tipo) 204 function itensTexto($tipo)
203 { 205 {
  206 + if(!$this->layer){return "erro";}
204 if ($tipo == "brasil") 207 if ($tipo == "brasil")
205 {$this->mapa = extPadrao($this->mapa);} 208 {$this->mapa = extPadrao($this->mapa);}
206 $this->layer->set("template","none.htm"); 209 $this->layer->set("template","none.htm");
@@ -213,7 +216,8 @@ $tipo - Tipo de busca brasil|null @@ -213,7 +216,8 @@ $tipo - Tipo de busca brasil|null
213 if ($this->layer->getNumresults() > 0){$existesel = "sim";} 216 if ($this->layer->getNumresults() > 0){$existesel = "sim";}
214 if ($existesel == "nao") 217 if ($existesel == "nao")
215 {$this->layer->querybyrect($this->mapa->extent);} 218 {$this->layer->querybyrect($this->mapa->extent);}
216 - $this->layer->open(); 219 + $sopen = $this->layer->open();
  220 + if($sopen == MS_FAILURE){return "erro";}
217 $registros[] = array(); 221 $registros[] = array();
218 $res_count = $this->layer->getNumresults(); 222 $res_count = $this->layer->getNumresults();
219 for ($i = 0; $i < $res_count; ++$i) 223 for ($i = 0; $i < $res_count; ++$i)
@@ -256,6 +260,7 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona @@ -256,6 +260,7 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona
256 */ 260 */
257 function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista) 261 function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista)
258 { 262 {
  263 + if(!$this->layer){return "erro";}
259 $resultadoFinal = array(); 264 $resultadoFinal = array();
260 if ((!isset($tipolista)) || ($tipolista=="")){$tipolista = "tudo";} 265 if ((!isset($tipolista)) || ($tipolista=="")){$tipolista = "tudo";}
261 if (!isset($inicio)){$inicio = 0;} 266 if (!isset($inicio)){$inicio = 0;}
@@ -276,7 +281,8 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona @@ -276,7 +281,8 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona
276 if (file_exists($this->arquivo."qy")) 281 if (file_exists($this->arquivo."qy"))
277 {$this->mapa->loadquery(($this->arquivo)."qy");} 282 {$this->mapa->loadquery(($this->arquivo)."qy");}
278 $indxlayer = $this->layer->index; 283 $indxlayer = $this->layer->index;
279 - $this->layer->open(); 284 + $sopen = $this->layer->open();
  285 + if($sopen == MS_FAILURE){return "erro";}
280 $res_count = $this->layer->getNumresults(); 286 $res_count = $this->layer->getNumresults();
281 $registros = array(); 287 $registros = array();
282 //lista apenas os selecionados 288 //lista apenas os selecionados
@@ -323,7 +329,8 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona @@ -323,7 +329,8 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona
323 if (($res_count >= $fim) && ($fim < $res_count)) 329 if (($res_count >= $fim) && ($fim < $res_count))
324 {$res_count = $fim;} 330 {$res_count = $fim;}
325 } 331 }
326 - $this->layer->open(); 332 + $sopen = $this->layer->open();
  333 + if($sopen == MS_FAILURE){return "erro";}
327 for ($i = $inicio; $i < $res_count; ++$i) 334 for ($i = $inicio; $i < $res_count; ++$i)
328 { 335 {
329 $valitem = array(); 336 $valitem = array();
@@ -406,7 +413,8 @@ $onde - Tipo de abrangência espacial (brasil ou mapa) @@ -406,7 +413,8 @@ $onde - Tipo de abrangência espacial (brasil ou mapa)
406 if ($filtro != ""){$l->setfilter("");} 413 if ($filtro != ""){$l->setfilter("");}
407 $buscas = "ÁÃÓÕÔáàãâóòôõúûíéêç"; 414 $buscas = "ÁÃÓÕÔáàãâóòôõúûíéêç";
408 $trocas = "AAOOOaaaaoooouuieec"; 415 $trocas = "AAOOOaaaaoooouuieec";
409 - $l->open(); 416 + $sopen = $l->open();
  417 + if($sopen == MS_FAILURE){return "erro";}
410 $l->whichShapes($this->mapa->extent); 418 $l->whichShapes($this->mapa->extent);
411 $fr = array(); 419 $fr = array();
412 while ($shape = $l->nextShape()) 420 while ($shape = $l->nextShape())
@@ -465,6 +473,7 @@ Include: @@ -465,6 +473,7 @@ Include:
465 */ 473 */
466 function estatDescritivas($item,$exclui) 474 function estatDescritivas($item,$exclui)
467 { 475 {
  476 + if(!$this->layer){return "erro";}
468 $this->layer->set("template","none.htm"); 477 $this->layer->set("template","none.htm");
469 $items = pegaItens($this->layer); 478 $items = pegaItens($this->layer);
470 $valores = array(); 479 $valores = array();
@@ -477,7 +486,8 @@ Include: @@ -477,7 +486,8 @@ Include:
477 if ($this->layer->getNumresults() > 0){$existesel = "sim";} 486 if ($this->layer->getNumresults() > 0){$existesel = "sim";}
478 if ($existesel == "nao") 487 if ($existesel == "nao")
479 {$this->layer->queryByrect($this->mapa->extent);} 488 {$this->layer->queryByrect($this->mapa->extent);}
480 - $abriu = $this->layer->open(); 489 + $sopen = $this->layer->open();
  490 + if($sopen == MS_FAILURE){return "erro";}
481 $res_count = $this->layer->getNumresults(); 491 $res_count = $this->layer->getNumresults();
482 //pega os valores 492 //pega os valores
483 for ($i = 0; $i < $res_count; ++$i) 493 for ($i = 0; $i < $res_count; ++$i)
@@ -837,7 +847,8 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item=&quot;&quot;,$tiporetorno=&quot;&quot; @@ -837,7 +847,8 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item=&quot;&quot;,$tiporetorno=&quot;&quot;
837 } 847 }
838 } 848 }
839 $res_count = $layer->getNumresults(); 849 $res_count = $layer->getNumresults();
840 - $layer->open(); 850 + $sopen = $layer->open();
  851 + if($sopen == MS_FAILURE){return "erro";}
841 for ($i = 0; $i < $res_count; ++$i) 852 for ($i = 0; $i < $res_count; ++$i)
842 { 853 {
843 $valori = array(); 854 $valori = array();
classesphp/classe_legenda.php
@@ -116,7 +116,7 @@ $template - nome do template para processar a legenda @@ -116,7 +116,7 @@ $template - nome do template para processar a legenda
116 $this->mapa = ms_newMapObj($map_file); 116 $this->mapa = ms_newMapObj($map_file);
117 $this->arquivo = $map_file; 117 $this->arquivo = $map_file;
118 $this->localaplicacao = $locaplic; 118 $this->localaplicacao = $locaplic;
119 - if ($tema != "") 119 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
120 { 120 {
121 $this->layer = $this->mapa->getlayerbyname($tema); 121 $this->layer = $this->mapa->getlayerbyname($tema);
122 $this->nome = $tema; 122 $this->nome = $tema;
@@ -296,7 +296,8 @@ array @@ -296,7 +296,8 @@ array
296 if (($totaliza=="sim") && ($nc > 1)) 296 if (($totaliza=="sim") && ($nc > 1))
297 { 297 {
298 $layer->set("template","none.htm"); 298 $layer->set("template","none.htm");
299 - $layer->open(); 299 + $sopen = $layer->open();
  300 + if($sopen == MS_FAILURE){return "erro";}
300 $itens = $layer->getitems(); 301 $itens = $layer->getitems();
301 $total = 0; 302 $total = 0;
302 $nreg = array(); 303 $nreg = array();
@@ -354,6 +355,7 @@ Exclui um estilo de uma classe. @@ -354,6 +355,7 @@ Exclui um estilo de uma classe.
354 */ 355 */
355 function excluiEstilo($classe,$estilo) 356 function excluiEstilo($classe,$estilo)
356 { 357 {
  358 + if(!$this->layer){return "erro";}
357 $classe = $this->layer->getclass($classe); 359 $classe = $this->layer->getclass($classe);
358 $classe->deletestyle($estilo); 360 $classe->deletestyle($estilo);
359 } 361 }
@@ -367,6 +369,7 @@ objeto estilo @@ -367,6 +369,7 @@ objeto estilo
367 */ 369 */
368 function adicionaEstilo($classe,$estilo) 370 function adicionaEstilo($classe,$estilo)
369 { 371 {
  372 + if(!$this->layer){return "erro";}
370 $classe = $this->layer->getclass($classe); 373 $classe = $this->layer->getclass($classe);
371 $estilo = $classe->getstyle($estilo); 374 $estilo = $classe->getstyle($estilo);
372 $e = ms_newStyleObj($classe,$estilo); 375 $e = ms_newStyleObj($classe,$estilo);
@@ -384,6 +387,7 @@ $estilo - Índice do estilo de uma classe que será clonado. @@ -384,6 +387,7 @@ $estilo - Índice do estilo de uma classe que será clonado.
384 */ 387 */
385 function sobeEstilo($classe,$estilo) 388 function sobeEstilo($classe,$estilo)
386 { 389 {
  390 + if(!$this->layer){return "erro";}
387 $classe = $this->layer->getclass($classe); 391 $classe = $this->layer->getclass($classe);
388 $classe->movestyleup($estilo); 392 $classe->movestyleup($estilo);
389 } 393 }
@@ -399,6 +403,7 @@ $estilo - Índice do estilo de uma classe que será clonado. @@ -399,6 +403,7 @@ $estilo - Índice do estilo de uma classe que será clonado.
399 */ 403 */
400 function desceEstilo($classe,$estilo) 404 function desceEstilo($classe,$estilo)
401 { 405 {
  406 + if(!$this->layer){return "erro";}
402 $classe = $this->layer->getclass($classe); 407 $classe = $this->layer->getclass($classe);
403 $classe->movestyledown($estilo); 408 $classe->movestyledown($estilo);
404 } 409 }
@@ -480,6 +485,7 @@ string com o tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbo @@ -480,6 +485,7 @@ string com o tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbo
480 */ 485 */
481 function pegaParametros($classe) 486 function pegaParametros($classe)
482 { 487 {
  488 + if(!$this->layer){return "erro";}
483 $tipoLayer = $this->layer->type; 489 $tipoLayer = $this->layer->type;
484 $classe = $this->layer->getclass($classe); 490 $classe = $this->layer->getclass($classe);
485 $numestilos = $classe->numstyles; 491 $numestilos = $classe->numstyles;
@@ -520,6 +526,7 @@ $size - Tamanho que será aplicado ao símbolo. @@ -520,6 +526,7 @@ $size - Tamanho que será aplicado ao símbolo.
520 */ 526 */
521 function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size) 527 function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size)
522 { 528 {
  529 + if(!$this->layer){return "erro";}
523 $classe = $this->layer->getclass($classe); 530 $classe = $this->layer->getclass($classe);
524 $estilo = $classe->getstyle($estilo); 531 $estilo = $classe->getstyle($estilo);
525 if (isset($outlinecolor)) 532 if (isset($outlinecolor))
classesphp/classe_mapa.php
@@ -142,10 +142,13 @@ string - javascript com os parametros @@ -142,10 +142,13 @@ string - javascript com os parametros
142 $sel = "nao"; 142 $sel = "nao";
143 if ($qy) //verifica se existe alguma selecao no tema 143 if ($qy) //verifica se existe alguma selecao no tema
144 { 144 {
145 - $oLayer->open();  
146 - $res_count = $oLayer->getNumresults();  
147 - $oLayer->close();  
148 - if ($res_count > 0){$sel = "sim";$existesel = true;} 145 + $sopen = $oLayer->open();
  146 + if($sopen != MS_FAILURE)
  147 + {
  148 + $res_count = $oLayer->getNumresults();
  149 + $oLayer->close();
  150 + if ($res_count > 0){$sel = "sim";$existesel = true;}
  151 + }
149 } 152 }
150 if ((strtoupper($oLayer->getmetadata("tema")) != "NAO") && ($oLayer->getmetadata("escondido") == "")) 153 if ((strtoupper($oLayer->getmetadata("tema")) != "NAO") && ($oLayer->getmetadata("escondido") == ""))
151 { 154 {
classesphp/classe_navegacao.php
@@ -140,10 +140,10 @@ Desliga o status das camadas raster @@ -140,10 +140,10 @@ Desliga o status das camadas raster
140 */ 140 */
141 function desabilitaRASTER() 141 function desabilitaRASTER()
142 { 142 {
143 - $ls = $this->mapa->getalllayernames();  
144 - foreach ($ls as $l)  
145 - {  
146 - $layer = $this->mapa->getlayerbyname($l); 143 + $c = $this->mapa->numlayers;
  144 + for ($i=0;$i < $c;++$i)
  145 + {
  146 + $layer = $this->mapa->getlayer($i);
147 if ($layer->type == MS_LAYER_RASTER) 147 if ($layer->type == MS_LAYER_RASTER)
148 {$layer->set("status",MS_OFF);} 148 {$layer->set("status",MS_OFF);}
149 } 149 }
classesphp/classe_selecao.php
@@ -76,6 +76,7 @@ $tema - nome do tema @@ -76,6 +76,7 @@ $tema - nome do tema
76 //error_reporting(E_ALL); 76 //error_reporting(E_ALL);
77 $this->mapa = ms_newMapObj($map_file); 77 $this->mapa = ms_newMapObj($map_file);
78 $this->arquivo = $map_file; 78 $this->arquivo = $map_file;
  79 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
79 $this->layer = $this->mapa->getlayerbyname($tema); 80 $this->layer = $this->mapa->getlayerbyname($tema);
80 $this->nome = $tema; 81 $this->nome = $tema;
81 } 82 }
@@ -104,6 +105,7 @@ $ys - lista de coordenadas y separadas por virgula @@ -104,6 +105,7 @@ $ys - lista de coordenadas y separadas por virgula
104 */ 105 */
105 function selecaoPorPoligono($tipo,$xs,$ys) 106 function selecaoPorPoligono($tipo,$xs,$ys)
106 { 107 {
  108 + if(!$this->layer){return "erro";}
107 $this->layer->set("tolerance",0); 109 $this->layer->set("tolerance",0);
108 if ($tipo == "limpa") 110 if ($tipo == "limpa")
109 {return($this->selecaoLimpa());} 111 {return($this->selecaoLimpa());}
@@ -160,6 +162,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa @@ -160,6 +162,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa
160 */ 162 */
161 function selecaoTema($temao,$tipo) 163 function selecaoTema($temao,$tipo)
162 { 164 {
  165 + if(!$this->layer){return "erro";}
163 $this->layer->set("tolerance",0); 166 $this->layer->set("tolerance",0);
164 if ($tipo == "limpa") 167 if ($tipo == "limpa")
165 {return($this->selecaoLimpa());} 168 {return($this->selecaoLimpa());}
@@ -191,7 +194,8 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa @@ -191,7 +194,8 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa
191 $selecao = ""; 194 $selecao = "";
192 if (($selecao != "ok") && ($layero->data != "")) 195 if (($selecao != "ok") && ($layero->data != ""))
193 { 196 {
194 - $layero->open(); 197 + $sopen = $layero->open();
  198 + if($sopen == MS_FAILURE){return "erro";}
195 $res_count = $layero->getNumresults(); 199 $res_count = $layero->getNumresults();
196 for ($i = 0; $i < $res_count; ++$i) 200 for ($i = 0; $i < $res_count; ++$i)
197 { 201 {
@@ -245,7 +249,8 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa @@ -245,7 +249,8 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa
245 if (($selecao != "ok") && ($layero->data == "")) 249 if (($selecao != "ok") && ($layero->data == ""))
246 { 250 {
247 $layero->queryByRect($this->mapa->extent); 251 $layero->queryByRect($this->mapa->extent);
248 - $layero->open(); 252 + $sopen = $layero->open();
  253 + if($sopen == MS_FAILURE){return "erro";}
249 $conta = $layero->getNumresults(); 254 $conta = $layero->getNumresults();
250 for ($k = 0; $k < $conta; $k++) 255 for ($k = 0; $k < $conta; $k++)
251 { 256 {
@@ -319,6 +324,7 @@ $valor - Valor. @@ -319,6 +324,7 @@ $valor - Valor.
319 {return($this->selecaoLimpa());} 324 {return($this->selecaoLimpa());}
320 if ($tipo == "inverte") 325 if ($tipo == "inverte")
321 {return($this->selecaoInverte());} 326 {return($this->selecaoInverte());}
  327 + if(!$this->layer){return "erro";}
322 $operador = explode(",",$operador); 328 $operador = explode(",",$operador);
323 $operador = $operador[1]; 329 $operador = $operador[1];
324 $this->layer->set("template","none.htm"); 330 $this->layer->set("template","none.htm");
@@ -373,6 +379,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa @@ -373,6 +379,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa
373 {return ($this->selecaoLimpa());} 379 {return ($this->selecaoLimpa());}
374 if ($tipo == "inverte") 380 if ($tipo == "inverte")
375 {return ($this->selecaoInverte());} 381 {return ($this->selecaoInverte());}
  382 + if(!$this->layer){return "erro";}
376 $this->layer->set("template","none.htm"); 383 $this->layer->set("template","none.htm");
377 if (file_exists(($this->arquivo)."qy")) 384 if (file_exists(($this->arquivo)."qy"))
378 {$this->mapa->loadquery(($this->arquivo)."qy");} 385 {$this->mapa->loadquery(($this->arquivo)."qy");}
@@ -449,6 +456,7 @@ Limpa a seleção do tema. @@ -449,6 +456,7 @@ Limpa a seleção do tema.
449 { 456 {
450 if ($this->nome != "") //limpa de um tema 457 if ($this->nome != "") //limpa de um tema
451 { 458 {
  459 + if(!$this->layer){return "erro";}
452 if (file_exists(($this->arquivo)."qy")) 460 if (file_exists(($this->arquivo)."qy"))
453 {$this->mapa->loadquery(($this->arquivo)."qy");} 461 {$this->mapa->loadquery(($this->arquivo)."qy");}
454 $indxlayer = $this->layer->index; 462 $indxlayer = $this->layer->index;
@@ -470,6 +478,7 @@ Inverte seleção do tema. @@ -470,6 +478,7 @@ Inverte seleção do tema.
470 */ 478 */
471 function selecaoInverte() 479 function selecaoInverte()
472 { 480 {
  481 + if(!$this->layer){return "erro";}
473 $this->layer->set("template","none.htm"); 482 $this->layer->set("template","none.htm");
474 if (file_exists(($this->arquivo)."qy")) 483 if (file_exists(($this->arquivo)."qy"))
475 {$this->mapa->loadquery(($this->arquivo)."qy");} 484 {$this->mapa->loadquery(($this->arquivo)."qy");}
@@ -513,6 +522,7 @@ $shp_atual - Indices dos elementos já selecionados. @@ -513,6 +522,7 @@ $shp_atual - Indices dos elementos já selecionados.
513 */ 522 */
514 function selecaoAdiciona($shpi,$shp_atual) 523 function selecaoAdiciona($shpi,$shp_atual)
515 { 524 {
  525 + if(!$this->layer){return "erro";}
516 $this->layer->set("template","none.htm"); 526 $this->layer->set("template","none.htm");
517 $indxlayer = $this->layer->index; 527 $indxlayer = $this->layer->index;
518 $shp = array_merge($shpi,$shp_atual); 528 $shp = array_merge($shpi,$shp_atual);
@@ -536,6 +546,7 @@ $shp_atual - Indices dos elementos já selecionados. @@ -536,6 +546,7 @@ $shp_atual - Indices dos elementos já selecionados.
536 */ 546 */
537 function selecaoRetira($shpi,$shp_atual) 547 function selecaoRetira($shpi,$shp_atual)
538 { 548 {
  549 + if(!$this->layer){return "erro";}
539 $this->layer->set("template","none.htm"); 550 $this->layer->set("template","none.htm");
540 $indxlayer = $this->layer->index; 551 $indxlayer = $this->layer->index;
541 $this->mapa->freequery($indxlayer); 552 $this->mapa->freequery($indxlayer);
@@ -560,6 +571,7 @@ $ids - Ids separados por vírgula correspondendo aos registros. @@ -560,6 +571,7 @@ $ids - Ids separados por vírgula correspondendo aos registros.
560 */ 571 */
561 function incluiSel($ids) 572 function incluiSel($ids)
562 { 573 {
  574 + if(!$this->layer){return "erro";}
563 $this->layer->set("template","none.htm"); 575 $this->layer->set("template","none.htm");
564 if (file_exists(($this->arquivo)."qy")) 576 if (file_exists(($this->arquivo)."qy"))
565 {$this->mapa->loadquery(($this->arquivo)."qy");} 577 {$this->mapa->loadquery(($this->arquivo)."qy");}
@@ -583,6 +595,7 @@ $dir_tmp - localização do diretório temporário @@ -583,6 +595,7 @@ $dir_tmp - localização do diretório temporário
583 */ 595 */
584 function selecao2tema($locaplic,$dir_tmp) 596 function selecao2tema($locaplic,$dir_tmp)
585 { 597 {
  598 + if(!$this->layer){return "erro";}
586 $this->layer->set("template","none.htm"); 599 $this->layer->set("template","none.htm");
587 $this->layer->setfilter(""); 600 $this->layer->setfilter("");
588 $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp); 601 $nomeshp = criaSHP($this->nome,$this->arquivo,$locaplic,$dir_tmp);
@@ -611,6 +624,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa @@ -611,6 +624,7 @@ $tipo - Tipo de operação adiciona|retira|inverte|limpa
611 */ 624 */
612 function selecaoEXT($tipo) 625 function selecaoEXT($tipo)
613 { 626 {
  627 + if(!$this->layer){return "erro";}
614 $this->layer->set("tolerance",0); 628 $this->layer->set("tolerance",0);
615 if ($tipo == "limpa") 629 if ($tipo == "limpa")
616 {return ($this->selecaoLimpa());} 630 {return ($this->selecaoLimpa());}
@@ -659,6 +673,7 @@ $ext - coordenadas separadas por espaços no estilo xmin ymin xmax ymax @@ -659,6 +673,7 @@ $ext - coordenadas separadas por espaços no estilo xmin ymin xmax ymax
659 */ 673 */
660 function selecaoBOX($tipo,$ext) 674 function selecaoBOX($tipo,$ext)
661 { 675 {
  676 + if(!$this->layer){return "erro";}
662 $this->layer->set("tolerance",0); 677 $this->layer->set("tolerance",0);
663 if ($tipo == "limpa") 678 if ($tipo == "limpa")
664 {return ($this->selecaoLimpa());} 679 {return ($this->selecaoLimpa());}
classesphp/classe_shp.php
@@ -75,13 +75,11 @@ $tema - nome do tema @@ -75,13 +75,11 @@ $tema - nome do tema
75 $this->mapa = ms_newMapObj($map_file); 75 $this->mapa = ms_newMapObj($map_file);
76 $this->arquivo = $map_file; 76 $this->arquivo = $map_file;
77 $this->tema = $tema; 77 $this->tema = $tema;
78 - if ($tema != "") 78 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
79 { 79 {
80 $this->layer = $this->mapa->getlayerbyname($tema); 80 $this->layer = $this->mapa->getlayerbyname($tema);
81 - $this->nome = $tema;  
82 } 81 }
83 - else  
84 - {$this->layer = "";} 82 + $this->nome = $tema;
85 } 83 }
86 /* 84 /*
87 function: salva 85 function: salva
@@ -146,8 +144,7 @@ $projecao - código epsg da projeção das coordenadas @@ -146,8 +144,7 @@ $projecao - código epsg da projeção das coordenadas
146 */ 144 */
147 function insereSHP($xy,$projecao,$item="",$valor="") 145 function insereSHP($xy,$projecao,$item="",$valor="")
148 { 146 {
149 - if($this->layer == "")  
150 - {return("erro");} 147 + if(!$this->layer){return "erro";}
151 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php")) 148 if(file_exists($this->locaplic."/pacotes/phpxbase/api_conversion.php"))
152 include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); 149 include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php");
153 else 150 else
@@ -287,9 +284,9 @@ string - xy @@ -287,9 +284,9 @@ string - xy
287 */ 284 */
288 function listaPontosShape() 285 function listaPontosShape()
289 { 286 {
290 - if($this->layer == "")  
291 - {return("erro");}  
292 - $this->layer->open(); 287 + if(!$this->layer){return "erro";}
  288 + $sopen = $this->layer->open();
  289 + if($sopen == MS_FAILURE){return "erro";}
293 $this->layer->whichShapes($this->mapa->extent); 290 $this->layer->whichShapes($this->mapa->extent);
294 $xy = array(); 291 $xy = array();
295 while ($shape = $this->layer->nextShape()) 292 while ($shape = $this->layer->nextShape())
@@ -318,8 +315,7 @@ $para - linha|poligono @@ -318,8 +315,7 @@ $para - linha|poligono
318 include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php"); 315 include_once($this->locaplic."/pacotes/phpxbase/api_conversion.php");
319 else 316 else
320 include_once "../pacotes/phpxbase/api_conversion.php"; 317 include_once "../pacotes/phpxbase/api_conversion.php";
321 - if($this->layer == "")  
322 - {return("erro");} 318 + if(!$this->layer){return "erro";}
323 $this->layer->set("template","none.htm"); 319 $this->layer->set("template","none.htm");
324 $diretorio = dirname($this->arquivo); 320 $diretorio = dirname($this->arquivo);
325 $tipol = MS_SHP_ARC; 321 $tipol = MS_SHP_ARC;
classesphp/classe_temas.php
@@ -97,9 +97,9 @@ $tema - nome do tema que será processado @@ -97,9 +97,9 @@ $tema - nome do tema que será processado
97 $this->locaplic = $locaplic; 97 $this->locaplic = $locaplic;
98 $this->mapa = ms_newMapObj($map_file); 98 $this->mapa = ms_newMapObj($map_file);
99 $this->arquivo = $map_file; 99 $this->arquivo = $map_file;
100 - if (isset($tema)) 100 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
101 { 101 {
102 - $this->layer = @$this->mapa->getlayerbyname($tema); 102 + $this->layer = $this->mapa->getlayerbyname($tema);
103 $this->nome = $tema; 103 $this->nome = $tema;
104 $vermultilayer = new vermultilayer(); 104 $vermultilayer = new vermultilayer();
105 $vermultilayer->verifica($map_file,$tema); 105 $vermultilayer->verifica($map_file,$tema);
@@ -136,6 +136,7 @@ $lista - lista de processos separados por | @@ -136,6 +136,7 @@ $lista - lista de processos separados por |
136 */ 136 */
137 function aplicaProcessos($lista) 137 function aplicaProcessos($lista)
138 { 138 {
  139 + if(!$this->layer){return "erro";}
139 if ($this->layer->num_processing > 0) 140 if ($this->layer->num_processing > 0)
140 {$this->layer->clearProcessing();} 141 {$this->layer->clearProcessing();}
141 $lista = str_replace('"',"",$lista); 142 $lista = str_replace('"',"",$lista);
@@ -342,6 +343,7 @@ Calcula a extensão geográfica de um tema e ajusta o mapa para essa extensão. @@ -342,6 +343,7 @@ Calcula a extensão geográfica de um tema e ajusta o mapa para essa extensão.
342 */ 343 */
343 function zoomTema() 344 function zoomTema()
344 { 345 {
  346 + if(!$this->layer){return "erro";}
345 $prjMapa = ""; 347 $prjMapa = "";
346 $prjTema = ""; 348 $prjTema = "";
347 if($this->layer->type != MS_LAYER_RASTER) 349 if($this->layer->type != MS_LAYER_RASTER)
@@ -382,6 +384,7 @@ string Filtro. @@ -382,6 +384,7 @@ string Filtro.
382 */ 384 */
383 function pegaFiltro() 385 function pegaFiltro()
384 { 386 {
  387 + if(!$this->layer){return "erro";}
385 $fil = $this->layer->getfilter(); 388 $fil = $this->layer->getfilter();
386 if ($this->layer->getfilter() == '"(null)"'){return " ";} 389 if ($this->layer->getfilter() == '"(null)"'){return " ";}
387 if (function_exists("mb_convert_encoding")) 390 if (function_exists("mb_convert_encoding"))
@@ -402,6 +405,7 @@ $testa - Testa o filtro e retorna uma imagem. @@ -402,6 +405,7 @@ $testa - Testa o filtro e retorna uma imagem.
402 */ 405 */
403 function insereFiltro($filtro,$testa="") 406 function insereFiltro($filtro,$testa="")
404 { 407 {
  408 + if(!$this->layer){return "erro";}
405 $fil = $this->layer->getfilter(); 409 $fil = $this->layer->getfilter();
406 $filtro = str_replace("|","'",$filtro); 410 $filtro = str_replace("|","'",$filtro);
407 if ($this->layer->connectiontype == MS_POSTGIS) 411 if ($this->layer->connectiontype == MS_POSTGIS)
@@ -536,7 +540,7 @@ $fonte - Fonte. @@ -536,7 +540,7 @@ $fonte - Fonte.
536 //verifica se j'a existe um layer criado anteriormente com o mesmo nome e apaga se existir 540 //verifica se j'a existe um layer criado anteriormente com o mesmo nome e apaga se existir
537 if ($tipo == "limpaponto") 541 if ($tipo == "limpaponto")
538 { 542 {
539 - if ($this->layer != "") 543 + if ($this->layer)
540 { 544 {
541 $this->layer->set("status",MS_DELETE); 545 $this->layer->set("status",MS_DELETE);
542 $this->layer->set("name","pindelete"); 546 $this->layer->set("name","pindelete");
@@ -544,7 +548,7 @@ $fonte - Fonte. @@ -544,7 +548,7 @@ $fonte - Fonte.
544 } 548 }
545 } 549 }
546 //se o novo layer nao existir, cria um novo copiando o layer "pin" que ja deve existir no map file (no map file que iniciou a aplicacao) 550 //se o novo layer nao existir, cria um novo copiando o layer "pin" que ja deve existir no map file (no map file que iniciou a aplicacao)
547 - if ($this->layer == "") 551 + if (!$this->layer)
548 { 552 {
549 $pinlayer = criaLayer($this->mapa,MS_LAYER_LINE,MS_DEFAULT,"Ins",$metaClasse="SIM"); 553 $pinlayer = criaLayer($this->mapa,MS_LAYER_LINE,MS_DEFAULT,"Ins",$metaClasse="SIM");
550 $c = $pinlayer->getclass(0); 554 $c = $pinlayer->getclass(0);
@@ -674,6 +678,7 @@ $nome - nome que será dado a geometria @@ -674,6 +678,7 @@ $nome - nome que será dado a geometria
674 */ 678 */
675 function capturaGeometrias($dir_tmp,$imgdir,$nome="") 679 function capturaGeometrias($dir_tmp,$imgdir,$nome="")
676 { 680 {
  681 + if(!$this->layer){return "erro";}
677 $this->mapa->setsize(30,30); 682 $this->mapa->setsize(30,30);
678 $ext = $this->mapa->extent; 683 $ext = $this->mapa->extent;
679 $sb = $this->mapa->scalebar; 684 $sb = $this->mapa->scalebar;
@@ -681,7 +686,9 @@ $nome - nome que será dado a geometria @@ -681,7 +686,9 @@ $nome - nome que será dado a geometria
681 if (file_exists($this->arquivo."qy")) 686 if (file_exists($this->arquivo."qy"))
682 {$this->mapa->loadquery(($this->arquivo)."qy");} 687 {$this->mapa->loadquery(($this->arquivo)."qy");}
683 $items = pegaItens($this->layer); 688 $items = pegaItens($this->layer);
684 - $this->layer->open(); 689 + $sopen = $this->layer->open();
  690 + if($sopen == MS_FAILURE){return "erro";}
  691 +
685 $res_count = $this->layer->getNumresults(); 692 $res_count = $this->layer->getNumresults();
686 $final["layer"] = pegaNome($this->layer); 693 $final["layer"] = pegaNome($this->layer);
687 $registros = array(); 694 $registros = array();
@@ -791,6 +798,7 @@ lista - lista de item e cores de cada parte do grafico @@ -791,6 +798,7 @@ lista - lista de item e cores de cada parte do grafico
791 */ 798 */
792 function graficotema($lista,$tamanho="50",$tipo="PIE",$outlinecolor="",$offset=0) 799 function graficotema($lista,$tamanho="50",$tipo="PIE",$outlinecolor="",$offset=0)
793 { 800 {
  801 + if(!$this->layer){return "erro";}
794 $nome = pegaNome($this->layer); 802 $nome = pegaNome($this->layer);
795 $novolayer = ms_newLayerObj($this->mapa, $this->layer); 803 $novolayer = ms_newLayerObj($this->mapa, $this->layer);
796 $nomer = nomeRandomico(); 804 $nomer = nomeRandomico();
classesphp/classe_toponimia.php
@@ -81,6 +81,7 @@ $tema - nome do tema que será processado @@ -81,6 +81,7 @@ $tema - nome do tema que será processado
81 include_once("funcoes_gerais.php"); 81 include_once("funcoes_gerais.php");
82 $this->mapa = ms_newMapObj($map_file); 82 $this->mapa = ms_newMapObj($map_file);
83 $this->arquivo = $map_file; 83 $this->arquivo = $map_file;
  84 + if($tema != "" && @$this->mapa->getlayerbyname($tema))
84 $this->layer = $this->mapa->getlayerbyname($tema); 85 $this->layer = $this->mapa->getlayerbyname($tema);
85 $this->nome = $tema; 86 $this->nome = $tema;
86 } 87 }
@@ -144,6 +145,7 @@ $tipo Tipo teste| @@ -144,6 +145,7 @@ $tipo Tipo teste|
144 */ 145 */
145 function criaToponimia($item,$position,$partials,$offsetx,$offsety,$minfeaturesize,$mindistance,$force,$shadowcolor,$shadowsizex,$shadowsizey,$outlinecolor,$cor,$sombray,$sombrax,$sombra,$fundo,$angulo,$tamanho,$fonte,$tipo) 146 function criaToponimia($item,$position,$partials,$offsetx,$offsety,$minfeaturesize,$mindistance,$force,$shadowcolor,$shadowsizex,$shadowsizey,$outlinecolor,$cor,$sombray,$sombrax,$sombra,$fundo,$angulo,$tamanho,$fonte,$tipo)
146 { 147 {
  148 + if(!$this->layer){return "erro";}
147 if (!isset($tipo)){$tipo = "";} 149 if (!isset($tipo)){$tipo = "";}
148 if ($item != "") //o layer nao tem tabela mas tem toponimia 150 if ($item != "") //o layer nao tem tabela mas tem toponimia
149 { 151 {
@@ -230,6 +232,7 @@ $item Item que será utilizado. @@ -230,6 +232,7 @@ $item Item que será utilizado.
230 */ 232 */
231 function ativaEtiquetas($item) 233 function ativaEtiquetas($item)
232 { 234 {
  235 + if(!$this->layer){return "erro";}
233 $this->layer->setmetadata("TIP",$item); 236 $this->layer->setmetadata("TIP",$item);
234 return("ok"); 237 return("ok");
235 } 238 }
@@ -241,6 +244,7 @@ remove a inclusão de etiquetas em um tema. @@ -241,6 +244,7 @@ remove a inclusão de etiquetas em um tema.
241 */ 244 */
242 function removeEtiquetas() 245 function removeEtiquetas()
243 { 246 {
  247 + if(!$this->layer){return "erro";}
244 $this->layer->setmetadata("TIP",""); 248 $this->layer->setmetadata("TIP","");
245 return("ok"); 249 return("ok");
246 } 250 }
classesphp/flamingoogc.php
@@ -92,10 +92,10 @@ foreach(array_keys($_SESSION) as $k) @@ -92,10 +92,10 @@ foreach(array_keys($_SESSION) as $k)
92 } 92 }
93 $postgis_mapa = $_SESSION["postgis_mapa"]; 93 $postgis_mapa = $_SESSION["postgis_mapa"];
94 $nmap = ms_newMapobj($map_file); 94 $nmap = ms_newMapobj($map_file);
95 -$ts = $nmap->getalllayernames();  
96 -foreach ($ts as $t) 95 +$c = $nmap->numlayers;
  96 +for ($i=0;$i < $c;++$i)
97 { 97 {
98 - $l = $nmap->getlayerbyname($t); 98 + $l = $nmap->getlayer($i);}
99 if($l->connectiontype != MS_WMS) 99 if($l->connectiontype != MS_WMS)
100 { 100 {
101 $l->setmetadata("ows_title",pegaNome($l)); 101 $l->setmetadata("ows_title",pegaNome($l));
classesphp/funcoes_gerais.php
@@ -1020,7 +1020,8 @@ function pegaValores($mapa,$layer,$item,$numerico=false,$ignorar=&quot;&quot;) @@ -1020,7 +1020,8 @@ function pegaValores($mapa,$layer,$item,$numerico=false,$ignorar=&quot;&quot;)
1020 $layer->setfilter(""); 1020 $layer->setfilter("");
1021 if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS) 1021 if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)
1022 { 1022 {
1023 - $layer->open(); 1023 + $sopen = $layer->open();
  1024 + if($sopen == MS_FAILURE){return "erro";}
1024 $res_count = $layer->getNumresults(); 1025 $res_count = $layer->getNumresults();
1025 $valitem = array(); 1026 $valitem = array();
1026 for ($i=0;$i<$res_count;++$i) 1027 for ($i=0;$i<$res_count;++$i)
@@ -1083,7 +1084,8 @@ function pegaValoresM($mapa,$layer,$itens,$exclui=&quot;nulo&quot;,$selecionados=&quot;nao&quot;) @@ -1083,7 +1084,8 @@ function pegaValoresM($mapa,$layer,$itens,$exclui=&quot;nulo&quot;,$selecionados=&quot;nao&quot;)
1083 //pega os valores dos indices dos elementos selecionados para comparacao posterior 1084 //pega os valores dos indices dos elementos selecionados para comparacao posterior
1084 if ($selecionados == "sim") 1085 if ($selecionados == "sim")
1085 { 1086 {
1086 - $layer->open(); 1087 + $sopen = $layer->open();
  1088 + if($sopen == MS_FAILURE){return "erro";}
1087 $res_count = $layer->getNumresults(); 1089 $res_count = $layer->getNumresults();
1088 for ($i = 0; $i < $res_count; ++$i) 1090 for ($i = 0; $i < $res_count; ++$i)
1089 { 1091 {
@@ -1095,7 +1097,9 @@ function pegaValoresM($mapa,$layer,$itens,$exclui=&quot;nulo&quot;,$selecionados=&quot;nao&quot;) @@ -1095,7 +1097,9 @@ function pegaValoresM($mapa,$layer,$itens,$exclui=&quot;nulo&quot;,$selecionados=&quot;nao&quot;)
1095 $valores = array(); 1097 $valores = array();
1096 if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS) 1098 if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)
1097 { 1099 {
1098 - $layer->open(); 1100 + $sopen = $layer->open();
  1101 + if($sopen == MS_FAILURE){return "erro";}
  1102 +
1099 $res_count = $layer->getNumresults(); 1103 $res_count = $layer->getNumresults();
1100 for ($i=0;$i<$res_count;++$i) 1104 for ($i=0;$i<$res_count;++$i)
1101 { 1105 {
@@ -1616,7 +1620,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) @@ -1616,7 +1620,9 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE)
1616 $res_count = $layer->getNumresults(); 1620 $res_count = $layer->getNumresults();
1617 if ($res_count > 0) 1621 if ($res_count > 0)
1618 { 1622 {
1619 - $abriu = $layer->open(); 1623 + $sopen = $layer->open();
  1624 + if($sopen == MS_FAILURE){return "erro";}
  1625 +
1620 for ($i = 0; $i < $res_count; ++$i) 1626 for ($i = 0; $i < $res_count; ++$i)
1621 { 1627 {
1622 $result = $layer->getResult($i); 1628 $result = $layer->getResult($i);
@@ -1932,7 +1938,9 @@ function autoClasses(&amp;$nlayer,$mapa) @@ -1932,7 +1938,9 @@ function autoClasses(&amp;$nlayer,$mapa)
1932 $ret->setextent($temp[0],$temp[1],$temp[2],$temp[3]); 1938 $ret->setextent($temp[0],$temp[1],$temp[2],$temp[3]);
1933 } 1939 }
1934 // 1940 //
1935 - $nlayer->open(); 1941 + $sopen = $nlayer->open();
  1942 + if($sopen == MS_FAILURE){return "erro";}
  1943 +
1936 $status = $nlayer->whichShapes($ret); 1944 $status = $nlayer->whichShapes($ret);
1937 $parametrosClasses = array(); 1945 $parametrosClasses = array();
1938 if ($status == 0) 1946 if ($status == 0)