[Qgis-developer] Vector Layer Generalization

Tyler Mitchell info at locatepress.com
Fri May 25 18:38:39 PDT 2012


Good description of  a reasonable approach Brent!  At one point, for a certain dataset, I was able to calculate a pretty reliable (e.g. still made valid features)  ratio of simplification threshold based on map scale.  I don't have the data anymore, but it was almost like an LOD level of detail approach.  

With that in mind, I'd like to see what one could do with LOD approach in OpenGL with map data - probably blows away our best little hacks ;-)  Never got to that yet :)

On 2012-05-25, at 4:26 PM, pcreso at pcreso.com wrote:

> My 02c...
> 
> If you have a table with a geometry column, you can add a second geometry column for the simplified ones. As in the script below, for a national coastline with about 10,000 polygons
> 
> You can generate the simplified ones using a series of update SQL statements, based on a variety of criteria, including neighbouring (or not) via a ST_Distance() in the where clause.
> 
> If you hand craft the update SQL's, you can just copy rather than simplify smaller polygons (ST_Area in the where clause), etc.
> 
> A slowish way, but viable for a 1-off is to have a where clause with an ST_IsValid in the where clause testing the result of the simplification. If the where clause includes a test for the target geometry being not-null, the series can apply a large simplification initially, then progressively apply a decreasing simplifcation buffer to features that failed previous iterations, until the last statement copies any remaining features with zero simplification.
> 
> I prefer a script with a set of SQL's rather than a function, as it is easier to tweak case requirements. 
> 
> The advantage of this approach over the preserving topology simplify function is the degree of control the hand crafted SQL's provide over exactly how to simplify the dataset.
> 
> But, as always, your mileage may vary :-)
> 
>   Cheers,
> 
>       Brent Wood
> 
> 
> #! /bin/bash
> #
> # script to simplify NZ coastline for zoom layer
> 
> DB=nzcoast
> TAB=nz_all
> 
> 
> # add new geometry column
> psql -d $DB -c "alter table nz_all drop column simple_geom;"
> 
> psql -d $DB -c "alter table nz_all add column simple_geom geometry(multipolygon,4326);"
> 
> 
> # populate
> # do small islands with no simplification
> psql -d $DB -qc "update nz_all
>                 set simple_geom=geom 
>                 where ST_Area(geom) < 0.0000000001;"
> psql -d $DB -qc "update nz_all
>                 set simple_geom=ST_Simplify(geom, 0.001) 
>                 where simple_geom isnull
>                   and ST_IsValid(ST_Simplify(geom, 0.001));"
> psql -d $DB -qc "update nz_all
>                 set simple_geom=ST_Simplify(geom, 0.0001) 
>                 where simple_geom isnull
>                   and ST_IsValid(ST_Simplify(geom, 0.0001));"
> psql -d $DB -qc "update nz_all
>                 set simple_geom=ST_Simplify(geom, 0.00001) 
>                 where simple_geom isnull
>                   and ST_IsValid(ST_Simplify(geom, 0.00001));"
> psql -d $DB -qc "update nz_all
>                 set simple_geom=geom 
>                 where simple_geom isnull;"
> 
> 
> 
> 
> --- On Sat, 5/26/12, Carson Farmer <carson.farmer at gmail.com> wrote:
> 
> From: Carson Farmer <carson.farmer at gmail.com>
> Subject: Re: [Qgis-developer] Vector Layer Generalization
> To: "Evgeniy Pashentsev" <ugnpaul at gmail.com>
> Cc: qgis-developer at lists.osgeo.org
> Date: Saturday, May 26, 2012, 10:11 AM
> 
> Excellent! Topology preserving simplification is something I've been
> looking for!
> > But I want to ask your advice on one thing. Is it normal for user
> > to simplify all the features on a layer at once? I'm just not sure
> > which way is more suitable for a regular user:
> > - simplify all the features at once as it is now in my current prototype;
> > - simplify selected feature and all the corresponding vertexes of
> > the neighboring features;
> > - or simplify only selected features;
> > - or even something else.
> > Although it is not very important for current work, I want to make sure
> > I don't implement useless functionality.
> Personally, I normally simplify an entire layer at once... for mapping
> purposes, or simply to reduce drawing time or for computational/space
> efficiency. It might be nice to also have the option to simplify
> selected features only, but if this was an option, then I would expect
> *only* those selected features to be simplified... and *not* their
> neighbouring features...
> 
> That's my two cents anyway, looking forward to trying it out!
> 
> Carson
> 
> 
> -- 
> Dr. Carson J. Q. Farmer
> Centre for GeoInformatics (CGI)
> School of Geography and Geosciences
> Irvine Building, University of St Andrews
> St Andrews, Fife, KY16 9AL
> Scotland, UK
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer


-----
Tyler Mitchell, Publisher
Locate Press, info at locatepress.com
Open Source "geo" Books
http://www.locatepress.com





-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120525/54e6c452/attachment.html


More information about the Qgis-developer mailing list