During the weekend of 26th and 27th October all Ymbra's staff headed to Drupal Camp Spain 2013 that took place in Cáceres. It was a great event (well organized, with many interesting sessions and a good opportunity to meet old and new drupalistas) in which most of the team made a presentation. Mine was about maps and drupal, and that's what I want to talk about in this blog post.
We are used to see maps on websites. In fact it is really common to see websites or apps in which mapping plays a key role on them; Foursquare, Geocaching, OpenSreetmap are well-known examples. Drupal is no exeption to this and it is possible to create maps like http://theintertwine.org/explore, geluidvannederland.nl or http://xi.bienalarquitectura.es/es/proyectos to name only a few. However it is also true that achieving that is not a trivial task and whoever has ever tried to create a map in drupal may have get lost in the vast number of modules that are available (currently there are more than 90 modules covering any georreference aspect, which to make things worse are often excluding), complex configurations and concepts such as projections, layers, geocoding... Things can be even worse if you were used to use drupal 6 for this purpose since the bad news is that almost everything has changed! So, my session was about that: trying to bring some light on mapping in drupal 7.
The session, which you can find enclosed in this entry, starts presenting the basic concepts that conform a map (not necessarilly created with drupal) in order to make it easier to understand the next part. The idea was to classify and comment some of the most used and known modules available that allows us to understand which modules can be used in order to achieve complete solutions to cover our needs, which ones can be combined or if, on the contrary, they are exclusive. After having introduced the key concepts, the session continues with a practical demonstration and comparison between three different solutions: OpenLayers + Geofield; Leaflet + Geofield and Getlocations. To make this demo easier to follow and let the viewers "play" I created this repository on github which contains all the required modules, content types, views and libraries and dependencies, and everything has been grouped and pre-configured in the following four features:
- mapping demo: controls all the dependencies of shared modules (libraries, views...). It is required by the rest of features.
- leaflet_demo_dc_spain: contains all content types, dependencies, views and configurations required to be used by leaflet.
- openlayers_demo_dc_spain: contains all content types, dependencies, views, configurations and maps to be used by OpenLayers.
- getlocations_demo_dc_spain: contains all content types, dependencies, views, configurations and maps to be used by Getlocations.
The presentation finishes pointing out pros and cons of each solution and with a reference section with further information. I hope you can find this presentation and repository useful and interesting.