Thanks for the response Ben. We definately appreciate it.
Perhaps I should give you an idea of what we're trying to achieve, and are able to do with MapSuite 2.0. You might want to get a cup of coffee and take a bathroom break before you read any further:P
In our application, the display of mapping data (e.g. shape files) is only a very small (but important) part of what we are doing. Applying the style to the layer is great for say Roads, Railways, Towns etc where they all look the same. We are however, far more interested in the ability to interact with objects on the map that are added by users.
The bulk of our application is centered around the interactive display of data to the user (Dynamic Shapes). Let's take a route as an example. If you want to plot a route on the map, it consists of a set of points, joined by a set of lines (or one line with many points). This can all be styled by applying a default line style and a default point style to the layer.
Now if you want to hightlight a point in a route, or add several "symbols" around a point in the route that give the user more information about that point, you would need to access the style information for that point, or at least be able to give that point a style different to the others on the layer. In MapSuite 2.0, I would find the PointMapShape, then access the symbols. To add additional icons around the primary icon, I would just add more sybols and apply an offset to each one.
Another example off the top of my head would be placing a set of markers on a map.. (perhaps different vehicles, or even runners etc). To distinguish between them, I would need to make each one look different. If I had to add a new layer each time I added a different type of marker, I might end up with hundreds of layers in an overlay.
I'm not sure if I have missed the boat on this one, and there is an easy way to do this.
If I could make this:
var feature = new Feature(x, y);
layer.InternalFeatures.Add("key", feature);
become something like this:
var feature = new Feature(x, y);
feature.Symbols.Add(new PointSymbol(PrimaryBitmap, XOffset, YOffset))
feature.Symbols.Add(new PointSymbol(OffsetBitmap, XOffset, YOffset))
layer.InternalFeatures.Add("key", feature);
I'd be quite happy.