Companies that need to provide resources with a geographical location through their websites can improve the experience of their customers by giving additional geographical information related to the place. One of the best ways to provide users with location information about places or other resources is by displaying the location on a map. In Drupal, there are several modules that can be used to display and manage geographical data.
One of the most popular modules in the Drupal community is the Location module, which provides the ability to collect information related to addresses and can be associated not only with nodes but also with users. The module allows setting multiple locations per node or user which can be used to give the users the ability to specify their home and work addresses, for example. Furthermore, the latest version of the Location module, which is currently version 3.1, comes with several features such as Views and CCK modules integration capability, to associate phone and fax numbers to locations, geographical search features, etc. In addition, there is a contributed module named GMap that provides the ability to display maps through the Google Maps API. The GMap module contains a sub-module that integrates with the Location module to provide the capability to choose location from a map or display Locations through Google Maps when viewing a node or a user associated with one or more locations by getting the latitude and longitude values of the location. By using the Views module along with the GMap module, multiple locations can be displayed within a single map. Also, custom markers can be created and displayed on a map based on taxonomy.
There are several other modules that provide features to display and manage locations and other geographical data besides the ones mentioned here. However, the “Location + GMap” and “Geo + Open Layers” are the most used options depending on the case. For addresses and specific point locations, the Location module is the preferred option due to its completeness and relatively simplicity plus the GMap module eases the process of displaying locations on maps. For cases that require more complex geographical data such as polygonal areas the Location module can still be used through a patch that can be found in the Drupal community which is expected to be applied to future releases. Nevertheless, even with the patch, the Location module still does not provide the better storage solution and geographical calculation capabilities and most likely extra development has to be performed if more complex features are needed in the future. In contrast, the Geo module works with the native support of the databases for geographical data which allows managing and displaying more complex geographical data such as windmills, rivers, etc. The drawback of using the Geo module is that it is currently on alpha release and there are not many widgets to handle geographical data at the moment. However, there is ongoing development and continuous improvements to this module, so a beta release is expected soon.
Here is a screenshot of an example preset map whose base layer is retrieved from one of the NASA web services: