When I have done this before I usually triangulate the polygon first then use each triangles area to normalize the number of points randomly inserted into each triangle
On May 6, 2010, at 1:51 PM, David William Bitner wrote: > If it was the overall density of the dots that mattered and not as much the > exact number of dots, a representative table could be made with a "random yet > even" set of dots covering a certain area. To apply to a polygon, you could > then Scale the data to the appropriate density and translate/compute the > intersection to apply to a given polygon. > > On Thu, May 6, 2010 at 12:50 PM, Martin Davis <[email protected]> wrote: > Did your algorithm work with irregular polgon extents? > > > Jan Hartmann wrote: > I did this long ago. Regular points won't work, you'll get all kinds of moire > patterns. I just computed random x and y values from the origin of the grid > cell within the x- and y grid-size. Can't remember having any problems with > overlapping points. > > Jan > > On 05/06/10 19:35, Paul Ramsey wrote: > Even-yet-random :) nice requirement. How about just starting with a > regular grid and then perturbing the elements randomly with a radius > of a cell size? You can use the area of the polygon and number of > needed points to calculate the appropriate cell size and go from > there. > > P > > On Thu, May 6, 2010 at 10:28 AM, Martin Davis<[email protected]> wrote: > > Good point about the need for even distribution of the points. That seems > like a whole lot harder to code than simply randomly placing points in a > polygon. Does anyone have any pointers to algorithms for producing this > effect? > > George Silva wrote: > > The really big problem with dot density is that dots can overlap > themselves, > masking the real number, so if anything will be developed in this area, > the > points should be > > A) evenly distributed > or > B) randomly distributed, but with some sort of "colision" tests, so there > is > no or little overlap. > > This is a interesting idea, especially if we could make a materialized > view > with those points, which could be added to GIS software for presentation. > > George > > On Thu, May 6, 2010 at 1:53 PM, Sufficool, Stanley< > [email protected]> wrote: > > > > Looks nasty, but it might work: > > select > st_line_interpolate_point( > st_intersection( > the_geom, > st_makeline( > st_pointn(st_exteriorring(the_geom), (rand1.rand * > st_npoints(st_exteriorring(the_geom)))::int), > st_pointn(st_exteriorring(the_geom), (rand2.rand * > st_npoints(st_exteriorring(the_geom)))::int) > ) > ) > ,rand3.rand > ) > from insert_your_table_name_here, > (select random() as rand, generate_series(1,1000) as point_number) as > rand1 > JOIN (select random() as rand, generate_series(1,1000) as point_number) > as > rand2 > ON rand1.point_number = rand2.point_number > JOIN (select random() as rand, generate_series(1,1000) as point_number) > as > rand3 > ON rand2.point_number = rand3.point_number > WHERE st_geometrytype( > st_intersection( > the_geom, > st_makeline( > st_pointn(st_exteriorring(the_geom), (rand1.rand * > st_npoints(st_exteriorring(the_geom)))::int), > st_pointn(st_exteriorring(the_geom), (rand2.rand * > st_npoints(st_exteriorring(the_geom)))::int) > ) > ) > ) = 'ST_LineString' > AND oid = 5030 /* Enter your own OID here */ > limit 100 > > > > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On > Behalf Of Martin Davis > Sent: Thursday, May 06, 2010 8:56 AM > To: John Abraham; [email protected]; Martin Davis > Subject: Re: [postgis-users] Dot Density idea > > > I was thinking the same thing! > > strk wrote: > > > ST_RandomPoinsOnSurface(geometry, numpoints) would be an interesting > function indeed. Sounds like a good job for GEOS/JTS. > > --strk; > > On Mon, May 03, 2010 at 10:49:32PM -0600, John Abraham wrote: > > > > One of the things I miss about using ESRI's GIS is the > > > ability to do > > > dot-density maps. Within a polygon, the number of dots is > > > proportional to a value, and the dots are randomly placed. I > find it useful to be able to present several data values at > once (e.g. blue dots for population, red dots for employment). > > > I also find that it is a more intuitive way of scaling for > > > zone size > > > than dividing the value by the area of the zone. That is, > > > the count > > > of the dots represents the actual number, but the density > > > of the dots > > > represents the density of the number. So I don't have to decide > whether to divide the value by the area of the polygon to plot > density: both the absolute number and the density are > > > easily visible. > > > Since my open-source GIS viewing systems (mostly QGIS and > > > Mapserver) > > > won't plot dot-density, I've done without. > > But today I realized that I can build these on the server > > > instead. I > > > can generate random points within the bounding-box of the polygon, > throwing out those that aren't contained within the polygon, > repeating until I have enough. Then I can save these points as a > separate layer, and display this layer using almost any desktop or > web based viewer! > > Has anyone done this? Can I do it in SQL or do I need to write > something in PL/pgsql? > > -- > John Abraham > > PS I just bought the Postgis In Action book; enjoying it so far. > _______________________________________________ > postgis-users mailing list [email protected] > http://postgis.refractions.net/mailman/listinfo/postgis-users > > > > > > -- > Martin Davis > Senior Technical Architect > Refractions Research, Inc. > (250) 383-3022 > > _______________________________________________ > 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 > > > -- > Martin Davis > Senior Technical Architect > Refractions Research, Inc. > (250) 383-3022 > > _______________________________________________ > 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 > > > -- > Martin Davis > Senior Technical Architect > Refractions Research, Inc. > (250) 383-3022 > > _______________________________________________ > postgis-users mailing list > [email protected] > http://postgis.refractions.net/mailman/listinfo/postgis-users > > > > -- > ************************************ > David William Bitner > _______________________________________________ > 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
