Layers and Holism
This recent article (“Layered GeoInt“) describes how “layers” will be used to achieve “holism”. I really feel the concept of layers often stands in the way of holistic understanding. For example, say you’ve deployed something to Arcmap users and they see something in the real world they want to put onto the map. There’s a good chance what they see does not fit neatly into a single layer. So what do they do? Odds are they end up marking the map up with graphics (IElements). If you’ve been a supportive programmer for these users, maybe you’ve provided tools to let them hang attributes off these elements as xml strings (in IElementProperties.CustomProperty).
Lets suppose you developed a mechanism to share these elements with the rest of the enterprise. Now what we need is a framework for doing the following to these elements: spatial selection, identify (like the Identify tool), and select by attributes. Basically all the tools that work with FeatureLayers are also needed for these IElements.
I submit that the FeatureLayer concept is really joined at the hip with Codd’s relational model. There’s been a lot written about the shortcomings of the relational model, for example here. Usually the criticism is followed by some sort of proposal for an xml database. What is needed is an ILayer for xml.
In that spirit, I propose a new class, XmlLayer, that would maintain a collection of XmlFeatures. There would be NO rule saying all XmlFeatures in an XmlLayer have to have the same geometrytype, or the same field definitions. This would solve the “feature level metadata” requirement. XSLT would be leveraged for rendering, import, export, etc.
Some concepts, e.g. an electric circuit, are comprised by features that live in different featureclasses. Maybe things like the GeometricNetwork and database Topologies could be expressed to the map as an XMLLayer. That way all the features comprising the circuit would be in on layer.
Certainly there are scalability issues, but those issues exist for managing large collections of IElements too. Maybe some day I’ll give this a try.