Commit 8cee961ecdab8c42e718865a2766a32bf7dccee3

Authored by Edmar Moretti
1 parent d0550acb

--no commit message

classesphp/classe_analise.php
@@ -108,6 +108,46 @@ $ext - Extensão geográfica do mapa @@ -108,6 +108,46 @@ $ext - Extensão geográfica do mapa
108 } 108 }
109 } 109 }
110 /* 110 /*
  111 +Method: criaDefDb
  112 +
  113 +Cria um array contendo as definições das colunas que serão criadas em uma tabela DBF conforme as exigências de arquivos dbf
  114 +
  115 +parameters:
  116 +
  117 +$itens - array com os nomes originais das colunas
  118 +
  119 +return:
  120 +{array}
  121 +*/
  122 + function criaDefDb($itens){
  123 + $c = 0;
  124 + $def = array();
  125 + foreach ($items as $ni){
  126 + $ni = strtoupper($ni);
  127 + $def[] = array(substr($ni, 0, 8).$c,"C","254");
  128 + $c = $c + 1;
  129 + }
  130 + return $def;
  131 + }
  132 +/*
  133 +Method: truncaS
  134 +
  135 +Trunca o comprimento de uma string em 255 caracteres
  136 +
  137 +parameters:
  138 +
  139 +$s - string
  140 +
  141 +return
  142 +{string}
  143 +*/
  144 + function truncaS($s){
  145 + if(strlen($s) > 255){
  146 + $s = substr($s,0,255);
  147 + }
  148 + return $s;
  149 + }
  150 +/*
111 Method: salva 151 Method: salva
112 152
113 Salva o mapfile atual 153 Salva o mapfile atual
@@ -979,9 +1019,7 @@ $locaplic - Localização do I3geo. @@ -979,9 +1019,7 @@ $locaplic - Localização do I3geo.
979 $layerPt->close(); 1019 $layerPt->close();
980 //gera o novo arquivo shape file 1020 //gera o novo arquivo shape file
981 // cria o dbf 1021 // cria o dbf
982 - $def = array();  
983 - foreach ($itemspt as $ni)  
984 - {$def[] = array(substr($ni, 0, 10),"C","254");} 1022 + $def = $this->criaDefDb($itemspt);
985 //pega os itens dos temas poligonais 1023 //pega os itens dos temas poligonais
986 $layersPol = array(); 1024 $layersPol = array();
987 $temas = explode(",",$temasPo); 1025 $temas = explode(",",$temasPo);
@@ -1024,7 +1062,7 @@ $locaplic - Localização do I3geo. @@ -1024,7 +1062,7 @@ $locaplic - Localização do I3geo.
1024 foreach($spts as $spt) 1062 foreach($spts as $spt)
1025 { 1063 {
1026 foreach ($itemspt as $ni) 1064 foreach ($itemspt as $ni)
1027 - {$reg[] = $spt->values[$ni];} 1065 + {$reg[] = $this->truncaS($spt->values[$ni]);}
1028 $novoshpf->addShape($spt); 1066 $novoshpf->addShape($spt);
1029 $lineo = $spt->line(0); 1067 $lineo = $spt->line(0);
1030 $pt = $lineo->point(0); 1068 $pt = $lineo->point(0);
@@ -1047,7 +1085,7 @@ $locaplic - Localização do I3geo. @@ -1047,7 +1085,7 @@ $locaplic - Localização do I3geo.
1047 1085
1048 $shape = $layer->getfeature($shp_index,-1); 1086 $shape = $layer->getfeature($shp_index,-1);
1049 foreach ($itens as $item) 1087 foreach ($itens as $item)
1050 - {$reg[] = $shape->values[$item];} 1088 + {$reg[] = $this->truncaS($shape->values[$item]);}
1051 } 1089 }
1052 else 1090 else
1053 { 1091 {
@@ -1302,10 +1340,8 @@ nome do layer criado com o buffer. @@ -1302,10 +1340,8 @@ nome do layer criado com o buffer.
1302 // cria o shapefile 1340 // cria o shapefile
1303 $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON); 1341 $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POLYGON);
1304 // cria o dbf 1342 // cria o dbf
1305 - $def = array(); 1343 + $def = $this->criaDefDb($items);
1306 $def[] = array("i3geo","C","254"); 1344 $def[] = array("i3geo","C","254");
1307 - foreach ($items as $ni)  
1308 - {$def[] = array(substr($ni, 0, 10),"C","254");}  
1309 if(!function_exists(dbase_create)) 1345 if(!function_exists(dbase_create))
1310 {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);} 1346 {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);}
1311 else 1347 else
@@ -1315,9 +1351,9 @@ nome do layer criado com o buffer. @@ -1315,9 +1351,9 @@ nome do layer criado com o buffer.
1315 $db=xbase_open($dbname,2); 1351 $db=xbase_open($dbname,2);
1316 for($i = 0;$i < count($buffers);++$i) 1352 for($i = 0;$i < count($buffers);++$i)
1317 { 1353 {
1318 - $reg[] = $i;  
1319 foreach ($items as $ni) 1354 foreach ($items as $ni)
1320 - {$reg[] = $shapes[$i]->values[$ni];} 1355 + {$reg[] = $this->truncaS($shapes[$i]->values[$ni]);}
  1356 + $reg[] = $i;
1321 $novoshpf->addShape($buffers[$i]); 1357 $novoshpf->addShape($buffers[$i]);
1322 xbase_add_record($db,$reg); 1358 xbase_add_record($db,$reg);
1323 $reg = array(); 1359 $reg = array();
@@ -1473,9 +1509,7 @@ $locaplic - Localização do I3geo. @@ -1473,9 +1509,7 @@ $locaplic - Localização do I3geo.
1473 $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POINT); 1509 $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POINT);
1474 $items = pegaItens($this->layer); 1510 $items = pegaItens($this->layer);
1475 // cria o dbf 1511 // cria o dbf
1476 - $def = array();  
1477 - foreach ($items as $ni)  
1478 - {$def[] = array(substr($ni, 0, 10),"C","254");} 1512 + $def = $this->criaDefDb($items);
1479 if(!function_exists(dbase_create)) 1513 if(!function_exists(dbase_create))
1480 {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);} 1514 {$db = xbase_create($nomeshp.".dbf", $def);xbase_close($db);}
1481 else 1515 else
@@ -1486,7 +1520,7 @@ $locaplic - Localização do I3geo. @@ -1486,7 +1520,7 @@ $locaplic - Localização do I3geo.
1486 for($i = 0;$i < count($centroides);++$i) 1520 for($i = 0;$i < count($centroides);++$i)
1487 { 1521 {
1488 foreach ($items as $ni) 1522 foreach ($items as $ni)
1489 - {$reg[] = $shapes[$i]->values[$ni];} 1523 + {$reg[] = $this->truncaS($shapes[$i]->values[$ni]);}
1490 $novoshpf->addShape($centroides[$i]); 1524 $novoshpf->addShape($centroides[$i]);
1491 xbase_add_record($db,$reg); 1525 xbase_add_record($db,$reg);
1492 $reg = array(); 1526 $reg = array();
classesphp/funcoes_gerais.php
@@ -1854,14 +1854,16 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE) @@ -1854,14 +1854,16 @@ function criaSHP($tema,$map_file,$locaplic,$dir_tmp,$nomeRand=TRUE)
1854 $items = pegaItens($layer); 1854 $items = pegaItens($layer);
1855 // cria o dbf 1855 // cria o dbf
1856 $def = array(); 1856 $def = array();
  1857 + $cni = 0;
1857 foreach ($items as $ni) 1858 foreach ($items as $ni)
1858 { 1859 {
1859 $temp = strtoupper($ni); 1860 $temp = strtoupper($ni);
1860 - $temp = substr($temp,0,9); 1861 + $temp = substr($temp,0,8).$cni;
1861 // 1862 //
1862 //nao tem como descobrir o tamanho e tipo do campo 1863 //nao tem como descobrir o tamanho e tipo do campo
1863 // 1864 //
1864 $def[] = array($temp,"C","254"); 1865 $def[] = array($temp,"C","254");
  1866 + $cni = $cni + 1;
1865 } 1867 }
1866 if(!function_exists("dbase_create")) 1868 if(!function_exists("dbase_create"))
1867 {$db = xbase_create($nomeshp.".dbf", $def);} 1869 {$db = xbase_create($nomeshp.".dbf", $def);}