coluna da geometria geom e the_geom

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

coluna da geometria geom e the_geom

carlos_jacinto
Bom dia.

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

carlos_jacinto

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

Alexandre Neto
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 <[hidden email]>:

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

QGIS-pt duplicação de tabelas com o mesmo nome

carlos_jacinto
In reply to this post by carlos_jacinto
Boa tarde

Criei duas tabelas com o mesmo nome  "agua_boca_rega".

 Num primeiro momento usei o campo geometrico geom  e num segundo momento usei o campo geometrico the_geom.

De momento e em base dados PostGres ( a versão é a 8.4.3) apenas possuo a última tabela criada com o campo geometrico_the geom.

No entanto quando estou a usar o QGIS2.4 recorrendo à ferramenta de adição de uma camada postgis surgem as duas tabelas.

Ao tentar adicionar a tabela inexistente na base de dados surge um erro referindo que é uma camada inválida - não carregado.

Testei com o GvSIG e ArcMap e apenas surge a última tabela "agua_boca_rega" criada e que de facto se encontra em base de dados.

Há alguma forma de limpar as tabelas antigas anteriormente criadas para que não surjam no QGIS ?



Obrigado,

Carlos Jacinto

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

carlos_jacinto
In reply to this post by Alexandre Neto
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: [hidden email]
To: [hidden email]
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 <[hidden email]>:

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________ QGIS-pt mailing list [hidden email] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

