A while ago, I started a discussion on creating a centralized mapping solution. Though most people were not really for it, which at the time I was not strongly for it, I am here to come back and say I am for it, and here is why.
Working on the OpenLayers module, and switching the architecture to CTools plugins a year ago with @tmcw's direction and ideas, I feel like its a really solid base to creating maps. Of course there are many places for improvements.
I also recently started on making a CloudMade module. And in thinking about it and possibly looking at a different architectural direction, I still came back to the same structure. Specifically, the parts of a map are the same:
- Map object with settings
- Layers, like tiles, markers, feeds
- "Markers", the idea of styling features. (could be renamed)
- Behaviors, this just the ability to add events and functionality to the map outside of the other things. This attempts to take care of any edge cases.
And so, when I was looking at PolyMaps and thinking about making a module for that, I was like, wait, the ideas are all the same. This is even true for Google Maps and Mapstraction.
So, why not abstract all this out, make it more extendable, and provide a standard interface (maybe like Views). Then each individual map module can be a much thinner layer on top to provide specifics for that library. This also means that it will be easier and more standard to create integration with other modules.
I think I will aim to do this either way, but I would love to get feedback. My initial thought would be to aim to do this D7, because my time is limited and I probably won't get around to this for some time.
