Saturday, April 26, 2014

Top 5 Open Source Software for GeoSpatial Applications

GeoSpatial map based applications continue to proliferate in web and mobile applications. As of last year GeoSpatial market grew to 270 Billion Dollars. This is mostly due to the explosion of location-aware mobile devices, Google maps and social apps. 

Most web or mobile applications that deal with GeoSpatial data could improve their appeal and usability by representing them in maps. For instance, it is difficult to imagine buying a home these days without using Trulia, Redfin or Zillow. All of these apps provide sophisticated representations of properties on maps with custom base maps markers, neighborhood features, cluster of homes, markers and photos associated.


Fortunately most of such applications can leverage Open Source for GeoSpatial needs. I am listing the 5 important technologies that you must know.


1) Programming language - okay, this is obvious. You can pick pretty much any language you are comfortable with. Java, C++, JavaScript, .NET whatever! The most popular language for GIS applications happens to be Python. You will find most mapping libraries written for Python are up to date and enjoy a wide support base of python developers. So I would recommend going with the herd and go with Python. Next best is Java.

My Pick: Python


2) Database - again, most databases support spatial queries. The easiest way to think of Spatial queries is "point in polygon" where you want to know if a location is within a region or bounding box. MySQL, Oracle, SQL Server all have Spatial features built in or available with 3rd party. PostgreSQL along with PostGIS spatial extension is by far the most popular and robust database engine.
My Pick: PostGIS


3) Image Processing - Assuming you need to create your own map layers and overlays, you need a robust Image Processing and Layer creation tool. Layers are either Raster or Vector images. GDAL and OGR are by far the most popular.
My Pick: GDAL


4) Application Server - If you need to render tiles or overlays on base-maps, you need a Map Server. Just like we have Tomcat, IIS or WebSphere for hosting server side code, you can use MapServer or GeoServer to host your maps. MapServer is the most widely used but I found it hard to use.
My Pick: GeoServer

4) Web Front End – Most GeoSpatial apps that are created for Web and mobile devices use JavaScript for rendering Maps, markers and overlays. OpenLayers and Leaflet are 2 popular JavaScript libraries out there. OpenLayers is full featured and Leaflet is simple and more mobile friendly. Depending on your needs you can use either one.
My Pick: Leaflet (for mobile apps)


As you can see, its pretty easy to build a full stack Geo Spatial Application using Open Source platforms. The above technology stack can be easily adopted by your teams, scale well for high transaction applications and are well supported by the developer community.


GeoSpatial Application - Open Source Technology Stack

Cheers,


Ramesh Elaiyavalli

Disqus for Ramesh Elaiyavalli