[postgis-users] Buffer() Arc Tolerance
strk at refractions.net
strk at refractions.net
Wed Oct 13 11:49:49 PDT 2004
Buffer(geom, dist, quadsegs) is in both HEAD and 0_9_0 branches.
--strk;
On Wed, Oct 13, 2004 at 11:25:27AM -0700, Paul Ramsey wrote:
> Richard_D_Levine at raytheon.com wrote:
>
> >LLOL (Lunatic LOL)
> >
> >My project is safety critical. Our safety engineers want the polygon
> >scribed outside of the circle instead of inside it to ensure that the
> >radius is covered at a minimum. There's just no talking to those folks. I
> >add the arc tolerance to the radius before calling Make_Buffer_Polygon() to
> >solve the problem.
> >
> >If the extra parameter is exposed, I can figure out the rest. An
> >icosidodecagon is overkill for my stuff most of the time. Using a value
> >smaller than 8 should enhance performance.
>
> You'll have to pick this up off of the 0.9 CVS branch when it gets
> added. Should be a day or so (or you can submit the patch to us yourself :)
>
> >Does the world really need a word for 32 sided polygon? Icosidodecagon has
> >the same number of characters as 32sidedpolygon.
> >
> >Thanks,
> >
> >Rick
> >
> >
> >Richard_D_Levine at raytheon.com wrote:
> >
> >
> >>Forgive me for using the O word, but my application is currently using
> >>Oracle Spatial, and I want to try it out on PostGIS. Oracle Spatial's
> >>Buffer() function (Make_Buffer_Polygon()) takes arc tolerance as a
> >>parameter. For a point, it scribes a equal-sided polygon inside the
> >
> >circle
> >
> >>described by the point and buffer distance (radius). The arc tolerance
> >
> >is
> >
> >>the farthest distance from any side of the polygon to the circumference
> >
> >of
> >
> >>the (imaginary) circle. The number of points in the returned polygon
> >
> >from
> >
> >>Oracle is determined by the radius of the circle and the arc tolerance.
> >
> >
> >I see. I don't know if I like the way Oracle has exposed that particular
> >knob (seems needlessly obfuscating the underlying action, which is the
> >creation of N edges to approximate the arc). However, I can see that the
> >occasional lunatic user (*cough*) might actually need to twiddle it.
> >
> >
> >>>From what you said below, it appears that the PostGIS Buffer() will
> >
> >return
> >
> >>an octagon. Is that correct?
> >
> >
> >No, as Martin noted, the parameter refers to the number of segments per
> >90 degrees, so applying it circularly, you will get an icosidodecagon (I
> >love the internet). http://www.google.com/search?q=icosidodecagon
> >
> >
> >>It appears I've hit a snag, because I need to construct arbitrarily
> >
> >complex
> >
> >>polygons by taking the union of buffer polygons around points and
> >>(multi)lines.
> >>
> >>Any ideas?
> >
> >
> >We can add a parameter to the Buffer() postgis exposes easily enough,
> >since GEOS/JTS allows this parameter to be modified.
> >
> >Paul
> >
> >
> >>For nitty gritty the details, sometime you have to "use the source,
> >
> >Luke".
> >
> >>From PostGIS source:
> >>
> >> Geometry *g3 = g1->buffer(width);
> >>
> >>So, PostGIS is not defining a stroke angle, or using anything other than
> >>the defaults, it's the GEOS code which is controlling what is done.
> >>
> >>Hitting the GEOS code, source/operation/buffer is the place to go, but
> >>the documentation of DEFAULT_QUADRANT_SEGMENTS seems a bit thin. I can
> >>tell you that the default is 8, which is what PostGIS uses.
> >>
> >>What do you mean by the arc tolerance? The number of vertices used to
> >>approximate the circular structure?
> >>
> >>Richard_D_Levine at Raytheon.com wrote:
> >>
> >>
> >>>If I use Buffer() on a point to approximate a geodetic circle, how do I
> >>>determine the arc tolerance of the returned polygon to the circle?
> >>>
> >>>Is there any documentation that contains answers to questions like this?
> >>>I've read the PostGIS documentation cover to cover and the function
> >>>explanations are at a very high level (mostly copied from the OGC spec.)
> >
> >
> >_______________________________________________
> >postgis-users mailing list
> >postgis-users at postgis.refractions.net
> >http://postgis.refractions.net/mailman/listinfo/postgis-users
> >
> >
> >
> >
> >
> >_______________________________________________
> >postgis-users mailing list
> >postgis-users at postgis.refractions.net
> >http://postgis.refractions.net/mailman/listinfo/postgis-users
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list