This project is read-only.

Preview images for multi-point symbology

Feb 28, 2012 at 4:44 PM

Symbolic images are often required to present a visual feedback or (current/possible) selection to the user, e.g. think about a list where the user selects one item to place it on the map. This is already easly possible with single point symbols but there are some questions for multipoint symbols.

  • What kind of "preview" functionality is planned?
  • Does MilSym want to deal these problems or should every app handle this problem itself?

Some multi-point symbols have a letter/text which differenciates them, but when generating a graphic for a button these letters are quite small (too small for reading them). Another problem is the width/height ratio, e.g. for (poly)lines. The preview could contain lines with a width below pixel granularity and you'll get an effekt of vanishing lines... the preview seems to be empty or incomplete.

An overridable GetPreview() for the MilGraphic which searches the catalogue for an alternative PreviewControlTemplate, e.g. "G_TPY" has a "G_TPY_Preview" would be nice. Alternatively a possiblity to get the image with a preview Brush/TextSize might be a solution.
The other way to handle this is to provide own preview images from the app, which is also a common way.

We tried to generate preview images from the catalogue but most of the previews are not usable at a button size of 60x60.

Aug 26, 2012 at 11:55 PM

Sorry this has taken so long. I'm not planning, at the present time, to add interactivity or previews to the symbology. I had planned sometime earlier to do it but at this point I'm waiting to see how Windows 8 shakes out with its XAML support versus HTML5 support for Canvas and SVG before diving into this.

If you look at the dynamic update test in Silverlight, you'll see roughly how I would go about adding this feature. A single graphics draws very quickly even if points are moved or the graphic is resized. So I would start by dropping a pre-sized object onto a drawing surface - similar to what the Esri or Bing map tests do. I would then allow the user to either move points or click between points to add new points. The existing drawing logic should then be able to render any changes in real-time. If this is done properly with data binding, there should be not much code to write.