The application of Open Source GIS tools in Drupal CMS.

Introduction

Content Management Systems are applications that allows publishing, editing and modifying content, organizing, deleting as well as maintenance from a central interface. A CMS consists of two elements: the content management application (CMA) and the content delivery application (CDA).

Another aspect of CMS is that most of the top and efficient ones are Free and Open Source and these three Free and Open Source CMS. See VEST Directory for CMS that can be used within the agricultural domain.

The need for integrating maps and geo-referenced data has grown in the last decade, therefore, this blog examines the Drupal CMS's responsiveness to this need. [Drupal is not a GIS]. Drupal CMS is a powerful CMS as it offers its module/plugin concept which allows the core of Drupal to be easily extended by a lot of applications, most of these plugins focus on manipulating and displaying content.

Besides plugins, Drupal also integrates with a lot of libraries, technologies (multiple open source spatial databases, servers) and third party services (web services); enabling solutions for simple maps and complex mapping needs.

Mapping in Drupal

The early map plugins on Drupal focused on simple map tasks as providing location in a form of geocoding and address fields, some of these early plugins include: location, Geofield, Get locations, and Geofield location. The Geofield module for instance supported storage of all geographic data such as points, lines and polygons. It provided users with multiple widgets for data input supporting latitude and longitude, bounding box, Well Known Text (WKT).  The presentation below show how one can map in Drupal 7 using OpenLayers

Mapping in Drupal 7 using OpenLayers from Peter Vanhee

A key component that has strengthened the GIS in Drupal has been the GeoPHP; an open source PHP library for geometric operations. Drupal is written in the PHP programming language, hence the creation of a custom GeoPHP module for Drupal enabled all the benefits this library has to offer available to other Drupal mapping modules. This is one of the bases of the current Drupal GIS trends which involve a combination of modules like Geofield, OpenLayers, Leaflet, Views GeoJSON and Geofield PostGIS.

An area which hasn’t been fully explored is modules that allow processing of geographical data mostly on the Server side; however there are some powerful modules like Cartaro and the GeoServer modules that take advantage of the benefits GeoServer and PostGIS provide, enabling better processing of geospatial data. This aspect makes mapping in Drupal look really promising as they provide solutions to some of the challenges faced with processing geospatial data which is better handled on the server-side.

Another important module for mapping in Drupal is the Views GeoJSON module which allows exporting of data from Drupal into GeoJSON, enabling easy integration of geospatial data from Drupal with other external applications. It is also useful for client-side web map processing, allowing processing of lightweight data in client’s browsers rather than on the server for faster rendering of data used in web maps by JS applications like OpenLayers or Leaflet.

Figure 1 provides a graphical view of the mapping modules in Drupal as described in relation to the current approaches.

Figure 1: Mapping in Drupal, main module integration approaches

Mapping modules in Drupal keeps evolving however with the current trends described in relation to the type of modules currently widely used, has enabled mapping in Drupal become much stable and it looks ever promising. Most of the modules are compatible with each other in terms of use in different GIS data handling levels.

In typical open source fashion, there is always collaboration between developers in the community and similar modules end up merging into one, making the modules much powerful and effective.

A future direction with GIS application in Drupal is a powerful distribution like Cartaro which combines the strengths of all the geospatial modules at different levels into one Drupal distribution that can easily run out of the box.

Conclusion

Drupal is a powerful Open Source CMS which has a large community of developers, designers and users. GIS tools (modules) in Drupal continue to increase as more people become aware of the numerous benefits maps and GIS applications provide. There are currently stable modules in Drupal that enable gathering, storage, processing and display of geospatial data; improvements in these modules allows one to take advantage of all the benefits the Drupal CMS provides as well, hence the benefits that a CMS in general provides.

GIS data can be large and require a lot of computer processing, which is a challenging area for using Drupal and a CMS for GIS processing in general. However the integration of Drupal with GeoServer and PostGIS and the respective modules getting better, this situation is improving and the future is bright for a comprehensive Drupal mapping system that combines all the best geospatial modules.

Further Reading

  1. Palazzolo A., Turnbull T (2012). Mapping with Drupal
  2. Drupal.org (July, 2015) Comparison of Mapping Modules
  3. Morrison B (2013). Mapping the Drupal Geospatial Ecosystem

Acknowledgements: I thank Peter Gyan-addo for the background research of this blog.