getlayerbyname($tema); if(strtolower($layer->getmetadata("EDITAVEL")) != "sim"){ $retorno = "erro"; } else{ $tabela = $layer->getmetadata("TABELAEDITAVEL"); $esquema = $layer->getmetadata("ESQUEMATABELAEDITAVEL"); $colunaidunico = $layer->getmetadata("COLUNAIDUNICO"); $colunageometria = $layer->getmetadata("COLUNAGEOMETRIA"); if($colunageometria == ""){ $retorno = "erro"; } $c = stringCon2Array($layer->connection); try { $dbh = new PDO('pgsql:dbname='.$c["dbname"].';user='.$c["user"].';password='.$c["password"].';host='.$c["host"].';port='.$c["port"]); //pega o SRID $sql = "select ST_SRID($colunageometria) as srid from $esquema"."."."$tabela LIMIT 1"; //echo $sql;exit; $q = $dbh->query($sql,PDO::FETCH_ASSOC); $r = $q->fetchAll(); $srid = $r[0]["srid"]; $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); if($srid == ""){ $srid = "4326"; } $sql = "INSERT INTO ".$esquema.".".$tabela." (".$colunageometria.")"; $sql .= " VALUES (ST_GeomFromText('SRID=$srid;".$wkt."'))"; $sth = $dbh->exec($sql); $dbh->commit(); $retorno = "ok"; } catch (Exception $e) { $dbh->rollBack(); $retorno = array("Falhou: " . $e->getMessage()); } } break; case "ATUALIZAGEOMETRIA": $mapa = ms_newMapObj($map_file); $layer = $mapa->getlayerbyname($tema); if(strtolower($layer->getmetadata("EDITAVEL")) != "sim"){ $retorno = "erro"; } else{ $tabela = $layer->getmetadata("TABELAEDITAVEL"); $esquema = $layer->getmetadata("ESQUEMATABELAEDITAVEL"); $colunaidunico = $layer->getmetadata("COLUNAIDUNICO"); $colunageometria = $layer->getmetadata("COLUNAGEOMETRIA"); if($colunageometria == ""){ $retorno = "erro"; } $c = stringCon2Array($layer->connection); try { $dbh = new PDO('pgsql:dbname='.$c["dbname"].';user='.$c["user"].';password='.$c["password"].';host='.$c["host"].';port='.$c["port"]); //pega o SRID $sql = "select ST_SRID($colunageometria) as srid from $esquema"."."."$tabela LIMIT 1"; //echo $sql;exit; $q = $dbh->query($sql,PDO::FETCH_ASSOC); $r = $q->fetchAll(); $srid = $r[0]["srid"]; $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $sql = "UPDATE ".$esquema.".".$tabela." SET ".$colunageometria." = (ST_GeomFromText('SRID=$srid;".$wkt."')) WHERE $colunaidunico = ".$idunico; $sth = $dbh->exec($sql); $dbh->commit(); $retorno = "ok"; } catch (Exception $e) { $dbh->rollBack(); $retorno = array("Falhou: " . $e->getMessage()); } } break; case "EXCLUIREGISTRO": $mapa = ms_newMapObj($map_file); $layer = $mapa->getlayerbyname($tema); if(strtolower($layer->getmetadata("EDITAVEL")) != "sim"){ $retorno = "erro"; } else{ $tabela = $layer->getmetadata("TABELAEDITAVEL"); $esquema = $layer->getmetadata("ESQUEMATABELAEDITAVEL"); $colunaidunico = $layer->getmetadata("COLUNAIDUNICO"); $colunageometria = $layer->getmetadata("COLUNAGEOMETRIA"); if($colunageometria == ""){ $retorno = "erro"; } $c = stringCon2Array($layer->connection); try { $dbh = new PDO('pgsql:dbname='.$c["dbname"].';user='.$c["user"].';password='.$c["password"].';host='.$c["host"].';port='.$c["port"]); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $sql = "DELETE from ".$esquema.".".$tabela." where ".$colunaidunico."::text = '$identificador' "; $sth = $dbh->exec($sql); $dbh->commit(); } catch (Exception $e) { $dbh->rollBack(); $retorno = array("Falhou: " . $e->getMessage()); } } $retorno = "ok"; break; case "SALVAREGISTRO": $mapa = ms_newMapObj($map_file); $layer = $mapa->getlayerbyname($tema); if(strtolower($layer->getmetadata("EDITAVEL")) != "sim"){ $retorno = "erro"; } else{ $tabela = $layer->getmetadata("TABELAEDITAVEL"); $esquema = $layer->getmetadata("ESQUEMATABELAEDITAVEL"); $colunaidunico = $layer->getmetadata("COLUNAIDUNICO"); if($colunageometria == ""){ $retorno = "erro"; } $c = stringCon2Array($layer->connection); try { $dbh = new PDO('pgsql:dbname='.$c["dbname"].';user='.$c["user"].';password='.$c["password"].';host='.$c["host"].';port='.$c["port"]); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $sql = "UPDATE ".$esquema.".".$tabela." SET $coluna = '$valor' where ".$colunaidunico."::text = '$identificador' "; $sth = $dbh->exec($sql); $dbh->commit(); } catch (Exception $e) { $dbh->rollBack(); $retorno = array("Falhou: " . $e->getMessage()); } } $retorno = "ok"; break; } if (!connection_aborted()){ if(isset($map_file) && isset($postgis_mapa) && $map_file != "") restauraCon($map_file,$postgis_mapa); cpjson($retorno); } else {exit();} ?>