Thanks - again, this is all fairly new, but I'm invested in learning at this point. Will check out both.<div><br></div><div>Out of curiosity, how does MapShaper handle this on the backend?</div><div><br><br><div class="gmail_quote">
On Tue, Jun 28, 2011 at 3:48 PM, Sandro Santilli <span dir="ltr"><<a href="mailto:strk@keybit.net">strk@keybit.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Tue, Jun 28, 2011 at 03:00:47PM -0400, Christian Guirreri wrote:<br>
> OK works- thanks.<br>
><br>
> So I'm learning now about the difference between what MapShaper does and<br>
> what ST_Stimplify does. Is there any way to make sure that simplified<br>
> boundary lines will match other boundary lines? i.e. even the smallest<br>
> simplifications (like 0.05) produces very visible gaps between adjacent<br>
> districts.<br>
<br>
</div>What you could do is convert your layer to a topological representation,<br>
simplify each edge of the topology and then convert back to simple features.<br>
<br>
I'm looking for a sponsor to make the first part easier.<br>
Second part is easy already.<br>
<br>
If you're unfamiliar with postgis topology,<br>
here's a presentation I gave in Paris last week:<br>
<a href="http://strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf" target="_blank">http://strk.keybit.net/projects/postgis/Paris2011_TopologyWithPostGIS_2_0.pdf</a><br>
And, there's info on the wiki too.<br>
<br>
Another approach could be using ST_Snap to snap each simplified geometry<br>
against the collected vertices of each previously simplified one falling<br>
within a slightly enlarged bounding box of the geometry you're simplifying.<br>
<div><div></div><div class="h5"><br>
--strk;<br>
<br>
> On Tue, Jun 28, 2011 at 1:12 PM, Sandro Santilli <<a href="mailto:strk@keybit.net">strk@keybit.net</a>> wrote:<br>
><br>
> > Christian,<br>
> > I suggest you create a new geometry field w/out enforcing type constraints<br>
> > on it, write the simplified version in there and then see what you get.<br>
> ><br>
> > --strk;<br>
> ><br>
> > On Tue, Jun 28, 2011 at 12:15:13PM -0400, Christian Guirreri wrote:<br>
> > > Same error. Tried both Polygon and Multipolygon. I'm not sure which the<br>
> > > Tiger Data is.<br>
> > ><br>
> > > On Tue, Jun 28, 2011 at 11:41 AM, Ben Madin<br>
> > > <<a href="mailto:lists@remoteinformation.com.au">lists@remoteinformation.com.au</a>>wrote:<br>
> > ><br>
> > > > Christian,<br>
> > > ><br>
> > > > My guess here is that because you've told the geometry to be a<br>
> > > > MULTIPOLYGON, but you may have returned a POLYGON, you have indeed<br>
> > violated<br>
> > > > the check constraint on the geometry type.<br>
> > > ><br>
> > > > try using st_multi() to get around it, as in :<br>
> > > ><br>
> > > > update public.tl_2010_us_cd111 set simple_geom =<br>
> > > > ST_Multi(ST_SimplifyPreserveTopology(the_geom, 15));<br>
> > > ><br>
> > > ><br>
> > > > cheers<br>
> > > ><br>
> > > > Ben<br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > On 28/06/2011, at 11:23 PM, Christian Guirreri wrote:<br>
> > > ><br>
> > > > I get the following error:<br>
> > > > ERROR: new row for relation "tl_2010_us_cd111" violates check<br>
> > constraint<br>
> > > > "enforce_geotype_simple_geom"<br>
> > > > SQL state: 23514<br>
> > > ><br>
> > > > Here's my SQL:<br>
> > > > select addGeometryColumn('public', 'tl_2010_us_cd111', 'simple_geom',<br>
> > 4326,<br>
> > > > 'MULTIPOLYGON', 2);<br>
> > > > update public.tl_2010_us_cd111 set simple_geom =<br>
> > > > ST_SimplifyPreserveTopology(the_geom, 15);<br>
> > > ><br>
> > > ><br>
> > > > On Mon, Jun 27, 2011 at 2:07 PM, Stephen Woodbridge <<br>
> > > > <a href="mailto:woodbri@swoodbridge.com">woodbri@swoodbridge.com</a>> wrote:<br>
> > > ><br>
> > > >> On 6/27/2011 1:37 PM, Christian Guirreri wrote:<br>
> > > >><br>
> > > >>> I'm trying to do something fairly simple. I'd like to take the Tiger<br>
> > > >>> 2010 Data - tl_2010_us_cd111 and tl_2010_us_county10 - and create<br>
> > shape<br>
> > > >>> files that are considerably smaller and more simplified. In the past<br>
> > > >>> I've just used MapShaper and been OK with that, but I was having<br>
> > trouble<br>
> > > >>> uploading tl_2010_us_county10 into it and I've decided its time to<br>
> > learn<br>
> > > >>> some GIS basics anyway.<br>
> > > >>><br>
> > > >>> I've definitely successfully setup my environment - PostegreSQL 9<br>
> > with<br>
> > > >>> PostGIS. I've used the shp2pgsql wizard included with pgadmin to<br>
> > import<br>
> > > >>> the data sets into their own databases, without the "Load Geography<br>
> > > >>> column" checked. I've been able to export this data back to shp<br>
> > > >>> using pgsql2shp and view the resulting shp in QuantumGIS and ACDSee<br>
> > > >>> Canvas.<br>
> > > >>><br>
> > > >>> But when it comes to simplification - I'm not sure where to even<br>
> > > >>> start. I'm no database expert beyond some simple mysql so GIS is<br>
> > > >>> especially overwhelming. I only know that I want to<br>
> > > >>> use ST_SimplifyPreserveTopology() as I'm fairly certain a number of<br>
> > > >>> things will disappear if I don't.<br>
> > > >>><br>
> > > >>> Would love if someone could provide me with the SQL to make this<br>
> > happen!<br>
> > > >>><br>
> > > >><br>
> > > >> First you should understand that ST_SimplifyPreserveTopology() works<br>
> > on a<br>
> > > >> single geometry at a time and not on multiple geometries in a<br>
> > coverage. The<br>
> > > >> difference is in a coverage the the polygons that share a common edge<br>
> > that<br>
> > > >> is simplified would continue to have a common simplified edge. When<br>
> > polygons<br>
> > > >> are simplified individually with knowledge of the adjacent polygons it<br>
> > is<br>
> > > >> possible for gaps and overlaps to occur along the simplified edge.<br>
> > > >> ST_SimplifyPreserveTopology() is designed to try and minimize these<br>
> > effects<br>
> > > >> but there are no guarantees.<br>
> > > >><br>
> > > >> You might try something like:<br>
> > > >><br>
> > > >> select addGeometryColum('myschema', 'mytable', 'simple_geom', 4326,<br>
> > > >> 'MULTIPOLYGON', 2);<br>
> > > >> update myschema.mytable set simple_geom =<br>
> > ST_SimplifyPreserveTopology(**the_geom,<br>
> > > >> <tolerance>);<br>
> > > >><br>
> > > >> where <tolerance> is replaces by an appropriate value. This will<br>
> > depend on<br>
> > > >> the some trial and error. The above assume srid=4326 which is probably<br>
> > not a<br>
> > > >> good projection for doing simplification so you might want to project<br>
> > your<br>
> > > >> data into some other UTM or Mercator projection depending on your<br>
> > coverage<br>
> > > >> area and tolerance needs to be set with respect to those units.<br>
> > > >><br>
> > > >> -Steve W<br>
> > > >> ______________________________**_________________<br>
> > > >> postgis-users mailing list<br>
> > > >> postgis-users@postgis.**<a href="http://refractions.net" target="_blank">refractions.net</a><<br>
> > <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a>><br>
> > > >> <a href="http://postgis.refractions." target="_blank">http://postgis.refractions.</a>**net/mailman/listinfo/postgis-**users<<br>
> > <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a>><br>
> > > >><br>
> > > ><br>
> > > > _______________________________________________<br>
> > > > postgis-users mailing list<br>
> > > > <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
> > > > <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > _______________________________________________<br>
> > > > postgis-users mailing list<br>
> > > > <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
> > > > <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
> > > ><br>
> > > ><br>
> ><br>
> > > _______________________________________________<br>
> > > postgis-users mailing list<br>
> > > <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
> > > <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
> ><br>
> ><br>
> > --<br>
> ><br>
> >  ()   Free GIS & Flash consultant/developer<br>
> >  /\   <a href="http://strk.keybit.net/services.html" target="_blank">http://strk.keybit.net/services.html</a><br>
> ><br>
<br>
> _______________________________________________<br>
> postgis-users mailing list<br>
> <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
<br>
<br>
--<br>
<br>
  ()   Free GIS & Flash consultant/developer<br>
  /\   <a href="http://strk.keybit.net/services.html" target="_blank">http://strk.keybit.net/services.html</a><br>
</div></div></blockquote></div><br></div>