"Rémi Cura" <[email protected]> escribió:
Hm,
you have a table with polygons.
Obviously some of the polygons are not valid.
So when you correct some of the polygon, they are transformed to line (my
guess : some of the polygons are wihtout surface, for instance POLYGON((0 0
, 1 1 , 0 0 )) ).
Now when trying to insert line into polygon column, postgres complains.
You can do 2 things :
_solve the postgres error, this imply to be sure to update with polygons
_solve the geometry problem, this imply to look a bit into your data to
understand why you have invalid polygon in the first place ..;
The query I gave you is going to show the invalid polygon and why they are
invalid (solving 2.).
If you just don't care, you can update only when the result is a
polygon.(this querry is suboptimal)
UPDATE ft_potencial SETthe_geom=ST_MakeValid(the_geom)
WHERE GeometryType(ST_MakeValid(the_geom) ) ILIKE '%POLYGON%';
Cheers,
Remi-C
What you're doing is ignoring the lines.
But that does not bring problems in the future?
2014-05-16 23:58 GMT+02:00 <[email protected]>:
"Rémi Cura" <[email protected]> escribió:
Remi i dont understand what do you mean here,
You can try to analyze a bit to understand better
(for the following I consider your table doesn't contains too much data)
with the_data AS (
SELECT the_geom, ST_ISValid(the_geom) AS is_valid,
ST_IsValidReason(the_geom)
FROM ft_potencial
)
SELECT *, ST_AsText(ST_MakeValid(the_geom)) AS corrected_geom,
ST_AsText(the_geom) AS original_geometry, detail.*
FROM the_data, *ST_IsValidDetail*(the_geom) AS detail
WHERE is_valid = false
AND GeometryType(the_geom) ILIKE '%POLYGON%'
My guess : you have an invalid no-area polygon, so the makevalid function
transform it into a line
ok, but like i say above, i dont understan, please be more specific,
please, but thanks
Cheers,
Rémi-C
2014-05-16 18:14 GMT+02:00 <[email protected]>:
"Ivan Santiago" <[email protected]> escribió:
Hello:
Run
SELECT PostGIS_full_version();
TO know if your installation has GEOS 3.3.0 or above.
I get this
"POSTGIS="2.0.0 r9605" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March
2012" GDAL="GDAL 1.9.0, released 2011/12/29" LIBXML="2.7.8"
LIBJSON="UNKNOWN" TOPOLOGY RASTER"
---------------------------
Iván Santiago
GIS Specialist
Information Technologies
Office of Management and Budget
787.725.9420 x 2378
Calle Cruz 254
PO Box 9023228
San Juan, PR 00902-3228
http://gis.pr.gov
-----Original Message-----
From: [email protected] [mailto:
[email protected]] On Behalf Of
[email protected]
Sent: Friday, May 16, 2014 11:24 AM
To: [email protected]
Subject: [postgis-users] problem with st_makevalid and (LineString)
Hello people, i got a problem where i have no idea what can i do.
I have this table
CREATE TABLE ft_potencial
(
id_dw_ft_potencial integer NOT NULL,
id_dw_tipo integer NOT NULL,
id_dw_mes integer NOT NULL,
id_dw_municipio integer NOT NULL,
id_dw_date integer NOT NULL,
potencial real NOT NULL,
area real NOT NULL,
the_geom geometry(Polygon,4326),
CONSTRAINT ft_potencial_pkey PRIMARY KEY (id_dw_ft_potencial,
id_dw_tipo, id_dw_mes, id_dw_municipio, id_dw_date)
)
WITH (
OIDS=FALSE
);
and i want to clean the errors that it has using the function
ST_MakeValid in this way
update ft_potencial set the_geom=ST_MakeValid(the_geom);
but it always return this error
ERROR: Geometry type (LineString) does not match column type (Polygon)
********** Error **********
ERROR: Geometry type (LineString) does not match column type (Polygon)
Estado SQL:22023
what can i do to fix or clean the geometry without problems.
please help.
thanks
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
--
Este mensaje le ha llegado mediante el servicio de correo electronico
que
ofrece Infomed para respaldar el cumplimiento de las misiones del
Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso
de
usar el servicio a tales fines y cumplir con las regulaciones
establecidas
Infomed: http://www.sld.cu/
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso
de
usar el servicio a tales fines y cumplir con las regulaciones
establecidas
Infomed: http://www.sld.cu/
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso de
usar el servicio a tales fines y cumplir con las regulaciones establecidas
Infomed: http://www.sld.cu/
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
--
Este mensaje le ha llegado mediante el servicio de correo electronico que
ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
Nacional de Salud. La persona que envia este correo asume el compromiso de usar
el servicio a tales fines y cumplir con las regulaciones establecidas
Infomed: http://www.sld.cu/
_______________________________________________
postgis-users mailing list
[email protected]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users