Saturday, 22 September 2012

Slicing and dicing themes into more manageable chunks with Maestro

Ever try to theme a layer and have this message thrown at you?

This message is shown for a reason. Having a 100+ theme is generally impractical:

  • From a display perspective. Your viewer legend won't have enough vertical space to show such a large theme.
  • From a performance perspective. There's a reason the AJAX viewer truncates such themes and Fusion before MapGuide 2.4 completely grinds your MapGuide Server to a halt. Your MapGuide Server would be spammed with Legend icon requests.

So what could you do if you have to show a large theme?

By using the "divide and conquer" approach, breaking this large theme down into smaller manageable sub-layers. A strategy would be to theme this layer by some common parent attribute (that has a smaller distribution of unique values), and then splitting off this layer into sub-layers that are filtered on each rule filter in the parent layer. From there, you could then generate specific smaller (and more manageable) themes for each of these sub-layers.

The next beta of Maestro will help you achieve this type of workflow.

The layer editor now has an "Explode Theme" button for each basic geometry style (disabled for composite styles as that is a whole different kettle of fish).

Clicking this button presents a dialog with some options for splitting this layer up.

Clicking "Create" will then generate these sub-layers.

If you open any of these sub-layers, you will see that it is based off of the same Feature Source and feature class, but it inherits the rule's filter, style and scale range.

From here, you can then generate themes that are only applicable for this sub-layer.

Previously there was a bug where generating a theme disregarded it's layer filter meaning you could generate style rules for a layer that will never actually have any matches. This bug has been fixed as a result of this new feature, because otherwise, you would still be seeing the same message above trying to generate the same theme for this sub-layer.

Next beta is coming real soon. Few more things to be fixed.

No comments: