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]
<mailto:[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]
<mailto:[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]
<mailto:[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]>
[mailto:[email protected]
<mailto:[email protected]>]
On
Behalf Of Martin Davis
Sent: Thursday, May 06, 2010 8:56 AM
To: John Abraham;
[email protected]
<mailto:[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]
<mailto:[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]
<mailto:[email protected]>
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
<mailto:[email protected]>
http://postgis.refractions.net/mailman/listinfo/postgis-users
------------------------------------------------------------------------
_______________________________________________
postgis-users mailing list
[email protected]
<mailto:[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]
<mailto:[email protected]>
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
<mailto:[email protected]>
http://postgis.refractions.net/mailman/listinfo/postgis-users
_______________________________________________
postgis-users mailing list
[email protected]
<mailto:[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]
<mailto:[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