“You’re so clever”, that’s what my Mum tells me when I show her what I do (thanks Mum!). To the untrained eye, my team and I built Mango from scratch—but nothing could be further from the truth.
In reality Mango was under construction for years before we even dreamed up the idea, it’s been worked on by thousands of people I’ve never met and will likely never get the chance to thank.
You see, Mango is really just wrapping paper, glue and sticky back plastic. The real magic is performed by the opensource building blocks that do the heavy lifting behind the scenes. All we’ve done is join those blocks together and wrapped them in pretty and accessible packaging.
Today I’m going to give you some insight into those opensource building blocks and the role they play in making Mango possible. To save me picking an order I’m going to go back to front, starting from the low level parts and move forward to the front and the parts you can actually see.
GDAL (Geospatial Data Abstraction Library) is a library for reading and writing raster geospatial data formats. Part of the library is the ogr2ogr tool, which allows us to easily transform vector data from one format to another. It’s this tool that allows us to transfer the data from shapefiles provided by our users into our spatial database.
We also use the tool to clear out data and also make datasets available to users in a range of formats such as .CSV and .KML.
PostGIS is an open source software program that adds support for geographic objects to the PostgreSQL object-relational database. Whenever you see something clever happen on the map it was likely PostGIS that did the calculation behind the scenes.
If you love mapping and would like to get your geek on, I suggest installing PostgreSQL/PostGIS and having a play. There’s an excellent getting started guide on the OpenGeo site.
So now you know that we have a database full of geometry and attributes and how we got it there. The next question is how do we turn all of those 1’s and 0’s into the pretty images you see on the map? The answer is GeoServer.
GeoServer is an open-source server written in Java that allows users to share, process and edit geospatial data. When you make changes to symbology in your map on Mango, behind the scenes we are configuring GeoServer so it knows how to render your map the next time it loads.
The best thing about Leaflet is the ease with which it can be extended and modified. You see, that’s the beauty of opensource—we don’t need to ask a vendor to change something when the needs arises, we can just change it ourselves and help extend the functionality to share with everyone.
Today I’ve really just focused on the opensource tools that we use for the mapping aspects of the product, but we also utilise the following opensource projects extensively: