Fossgis: Legato, lightweight web mapping client - Markus Gebhard

Tags: fossgis, geo

Legato is a relatively new open source project. See .

Openlayers is the most popular javascript web mapping library. Openlayers is the basis for Legato. Openlayers does have problems, though:

  • You have to program javascript. When you just want to add a simple map to a webpage, this can be a bit of a problem.

  • Data is mixed with the code. URLs of WMS services are right in there mixed in with the javascript code.

  • The programming style is imperative.

Openlayers itself says that it is not an out-of-the-box solution, but that it is a library for making those solutions. That is the point at which legato places itself.

The core of legato is the replacement of the normal openlayers-configuring javascript code with a config.xml file with the configuration. A declarative style. You just say what you want and legato makes it so. You should not have to remember the order in which to do things like you have to with openlayers’ own imperative style.

The config.xml configures the web mapping client. There is also a viewContext.xml which configures the content of the map. This uses an OGC standard (WMC) to do it. You can do everything just with the config.xml, the viewContext.xml is an extra if you want it.

The advantage of this system is a clear separation of concerns, just like every computer professional wants :-)

Some ground rules they have for legato:

  • Client-side only. Javascript in the browser. No server side component.

  • High quality. They even have their own javascript test framework. The code coverage is high.

  • It does not replace openlayers. It is an alternative kind of configuration mechanism. If there are openlayers updates, they try to integrate it quickly.

  • The internal structure is component-based. This makes it more robust and also future-safe. (Also: “dependency injection” and “inversion of control”). It also means you can extend it with extra components. And openlayers controls, for instance, are available as components. Plugins can be configured… via the config.xml of course!

For a demo, see . Feedback welcome! They (disy) are using legato themselves in their commercial projects. Improvements made inside those projects are fed back into legato proper. Community contributions are welcome!

In the summer, this is probably a midget-invested swamp logo

About me

My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.

Weblog feeds

Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):