Let’s face facts – the stable of GIS Web standards is suboptimal. To show you what I mean, let’s think about the common things you’d want to do with web mapping and see if there is a successful standard that you can leverage.
We’ll define success as the widespread use of the standard on the web – there are thousands, or tens of thousands, of working examples (of a web nearing billions of users, that doesn’t seem too much to ask). Of course a standard may be wildley successful in another domain, such as Enterprise software, but that doesn’t count as the web.
Let’s start with the most obvious thing – making maps. This is the domain of Web Map Service (WMS) and Style Layer Descriptor (SLD).
It doesn’t take long to figure out why no main stream mapping sites actually uses WMS. Its design makes it difficult to cache results and unfortunately rendering maps ain’t quick nor easy – there is a reason Google/Microsoft/Yahoo use cached tiles. The biggest WMS server I know of is Terraserver, and its seems to have kept Microsoft researchers busy happily writing papers about how to scale it.
Instead, everyone has seemed to come up with the same approach for web mapping – use pre-rendered tiles that use the Mercator projection. Or, if you have a desktop client (Google Earth, Virtual Earth), then the engineering is difficult enough that you use your own proprietary algorithms/encodings to actually make the system scaleable enough to work.
And as far as styling maps – have you actually read the SLD standard or used it? I didn’t think so.
So we’ll say no success in the standards world here. Which raises an interesting question – is there any room or need for a web map tiling standard (and the Web Coverage Standard, WCS, doesn’t count since it support arbitrarily bounding boxes like WMS).
Adding Points to a Map
To provide some hooks into Google Earth, Google offers KML, which lets developers add custom information to maps. Behind the might of Google, KML has gained a large market share. Since Google has recently submitted KML to the OGC for standardization, we’ll call this a standards win.
This is the world of GeoRss, which lets you specify points/lines/polgyons. GeoRss has clawed its way into importance due to its simplicity and one would assume developer fatigue with reading the GML spec. GeoRss is fine for what it does, but this is the most basic level possible, akin to a first-grade reading level. But we’ll call it a win.
This is the world of Web Feature Server (WFS) and Geography Markup Language (GML). I’ve previously blogged about why I think GML is too complex for the web, and since WFS depends on GML, the same arguments apply. Just to add some spice to the party, WFS adds its own proprietary (is it fair to call a standard proprietary?) XML query language for reasons that have never been obvious to me (XQuery anyone?).
So do you see these standards used on the Web? I sure don’t. Instead I see people using RSS and ATOM with GeoRSS, or shoehorning feature information into KML. There is event talk of shoehorning GML into KML.
In my view this is the biggest gap in GIS web standards – something, someday is going to fill it in. If you are a standards wonk, and want to make a difference, I’d say start here.
If it was up to me, such a standard would be designed as an Atom extension that provides a super-simple way of including feature property values. And it would use GeoRSS for geometries.
There is remarkable amount of state involved when looking at a map. The most obvious thing is where you are looking at – but you also have to remember the scale, the layers that are on or off, the projection, the styles in use, etc. This is the world of the Web Map Context (WMC) standard. Since I’ve never implemented WMC, I don’t have an opinion on its technical merits. But going back to our measure of success, is it used on the web? Not as far as I can see.
Dejure versus Defacto?
So standards strike out on map rendering and sharing geographic features, but have succeeded in specifying locations and custom map content. And there is an interesting pattern here – the dejure standards have failed, while the defacto standards have succeeded. Perhaps more about that in another post.
But after the incredible amout of energy and time spent developing these standards, it feels like precious little success.