Alexandre
Crie uma tabela NÃO espacial com o SQL acima. Ou seja, sem a coluna espacial (sem a coluna geom). Após criada essa tabela adicione uma coluna espacial (no seu caso a geom) usando a função "AddGeometryColum". Maiores detalhes no manual do Postgis 1.5 (http://postgis.net/stuff/postgis-1.5.pdf), página 25.

Att,

Alexandre


Em 8 de agosto de 2014 11:16, Carlos Jacinto <[hidden email]> 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: [hidden email]
To: [hidden email]
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 <[hidden email]>:

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________ QGIS-pt mailing list [hidden email] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: QGIS-pt duplicação de tabelas com o mesmo nome

Alexandre
In reply to this post by carlos_jacinto
Já tentou excluir a conexão existente com o banco de dados e depois cria uma nova conexão? Tente!

Alexandre


Em 8 de agosto de 2014 11:02, Carlos Jacinto <[hidden email]> escreveu:
Boa tarde

Criei duas tabelas com o mesmo nome  "agua_boca_rega".

 Num primeiro momento usei o campo geometrico geom  e num segundo momento usei o campo geometrico the_geom.

De momento e em base dados PostGres ( a versão é a 8.4.3) apenas possuo a última tabela criada com o campo geometrico_the geom.

No entanto quando estou a usar o QGIS2.4 recorrendo à ferramenta de adição de uma camada postgis surgem as duas tabelas.

Ao tentar adicionar a tabela inexistente na base de dados surge um erro referindo que é uma camada inválida - não carregado.

Testei com o GvSIG e ArcMap e apenas surge a última tabela "agua_boca_rega" criada e que de facto se encontra em base de dados.

Há alguma forma de limpar as tabelas antigas anteriormente criadas para que não surjam no QGIS ?



Obrigado,

Carlos Jacinto

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

Alexandre Neto
In reply to this post by carlos_jacinto

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" <[hidden email]> 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: [hidden email]
To: [hidden email]
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 <[hidden email]>:

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________ QGIS-pt mailing list [hidden email] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt


_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

carlos_jacinto
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: [hidden email]
To: [hidden email]
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" <[hidden email]> 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: [hidden email]
To: [hidden email]
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 <[hidden email]>:

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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt



_______________________________________________ QGIS-pt mailing list [hidden email] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt


_______________________________________________ QGIS-pt mailing list [hidden email] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

duartecarreira
In reply to this post by carlos_jacinto
Carlos,

Qual a razão de ter st_ndims = 4? Os vectores têm coordenadas x,y,z,m?

Se for o caso, penso que o QGIS não edita dados 3d. E não sei se edita dados com coordenada m. Penso que não, mas talvez alguém possa confirmar?

Por outro lado, ao adicionar a constraint de obrigar os vectores a terem 4 coords, deu erro. Logo pelo menos parte dos vectores não têm essa dimensão. Tens de verificar que tipo de vectores estão afinal nessa tabela.

Este sql deve mostrar as dims existentes:

select st_ndims(geom),count(*) from <tabela_espacial> group by st_ndims(geom);

Convém que numa tabela todos os vectores sejam do mesmo tipo. Se for preciso, terás de converter alguns vectores para uniformizar. Ou criar uma nova tabela com apenas xy. Se precisares da coord z poderá ser suficiente uma coluna com esses valores?

Quanto ao facto de teres o problema inicial de tabelas "mortas" a aparecer é porque o postgis <2.0 não mantém automaticamente o registo das tabelas espaciais (vê public.geometry_columns). Para manter este registo actual, deves criar e apagar tabelas espaciais com as funções de gestão do postgis ou terás de manter os registos manualmente com inserts e deletes:

AddGeometryColumn
DropGeometryColumn
DropGeometryTable
Populate_Geometry_Columns
Probe_Geometry_Columns

Toda a info aqui: http://postgis.refractions.net/documentation/manual-1.5/reference.html#Management_Functions

Abr,
Duarte


Reply | Threaded
Open this post in threaded view
|

Re: coluna da geometria geom e the_geom

carlos_jacinto
Duarte,

A razão por ter adoptado por st_ndims = 4 é que os pontos que estou a tratar têm cota z.

Fiz o que me proposeste e de facto os vectores não se encontravam uniformizados.


<img src="data:image/png;base64,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" alt="">



Como poderei então converter e uniformizar os registos.

Existe a função st_force , será a indicada ?
ALTER agua_boca_rega geom ADD geom2d geometry
UPDATE geom SET geom2d = ST_Force_2D(the_geom) 





> Date: Mon, 11 Aug 2014 02:38:12 -0700

> From: [hidden email]
> To: [hidden email]
> Subject: Re: [QGIS-pt] coluna da geometria geom e the_geom
>
> Carlos,
>
> Qual a razão de ter st_ndims = 4? Os vectores têm coordenadas x,y,z,m?
>
> Se for o caso, penso que o QGIS não edita dados 3d. E não sei se edita dados
> com coordenada m. Penso que não, mas talvez alguém possa confirmar?
>
> Por outro lado, ao adicionar a constraint de obrigar os vectores a terem 4
> coords, deu erro. Logo pelo menos parte dos vectores não têm essa dimensão.
> Tens de verificar que tipo de vectores estão afinal nessa tabela.
>
> Este sql deve mostrar as dims existentes:
>
> select st_ndims(geom),count(*) from <tabela_espacial> group by
> st_ndims(geom);
>
> Convém que numa tabela todos os vectores sejam do mesmo tipo. Se for
> preciso, terás de converter alguns vectores para uniformizar. Ou criar uma
> nova tabela com apenas xy. Se precisares da coord z poderá ser suficiente
> uma coluna com esses valores?
>
> Quanto ao facto de teres o problema inicial de tabelas "mortas" a aparecer é
> porque o postgis <2.0 não mantém automaticamente o registo das tabelas
> espaciais (vê public.geometry_columns). Para manter este registo actual,
> deves criar e apagar tabelas espaciais com as funções de gestão do postgis
> ou terás de manter os registos manualmente com inserts e deletes:
>
> AddGeometryColumn
> DropGeometryColumn
> DropGeometryTable
> Populate_Geometry_Columns
> Probe_Geometry_Columns
>
> Toda a info aqui:
> http://postgis.refractions.net/documentation/manual-1.5/reference.html#Management_Functions
>
> Abr,
> Duarte
>
>
>
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.nabble.com/coluna-da-geometria-geom-e-the-geom-tp5155514p5155768.html
> Sent from the QGIS-pt mailing list archive at Nabble.com.
> _______________________________________________
> QGIS-pt mailing list
> [hidden email]
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

FW: st_Force_2D

carlos_jacinto



Duarte,

Testei a linha abaixo mas surge o seguinte erro:  ERRO: modificador de tipo não é permitido para tipo "geometry" SQL state: 42601

ALTER TABLE emarp.agua_junta_cega ALTER COLUMN geom  SET DATA TYPE geometry(Point,27492) USING ST_Transform(ST_Force_2D(geom),27492)


Creio que poderá ter que ver com a versão do Postgis "POSTGIS="1.5.1".


Se assim for alguêm me dá alguma dica como transformar os registos....













From: [hidden email]
To: [hidden email]
Subject: RE: [QGIS-pt] coluna da geometria geom e the_geom
Date: Mon, 11 Aug 2014 11:46:07 +0100

Duarte,

A razão por ter adoptado por st_ndims = 4 é que os pontos que estou a tratar têm cota z.

Fiz o que me proposeste e de facto os vectores não se encontravam uniformizados.






Como poderei então converter e uniformizar os registos.

Existe a função st_force , será a indicada ?
ALTER agua_boca_rega geom ADD geom2d geometry
UPDATE geom SET geom2d = ST_Force_2D(the_geom) 





> Date: Mon, 11 Aug 2014 02:38:12 -0700

> From: [hidden email]
> To: [hidden email]
> Subject: Re: [QGIS-pt] coluna da geometria geom e the_geom
>
> Carlos,
>
> Qual a razão de ter st_ndims = 4? Os vectores têm coordenadas x,y,z,m?
>
> Se for o caso, penso que o QGIS não edita dados 3d. E não sei se edita dados
> com coordenada m. Penso que não, mas talvez alguém possa confirmar?
>
> Por outro lado, ao adicionar a constraint de obrigar os vectores a terem 4
> coords, deu erro. Logo pelo menos parte dos vectores não têm essa dimensão.
> Tens de verificar que tipo de vectores estão afinal nessa tabela.
>
> Este sql deve mostrar as dims existentes:
>
> select st_ndims(geom),count(*) from <tabela_espacial> group by
> st_ndims(geom);
>
> Convém que numa tabela todos os vectores sejam do mesmo tipo. Se for
> preciso, terás de converter alguns vectores para uniformizar. Ou criar uma
> nova tabela com apenas xy. Se precisares da coord z poderá ser suficiente
> uma coluna com esses valores?
>
> Quanto ao facto de teres o problema inicial de tabelas "mortas" a aparecer é
> porque o postgis <2.0 não mantém automaticamente o registo das tabelas
> espaciais (vê public.geometry_columns). Para manter este registo actual,
> deves criar e apagar tabelas espaciais com as funções de gestão do postgis
> ou terás de manter os registos manualmente com inserts e deletes:
>
> AddGeometryColumn
> DropGeometryColumn
> DropGeometryTable
> Populate_Geometry_Columns
> Probe_Geometry_Columns
>
> Toda a info aqui:
> http://postgis.refractions.net/documentation/manual-1.5/reference.html#Management_Functions
>
> Abr,
> Duarte
>
>
>
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.nabble.com/coluna-da-geometria-geom-e-the-geom-tp5155514p5155768.html
> Sent from the QGIS-pt mailing list archive at Nabble.com.
> _______________________________________________
> QGIS-pt mailing list
> [hidden email]
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt
Reply | Threaded
Open this post in threaded view
|

Re: FW: st_Force_2D

duartecarreira
O que eu faria era criar uma nova tabela com uma nova coluna coordZ e adicionava a coluna de geometria depois:

SELECT AddGeometryColumn ('my_schema','my_spatial_table','the_geom',27492,'POINT',2);

Depois copiava os dados anteriores para a nova tabela, criando os pontos apenas com o x e y das geometrias originais, e copiando a coord z para a nova coluna:

INSERT INTO my_table (col1, col2, col3, the_geom, coordz)
    SELECT col1, col2, col3, ST_Force_2D(the_geom), ST_Z(the_geom)
    FROM my_table AS old

Se o ST_Force_2D não funcionar podemos construir a geometria com st_geomfromtext ou com st_setsrid(st_point(x,y), 27492):
st_geomfromtext('POINT (' || ST_X(the_geom)::text || ' ' || ST_Y(the_geom)::text ||')', 27492)

nota: não testei o sql...

Há com certeza outras formas de fazer isto...


Reply | Threaded
Open this post in threaded view
|

Re: FW: st_Force_2D

carlos_jacinto
Obrigado Duarte pelas recomendações e sugestões que me envias-te.

Acabei por conseguir resolver a situação:

1: update emarp.agua_hidrante set geom = ST_Force_2D(geom);

2: vacuum full analyze emarp.agua_boca_rega ;

3: update public.geometry_columns  set  coord_dimension = '2' where f_table_name = 'agua_boca_rega'

4: ALTER TABLE emarp.agua_boca_rega  ADD CONSTRAINT enforce_srid_geom CHECK (srid(geom) = 27492);

5: ALTER TABLE emarp.agua_boca_rega  ADD CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'POINT'::text OR geom IS NULL);

