At 04:22 PM 4/17/01 +0200, Roeland van der Spek wrote:
>1. create points from the nodes in the polygons that represent the bodies of
>water
>2. use Triangulator to create Thiessen polygons around these newly created
>nodes/points
>3. calculate the distance to the node that is  in the same Thiessen
>polygon as the point you want to calculate the distance from....

Unfortunately, this nice idea doesn't really work either.

Recall that the question was to assign to each of many points its distance 
to the nearest "body of water"--a polygon, presumably.  One approach is to 
divide the plane into regions; each region consists of all points closest 
to a given body of water.  The problem is then solved with a 
point-in-polygon solver followed by a quick point-to-polygon distance 
calculation.

This idea extends the notion of Thiessen (Voronoi, Dirichlet) 
polygon.  However, it is a distinctly different construct: in particular, 
the region boundaries usually contain parts of parabolas and so are not 
even polygons in the usual sense.

For example, consider a long straight stretch of river, part of whose 
boundary is represented by a line segment between two widely separated 
points.  Let's call this segment "D".  Suppose that nearby is a pond or 
lake (such as a cutoff oxbow).  To simplify the analysis, imagine this pond 
is so small that we can practically represent it as a single point 
"F".  (This simplification still produces the correct conclusions.)

Locally, the generalized Thiessen region corresponding to D and F is 
bounded by the locus of points equidistant from D and F.  This, by 
definition, is a parabola with directrix D and focus F.  Since parabolas 
are everywhere non-linear, and (the usual) Thiessen polygons always have 
piecewise linear boundaries, NO Thiessen polygon software will generate a 
perfectly correct solution.

In particular, the "Triangulator" approach described above will produce 
highly erroneous results in all such areas where a long line segment 
represents a portion of a polygon's boundary.

One work-around is to represent polygon boundaries not just by their nodes, 
but by their nodes together with a collection of tightly-spaced points 
marching around their perimeters.  This in effect creates piecewise linear 
approximations to the parabolic arcs in step 2 above.  It will also greatly 
increase time and RAM requirements for the solution.

It's no longer as "easy as 1-2-3," but it can be done.  (I have taken this 
approach in ArcView, which doesn't do a bad job at all.)  However, the 
approximation inherent in the method, together with its complexity, suggest 
that a raster solution will be just as good as this vector approach.

Preparata and Shamos (Computational Geometry: An Introduction, 
Springer-Verlag, 1985) indicate that an algorithm has been developed to 
compute the generalized Thiessen regions, but they do not provide 
references.  I would be grateful to hear from anyone who can supply a 
reference or code, in any language.

--Bill Huber
Quantitative Decisions



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.

Reply via email to