What is GIS and why is it important for Drupal?
A geographic information system (GIS) is a system designed to capture, store, manipulate, analyze, manage, and present all types of spatial or geographical data. A GIS lets us visualize, question, analyze, and interpret data to understand relationships, patterns, and trends <<read more about GIS from ESRI>>
Drupal has a diverse user group which spans from small businesses and organizations to global organizations. These users use Drupal for news publishing, education, emergency relief, information dissemination, discussion forums, etc. An increasing trend in websites today is providing strong visualization mediums in order to capture the attention of users and present information to users in an easy to understand manner. GIS does this effortlessly as maps present information in ways that are inherent to users. Most of the large organizations that use Drupal also have separate GIS systems which are mostly Desktop based; however current trends show increased adoption of web based GIS systems, this is where the importance of GIS to Drupal or vice versa comes in. In this blog we look at the use of GIS tools in Drupal, the focus is kept on the current tools and future direction of GIS adoption in Drupal. This discussion is under 3 main themes:
location, and Geofield. 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). In the past it was mainly used for storing longitude and latitude information to display points and addresses in a simple map, however the beauty of Drupal and Open source for that matter is its ever evolving nature. Geofield like most of the early mapping modules has evolved to become a much more dynamic and powerful Drupal mapping module. It now has full integration with more current and widely used modules such as OpenLayers and Leaflet; these modules are further elaborated in later paragraphs. A key component that has strengthened the GIS in Drupal has been the GeoPHP library; 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 PostGIS.
OpenLayers module and Leaflet module. These modules have become the most popular Drupal mapping modules for complex display and interactivity. The OpenLayers module brings all the features of the open source JS OpenLayers library into Drupal; it provides an API for building rich web-based geographical applications. The Leaflet module which is quite similar to OpenLayers is also an incorporation of the Leaflet JS library in Drupal; it is the module of choice for mobile friendly interactive maps and despite being lightweight it still provides all the powerful web map features that bigger libraries / applications provide. As was mentioned early there is good compatibility between most of the mapping modules as well as their dependency on other widely used non-mapping Drupal modules. A current approach is to use the Geofield and its related modules for gathering and storing the geographic data, and then the OpenLayers and Leaflet modules are used for presenting the data in interactive mediums.
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.
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.
GIS 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. 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.
In summary, mapping in Drupal consists of modules that address specific GIS areas. Geofield module is the best for gathering and storing data, PostGIS and GeoServer modules provides integration with the respective program for better processing, and OpenLayers and Leaflet modules are the best for data display as well as interactivity. The Cartaro module is a Drupal distribution that attempts to harness the strengths of the best Drupal GIS modules into one web mapping platform.