ThinkGeo.com    |     Documentation    |     Premium Support

V12.1 - Map drawn event

Hi,

I would like to catch the point in time when the map is completely drawn after a change (e.g. after a Zoom In operation). Im MapSuite 9 the OverlaysDrawn event was the right way to do this.

In Version 12 is this event fired when the map is clearly NOT yet done drawing.(see below where the map is still blurred after zooming out)

A couple of seconds after this event will the map be really drawn with full detail.

How can I capture this moment with Version 12?
(BTW the CurrentExtentChanged event did not help either.)

Thank you.

Peter

Thanks Peter,
Could you update the ThinkGeo nugget package to the latest ones. We did some enhancement for this one.

Thanks

Frank

Hi,

I’m currently using version 12.2.19. Should I go to version 13-beta?

Peter

Thanks Peter,
As talked with the development team. In the mapsuite 12 we using the multiple threading to draw the overlay(s). So it difficult to tell when all overlays drawn. Right now once the first overly drawn we will trigger the event. The workaround for this one you could hook up the Drawn event to the most time consume overlay(s). Some thing like this

LayerOverlay lo = Get The most time consume overly;
lo.Drawn += Lo_Drawn;

private void Lo_Drawn(object sender, DrawnOverlayEventArgs e)
{
// Do what you want to after the most time consume Overlay(s) drawn;
}

Thanks

Frank

Hello Frank,

thank you for your answer.
I’ll try that.

Peter

Thanks Peter,
Go ahead let us know if you have any question.

Thanks

Frank

Hello Frank,

your suggested workaround is unfortunately not really reliable.
Did you possibly change anything the last month regarding this behaviour?
I mean it should not be that difficult to let the separate threads join again after they are drawn in the core of the mapping engine.

Best regards,
Peter

Hi Peter,

Frank is working on other projects now, and I take over this task. I agree with you that it can be supported by adding some flags for all overlays inherited from the base class “Overlay”, because the base class Overlay is only for an abstract class for APIs and common implementation, for different sub-classes, they have different drawing methods. Just as you mentioned, not difficult, but needs changing all sub-classes and do the tests, I will update this thread to “In progress” and look into the changes next few days.

Sorry for the inconvenience. Any progress will be updated here.

Thanks,
Johnny

Hi Peter,

Can you remove the workaround from Frank and update to the latest version (V12.3.13) when having a chance? We made some improvements on the events and hopefully if fixes your issue.

Let me know if you have any question.

Thanks,
Ben