Commit 8cee961ecdab8c42e718865a2766a32bf7dccee3
1 parent
d0550acb
Exists in
master
and in
7 other branches
--no commit message
Showing
2 changed files
with
51 additions
and
15 deletions
Show diff stats
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);} |