Generic Clients for GeoServer

Third post this year. Charming :-)

I’ll start with a little gossip.

One member of our team (and probably the most important) left the current company that we were collaborating with and the rest of us are more or less still debating whether we should follow his lead or not. Time will sort things out I guess.

In the mean time, I decided to write a small gis app, that functions as a generic interface for Published Geoserver Layers (or any other ogc compatible GIS server).

The need arose after writing several demo apps for various projects…and since as they say “a good programmer is a lazy programmer”. Which in my case translates to

“I hate to repeat, over and over and over my work with minor configuration changes”.

I decided to write something like this and share it with the world.


This project was based on ExtJs 4.2.1, GeoExt2 and OpenLayers 2.13.1. A pure Javascript solution (except from a small script to proxy wfs requests that was written (not by me) in python). But as the time flew by, I decided, to move the app a step further. So I designed a basic backend that will control a few things like

  • Which Layers will be displayed (per user session)
  • Which Tools will be displayed (per user session)

For that Purpose I introduced PostgreSQL for the database layer and Java Spring MVC for the backend layer. For the time I used plain SQL Queries for crud operations, but I am thinking onto moving to Hibernate in the near future.

Finally This is how it looks so far

ExtJs, GeoExt2, Openlayers 2.x implementation

The project is already published and shared in github

Now, while I was working in this project, I was thinking why not trying something similar with OpenLayers 3. For the record this is my first time using OpenLayers 3. Openlayers 3 are based on Twitter Bootstrap 3 So I used myself a Bootstrap based interface.

…and made another github repository (should be obvious that I love github <3)

This app does nothing more than to create a checbox list from the Services published in a GeoServer instance and switch them on and off. (I didn’t even bother to delete several interfaced items for the theme I copied

Obviously, yet again, order to do such a thing I still need a proxy server to bypass CORS. This time I decided to solve the problem myself, so I wrote a couple of lines in Node.js and got my job done (there are obviously some depedencies like express and request).

I don’t know if I am going to maintain this project though since after just a couple of hours I reached the conclusion that for the time being “I don’t quite like Openlayers 3.x as much as Openlayers 2.x”.

This is how it looks so far though.
ol3, bootstrap implementation

Enjoy and feel free to contribute if you are interested.

:-)