Donut Symbol.
Blammo
bob.basques at CI.STPAUL.MN.US
Fri Aug 26 12:21:37 PDT 2005
Hmm, sounds like overkill for my needs, but it does give me another idea.
Using Paco's method of a closed "U" shap symbol, I could stack two
circle outlines on top of the closed Ushape and use those for the
outline colors of the filled donut area.
It's not pretty, but I won't tell anyone if you don't.
The sizing of the radius for offset is dynamic and being sent to the
sever, so your thoughts are certainly relevent.
Thanks for the ideas. I had thought about drawing a PolyShape with a
HOLE in it as well. But this even seemed like overkill. As a matter
of fact, I've probably put to much into it already at this point :c)
bobb
Bill Binko wrote:
>Another approach is to handle this on the data side: either in Mapscript
>or in the database if your data is in PostGIS (and perhaps through OGR:
>Frank?)
>
>What I do for this is simply have the data set return a buffer() around
>the point and then display the layer as a POLYGON rather than a point.
>
>So, if your original data was in PostGIS and your DATA line was:
>
>DATA "myPoint from (SELECT oid, myPoint from myTable WHERE someField =
> 'someValue') as foo using unique oid using SRID=1234"
>
>You could just change that to:
>
>DATA "myPoint from (SELECT oid, buffer(myPoint, myRingsize) from myTable
> WHERE someField = 'someValue') as foo using unique oid using SRID=1234"
>
>and change your layer from POINT to POLYGON
>
>I don't know if OGR can do buffer(), but certainly you could look into it.
>
>Bill
>
>
>
>On Fri, 26 Aug 2005, Steve Lime wrote:
>
>
>
>>A dynamic donut is not possible given the way MapServer currently works.
>>
>>The way point symbols work is that a raster marker image is rendered based
>>on the properties of the symbol and a SINGLE style. So this has to be accomplished
>>within the context of a symbol definition or a style definition. Multiple styles will not
>>help you because the base circle would already obscure anything underneath it.
>>
>>We could change the way an ELLIPSE symbol is rendered so that if you have
>>additional second set of radii defined then that defines the hole. But the problem
>>still remains that you need to specify sizes for the inner and outer ring which would
>>involve changes to the style object- yuck.
>>
>>One could look at rendering all styles at once as well rather then in turn. You'd just
>>define the hole somehow as a style. Nice idea but not doable at the moment.
>>
>>I wonder if a better approach would be to think about this particular problem as
>>an exercise in combining a couple of maps. You certainly can use MapServer to build
>>the base image, and you can also use MapServer to draw the rings in a seperate
>>images (draw the big ring, and then draw the hole using the background color for
>>the whole image). You just need to figure out how to combine them.
>>
>>You could use DHTML or MapScript to do this. I bet there's a way to do it using straight
>>CGI (draw the rings as a raster layer in the second map) if we knew more about the
>>application. For example, you might create the ring image and then refer to it as a
>>layer in the base image. With AJAX you could do that using the CGI.
>>
>>Steve
>>
>>
>>
>>>>>Blammo <bob.basques at CI.STPAUL.MN.US> 08/26/05 11:46 AM >>>
>>>>>
>>>>>
>>Jeff,
>>
>>I tried that already.
>>
>>What I'm basically after is a sysmbol that is a empty circle with a
>>thickness aplied to the line. Ideally it would be a symbol like
>>anyother that I could apply a COLOR and OUTLINECOLOR to.
>>
>>Paco's idea of the close "u" shap would work if I didn't need to outline it.
>>
>>I also ran into another slight problem as well (may Paco has some ideas
>>about this too.)
>>
>>I was trying to use this symbol as a distance measuring tool. but
>>seemed to run into a snag with a size limit. I couldn't get the symbol
>>to go over a certain pixel size. The circle is supposed to represent
>>a distance buffer in miles (ground units).
>>
>>If I zoom in too close, the symbol won't get any larger than a certain
>>size, about 500 pixels I would guess. I actually have three of these
>>symbols stacked on top of each other for different distances. But the
>>size of the symbol grow as I zoom in, but once I hit this max pixel
>>size, the sysbol stop growing at this approx 500 pixel size.
>>
>>Thanks
>>
>>bobb
>>
>>
>>
>>Jeff Portwine wrote:
>>
>>
>>
>>>I haven't tried this , so it may not work, I've always used filled in
>>>shapes.. but couldn't you just use a non-filled in circle:
>>>
>>>SYMBOL
>>> NAME "circle"
>>> TYPE ellipse
>>> FILLED false
>>> POINTS
>>> 1 1
>>> END
>>>END
>>>
>>>and then set its size appropriately? I'm not sure if there is a good way
>>>to affect the thickness though, other than stacking several of them with
>>>varying sizes.
>>>
>>>-Jeff
>>>
>>>----- Original Message -----
>>>From: "Bob Basques" <bob.basques at CI.STPAUL.MN.US>
>>>To: <MAPSERVER-USERS at LISTS.UMN.EDU>
>>>Sent: Thursday, August 25, 2005 5:39 PM
>>>Subject: [UMN_MAPSERVER-USERS] Donut Symbol.
>>>
>>>
>>>
>>>
>>>
>>>
>>>>Does anyone know of a good way to make a donut symbol.
>>>>
>>>>I need to be able to resize a symbol that is basically a donut. Where the
>>>>donut part is semi-opaque, and the center is open. It's basically a
>>>>min/max distance from a point overlay. I have the dynamic handing off of
>>>>the sizing handled already, but haven't figured out a good way to make a
>>>>filled donut symbol.
>>>>
>>>>I did mange to make a stacked symbol, but I would really like to have the
>>>>center no be filled in, only the area between the MIN/MAX distance from
>>>>the point picked.
>>>>
>>>>Thanks
>>>>
>>>>bobb
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20050826/d53f655b/attachment.htm>
More information about the MapServer-users
mailing list