diff --git a/modules/geofield_map/geofield_map.module b/modules/geofield_map/geofield_map.module
index 50a0131..6185351 100644
--- a/modules/geofield_map/geofield_map.module
+++ b/modules/geofield_map/geofield_map.module
@@ -38,6 +38,7 @@ function geofield_map_field_formatter_info() {
         'geofield_map_scrollwheel' => 0,
         'geofield_map_draggable' => 0,
         'geofield_map_streetview_show' => 0,
+        'geofield_map_directions_show' => 0,
       ),
     ),
   );
@@ -65,6 +66,13 @@ function geofield_map_field_formatter_view($entity_type, $entity, $field, $insta
       $datum->properties = array(
         'description' => entity_label($entity_type, $entity),
       );
+      if ($map_settings['directions_show'] && is_array($geometry->coords)) {
+        $datum->properties['description'] .= '<br />' . l(
+          t('Directions'),
+          'http://maps.google.com/maps?saddr=&daddr=' . $geometry->coords[1] . ',' . $geometry->coords[0],
+           array('attributes' => array('target' => '_blank'))
+          );
+      }
       $data[] = $datum;
     }
   }
@@ -160,6 +168,9 @@ function geofield_map_field_formatter_settings_summary($field, $instance, $view_
   if ($settings['geofield_map_streetview_show']) {
     $summary[] = t('Show streetview button: @yn', array('@yn' => ($settings['geofield_map_streetview_show'] ? 'Yes' : 'No')));
   }
+  if ($settings['geofield_map_directions_show']) {
+    $summary[] = t('Show directions button: @yn', array('@yn' => ($settings['geofield_map_directions_show'] ? 'Yes' : 'No')));
+  }
 
   return implode('<br />', $summary);
 
@@ -314,6 +325,12 @@ function geofield_map_settings_form($settings, $element = array()) {
     '#default_value' =>  $settings['geofield_map_streetview_show'],
     '#return_value' => 1,
   );
+  $element['geofield_map_directions_show'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show a Directions link'),
+    '#default_value' =>  $settings['geofield_map_directions_show'],
+    '#return_value' => 1,
+  );
 
   return $element;
 
@@ -337,6 +354,7 @@ function geofield_map_settings_do($settings) {
     'scrollwheel' => $settings['geofield_map_scrollwheel'],
     'draggable' => $settings['geofield_map_draggable'],
     'streetview_show' => $settings['geofield_map_streetview_show'],
+    'directions_show' => $settings['geofield_map_directions_show'],
   );
   return $map_settings;
 
diff --git a/modules/geofield_map/includes/geofield_map_plugin_style_map.inc b/modules/geofield_map/includes/geofield_map_plugin_style_map.inc
index 656de1e..b62b948 100644
--- a/modules/geofield_map/includes/geofield_map_plugin_style_map.inc
+++ b/modules/geofield_map/includes/geofield_map_plugin_style_map.inc
@@ -37,6 +37,7 @@ class geofield_map_plugin_style_map extends views_plugin_style {
     $options['geofield_map_scrollwheel'] = array('default' => 0);
     $options['geofield_map_draggable'] = array('default' => 0);
     $options['geofield_map_streetview_show'] = array('default' => 0);
+    $options['geofield_map_directions_show'] = array('default' => 0);
     $options['icon'] = array('default' => '');
     return $options;
   }
