[QGIS-pt] coluna da geometria geom e the_geom
Carlos Jacinto
carlosjacinto hotmail.com
Segunda-Feira, 11 de Agosto de 2014 - 01:53:07 PDT
Olá muito bom dia.
Segui as recomendações que me indicou Alxandre e de facto a tabela das geometrias public.geometry_columns tinha registado duas entradas para a coluna da geometria.
Apaguei o registo com a geometria the_geom e agora apenas surge um registo ao adicionar a camada pelo qgis.
No entanto agora ao entrar em modo de edição não consigo alterar geometricamente a tabela surgindo a seguinte Mensagem de registo: "
Edição e adição desativadas para camada 2D+ (geom; "emarp"."agua_boca_rega") ".
Optei por tentar no postgis actualizar a dimensão da geometria:
ALTER TABLE emarp.agua_boca_rega ADD CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 4);
Mas surge a seguinte mensagem:
ERRO: restrição de verificação "enforce_dims_geom" foi violada por algum registro
********** Error **********
ERRO: restrição de verificação "enforce_dims_geom" foi violada por algum registro
SQL state: 23514
Como posso saber quais os registos que se encontram a violar "enforce_dims_geom" ?
Como posso começar a editar a geometria da tabela ?
Obrigado
Date: Fri, 8 Aug 2014 20:56:35 +0100
From: senhor.neto gmail.com
To: qgis-pt lists.osgeo.org
Subject: Re: [QGIS-pt] coluna da geometria geom e the_geom
Boa tarde Carlos,
O postgis 1.5 funciona de uma maneira diferente do 2.x, não consigo experimentar criar essa tabela.
Acho que os dois problemas que enunciou na mailing list estão relacionados e surgem da tal existência em tempos de duas tabelas com exactamente o mesmo nome.
De alguma forma na tabela das geometrias devem lá existir dois registos, um com o geom e outro the_geom, embora na verdade já só exista uma das colunas.
Creio que o qgis lê a tabela das geometrias e lista as tabelas daí. Se uma tabela tiver duas colunas de geometria, então aparece duas vezes.
Sugiro que conhece por verificar o que está na tabela das geometrias.
Select * from public.geometry_columns where table_name = 'emarp.agua_boca_rega'
Depois, caso seja necessário elimine o registo (coluna de geometria) obsoleto.
Espero que tenha ajudado.
Alexandre Neto
Em 08/08/2014 15:17, "Carlos Jacinto" <carlosjacinto hotmail.com> escreveu:
1- Pode dizer-nos qual a versão do Postgres e do Postgis que está a usar?
A tabela do tipo
PONTO encontra-se alojada em "PostgreSQL 8.4.3, compiled by Visual C++ build 1400, 32-bit"3 e a versão do Postgis é
"POSTGIS="1.5.1" GEOS="3.2.0-CAPI-1.6.0" PROJ="Rel. 4.6.1, 21 August 2008" LIBXML="2.7.6" USE_STATS".
2- Pode também facultar-nos todo o sql de contrução da tabela?
CREATE TABLE emarp.agua_boca_rega
(
abr_cod_old integer NOT NULL,
abr_desc character varying(254) DEFAULT 'Boca de Rega'::character varying,
abr_dat_ano_insta smallint DEFAULT 1900,
abr_dat_ano_insta_obs text,
abr_dat_funci date DEFAULT '1900-01-01'::date,
abr_dat_funci_obs character varying(150),
abr_ciclo_vida text,
abr_est_conserv text,
abr_reservatorio text,
abr_freg text,
abr_resp_lev text,
abr_font_info text,
abr_dat_lev date DEFAULT '1900-01-01'::date,
abr_dat_lev_obs character varying(100),
abr_tipo_proj text,
abr_tipo_proj_obs character varying(250),
abr_obs character varying(254),
abr_caminho_cad character varying(254) DEFAULT 'N/A'::character varying,
abr_indice_proj character varying(50) DEFAULT 'N/A'::character varying,
abr_arquivo_id integer DEFAULT 0,
abr_tracado_id numeric DEFAULT 0,
abr_cacifo character varying(150) DEFAULT 'N/A'::character varying,
abr_os_num smallint,
abr_os_dat date,
abr_os_tip_ord character varying(1),
abr_artigo character varying(20),
abr_user_mod character varying(254),
abr_dat_mod timestamp without time zone,
abr_user character varying(254),
abr_dat timestamp without time zone DEFAULT now(),
abr_entidade character varying(75),
abr_rotacao smallint,
geom geometry,
CONSTRAINT pkey_abr_cod PRIMARY KEY (abr_cod_old),
CONSTRAINT fkey_abr_ciclo_vida FOREIGN KEY (abr_ciclo_vida)
REFERENCES emarp.tab_ciclo_vida (tcv_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_est_conserv FOREIGN KEY (abr_est_conserv)
REFERENCES emarp.tab_est_conserv (tec_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_font_info FOREIGN KEY (abr_font_info)
REFERENCES emarp.tab_font_info (tfi_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_freg FOREIGN KEY (abr_freg)
REFERENCES emarp.tab_freg (tfr_freguesia) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_reservatorio FOREIGN KEY (abr_reservatorio)
REFERENCES emarp.agua_reservatorio (are_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_resp_lev FOREIGN KEY (abr_resp_lev)
REFERENCES emarp.tab_resp_lev (trl_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fkey_abr_tipo_proj FOREIGN KEY (abr_tipo_proj)
REFERENCES emarp.tab_tipo_proj (ttp_cod) MATCH FULL
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT constraint_abr_os_tip_ord CHECK (abr_os_tip_ord::text = 'C'::text OR abr_os_tip_ord::text = 'E'::text OR abr_os_tip_ord::text = 'I'::text),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(geom) = 'POINT'::text OR geom IS NULL),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(geom) = 27492),
CONSTRAINT not_null_abr_font_info CHECK (abr_font_info IS NOT NULL),
CONSTRAINT not_null_abr_freg CHECK (abr_freg IS NOT NULL),
CONSTRAINT not_null_abr_resp_lev CHECK (abr_resp_lev IS NOT NULL),
CONSTRAINT not_null_abr_tipo_proj CHECK (abr_tipo_proj IS NOT NULL)
)
3- A camada foi adicionada através da ferramenta de Adiccionar Camada(s) PosGIS disponibilizada pelo QGIS.
Date: Fri, 8 Aug 2014 15:02:19 +0100
From: senhor.neto gmail.com
To: qgis-pt lists.osgeo.org
Subject: Re: [QGIS-pt] coluna da geometria geom e the_geom
Boa tarde Carlos,
Pode dizer-nos qual a versão do Postgres e do Postgis que está a usar?
Pode também facultar-nos todo o sql de contrução da tabela?
Para finalizar, como adicionou a camada ao qgis?
Cumprimentos,
Alexandre Neto
2014-08-08 14:43 GMT+01:00 Carlos Jacinto <carlosjacinto hotmail.com>:
Boa tarde.
Alguém me pode ajudar a perceber porque é que não consigo adicionar um novo elemento a uma tabela do tipo PONTO que se encontra alojada em PostGres?
A coluna da geometria está designada por "geom" e assim pretendia mantê-la.
No entanto quando altero o nome da coluna da geometria para "the_geom" o Qgis passa a permitir adicionar um novo elemento.
Estes sãos os constrangimentos presentes para a tabela:
CONSTRAINT agua_boca_rega_pkey PRIMARY KEY (gid),
CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 4),
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'POINT'::text OR geom IS NULL),
CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 27492)
Obrigado,
Carlos Jacinto
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
_______________________________________________
QGIS-pt mailing list
QGIS-pt lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/qgis-pt/attachments/20140811/a33dd399/attachment.html>
More information about the QGIS-pt
mailing list