Christian,
My guess here is that because you've told the geometry to be a MULTIPOLYGON,
but you may have returned a POLYGON, you have indeed violated the check
constraint on the geometry type.
try using st_multi() to get around it, as in :
> update public.tl_2010_us_cd111 set simple_geom =
> ST_Multi(ST_SimplifyPreserveTopology(the_geom, 15));
cheers
Ben
On 28/06/2011, at 11:23 PM, Christian Guirreri wrote:
> I get the following error:
> ERROR: new row for relation "tl_2010_us_cd111" violates check constraint
> "enforce_geotype_simple_geom"
> SQL state: 23514
>
> Here's my SQL:
> select addGeometryColumn('public', 'tl_2010_us_cd111', 'simple_geom', 4326,
> 'MULTIPOLYGON', 2);
> update public.tl_2010_us_cd111 set simple_geom =
> ST_SimplifyPreserveTopology(the_geom, 15);
>
>
> On Mon, Jun 27, 2011 at 2:07 PM, Stephen Woodbridge <[email protected]>
> wrote:
> On 6/27/2011 1:37 PM, Christian Guirreri wrote:
> I'm trying to do something fairly simple. I'd like to take the Tiger
> 2010 Data - tl_2010_us_cd111 and tl_2010_us_county10 - and create shape
> files that are considerably smaller and more simplified. In the past
> I've just used MapShaper and been OK with that, but I was having trouble
> uploading tl_2010_us_county10 into it and I've decided its time to learn
> some GIS basics anyway.
>
> I've definitely successfully setup my environment - PostegreSQL 9 with
> PostGIS. I've used the shp2pgsql wizard included with pgadmin to import
> the data sets into their own databases, without the "Load Geography
> column" checked. I've been able to export this data back to shp
> using pgsql2shp and view the resulting shp in QuantumGIS and ACDSee Canvas.
>
> But when it comes to simplification - I'm not sure where to even
> start. I'm no database expert beyond some simple mysql so GIS is
> especially overwhelming. I only know that I want to
> use ST_SimplifyPreserveTopology() as I'm fairly certain a number of
> things will disappear if I don't.
>
> Would love if someone could provide me with the SQL to make this happen!
>
> First you should understand that ST_SimplifyPreserveTopology() works on a
> single geometry at a time and not on multiple geometries in a coverage. The
> difference is in a coverage the the polygons that share a common edge that is
> simplified would continue to have a common simplified edge. When polygons are
> simplified individually with knowledge of the adjacent polygons it is
> possible for gaps and overlaps to occur along the simplified edge.
> ST_SimplifyPreserveTopology() is designed to try and minimize these effects
> but there are no guarantees.
>
> You might try something like:
>
> select addGeometryColum('myschema', 'mytable', 'simple_geom', 4326,
> 'MULTIPOLYGON', 2);
> update myschema.mytable set simple_geom =
> ST_SimplifyPreserveTopology(the_geom, <tolerance>);
>
> where <tolerance> is replaces by an appropriate value. This will depend on
> the some trial and error. The above assume srid=4326 which is probably not a
> good projection for doing simplification so you might want to project your
> data into some other UTM or Mercator projection depending on your coverage
> area and tolerance needs to be set with respect to those units.
>
> -Steve W
> _______________________________________________
> postgis-users mailing list
> [email protected]
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
> _______________________________________________
> postgis-users mailing list
> [email protected]
> http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users