6: ALTER TABLE emarp.agua_boca_rega  ADD CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2);


Obrigado a todos pelo apoio e espero tambem poder contribuir.

Cumprimentos



> Date: Mon, 11 Aug 2014 04:59:52 -0700

> From: [hidden email]
> To: [hidden email]
> Subject: Re: [QGIS-pt] FW: st_Force_2D
>
> O que eu faria era criar uma nova tabela com uma nova coluna coordZ e
> adicionava a coluna de geometria depois:
>
> SELECT AddGeometryColumn
> ('my_schema','my_spatial_table','the_geom',27492,'POINT',2);
>
> Depois copiava os dados anteriores para a nova tabela, criando os pontos
> apenas com o x e y das geometrias originais, e copiando a coord z para a
> nova coluna:
>
> INSERT INTO my_table (col1, col2, col3, the_geom, coordz)
> SELECT col1, col2, col3, ST_Force_2D(the_geom), ST_Z(the_geom)
> FROM my_table AS old
>
> Se o ST_Force_2D não funcionar podemos construir a geometria com
> st_geomfromtext ou com st_setsrid(st_point(x,y), 27492):
> st_geomfromtext('POINT (' || ST_X(the_geom)::text || ' ' ||
> ST_Y(the_geom)::text ||')', 27492)
>
> nota: não testei o sql...
>
> Há com certeza outras formas de fazer isto...
>
>
>
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.nabble.com/coluna-da-geometria-geom-e-the-geom-tp5155514p5155795.html
> Sent from the QGIS-pt mailing list archive at Nabble.com.
> _______________________________________________
> QGIS-pt mailing list
> [hidden email]
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt

_______________________________________________
QGIS-pt mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-pt