[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