Legato is a relatively new open source project. See https://www.legato.net/ .
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 http://demos.legato.net/core/ . 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!
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
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):