[udig-devel] Problem with my MapGraphic implementation. Please
Help
Jesse Eichar
jeichar at refractions.net
Wed Oct 10 21:05:22 PDT 2007
Hi.
It sounds to me like since you want actual animation you may want to
use an animation instead. For now the API is rather poor. I plan on
integrating the timing framework later on. But for now look into
IAnimation and AnimationUpdater to run the animation.
The problem with using an animation is that it something must start
it. I'd suggest that when your map graphic is called to render it
starts the animation (if it is not already running). Draw commands
(and IAnimations) are drawn on the Acetate layer and are removed
during certain rendering actions, such as a zoom in. Because of this
you may find that you have to put a timestamp on you animation to
make sure that it keeps running and isn't disposed of.
I'm not sure this email completely makes sense. Please let me know
if you have a question.
Jesse
On Oct 8, 2007, at 8:57 AM, Ingmar Eveslage wrote:
>
> Hello,
>
> I have a problem with the plugin I developed. I implemented a
> MapGraphic
> Extension which draw rectangles on a given position on the map.
> I also implemented a thread which modifies the data that is drawn
> and then
> calls the Layer.refresh(Envelope) function to draw the MapGraphic
> again with
> the updated data. Then the thread takes a short break, modifies the
> data
> again and refreshes the layer again, and so on.
>
> The MapGrahpics implementation uses double buffering and draws the
> hidden
> painted picture (a java.awt.image.BufferedImage) in the last line
> of the
> override draw(MapGraphicContext context) function.
>
> All works fine, but because the MapGraphic.draw function takes some
> time (i
> paint many rectangles, and sometime circles) it has not finished
> before the
> "updating-thread" calls Layer.refresh again. if this happens the
> MapGraphics
> layer gets totally blank. As i said: only if the Layer.refresh call is
> before the MapGrahics.draw function finishes its last redraw.
>
> This is very distracting, because the MapGraphic layer with all my
> rectangles and circles begin to flicker and sometimes when there
> are many
> updates the MapGraphic layer gets deleted short after its ready with
> painting.
>
> I hope someone can help me. I tried to find a way to suspend the
> updating
> thread until the MapGraphic layer completed the draw method, but i
> didn't
> find the right api call. after hours of debugging i could not even
> find the
> place where the layer gets blank.
>
> So please help me.
>
> Thanks forward
> Ingmar
>
> For info:
>
> I use Eclipse 3.2 and the uDig SDK 1.1RC11 on a Intel Mac.
> --
> View this message in context: http://www.nabble.com/Problem-with-my-
> MapGraphic-implementation.-Please-Help-tf4588290.html#a13096935
> Sent from the udig-devel mailing list archive at Nabble.com.
>
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel
More information about the udig-devel
mailing list