diff --git a/charts.api.php b/charts.api.php
index 83f52f9..6b410dd 100644
--- a/charts.api.php
+++ b/charts.api.php
@@ -138,7 +138,7 @@ function hook_charts_info() {
     // $chart renderable and printing a chart on the page.
     'render' => '_my_charting_library_render',
     // Specify the chart types your library is capable of providing.
-    'types' => array('area', 'bar', 'column', 'line', 'pie', 'scatter'),
+    'types' => array('area', 'bar', 'column', 'line', 'pie', 'scatter','gauge'),
     // If your callback function is in a separate file, specify it's location.
     'file' => 'includes/my_charting_library.inc',
   );
diff --git a/charts.module b/charts.module
index 23f1938..8b11fad 100644
--- a/charts.module
+++ b/charts.module
@@ -78,61 +78,76 @@ function charts_element_info() {
     '#width' => NULL,
     '#height' => NULL,
 
+    // Options for gauge chart type
+    '#greencolor' => NULL,
+    '#greento' => NULL,
+    '#greenfrom' => NULL,
+    '#yellowcolor' => NULL,
+    '#yellowto' => NULL,
+    '#yellowfrom' => NULL,
+    '#redcolor' => NULL,
+    '#redto' => NULL,
+    '#redfrom' => NULL,
+    '#min' => NULL,
+    '#max' => NULL,
+    '#majorticks' => NULL,
+    '#minorticks' => NULL,
+
     '#attributes' => array(), // Applied to the wrapper, not the chart.
     '#chart_library' => NULL, // If requiring a particular charting module.
     '#raw_options' => array(), // Raw library-specific options passed directly.
-  );
+    );
 
   // Properties for x and y axes.
   $axis_properties = array(
-    '#axis_type' => 'linear', // Options: linear, logarithmic, datetime, labels.
-    '#title' => '',
-    '#title_color' => '#000',
-    '#title_font_weight' => 'normal', // Options: normal, bold
-    '#title_font_style' => 'normal', // Options: normal, italic
-    '#title_font_size' => 12, // CSS value for font size, e.g. 1em or 12px.
-    '#labels' => NULL,
-    '#labels_color' => '#000',
-    '#labels_font_weight' => 'normal', // Options: normal, bold
-    '#labels_font_style' => 'normal', // Options: normal, italic
-    '#labels_font_size' => NULL, // CSS value for font size, e.g. 1em or 12px.
-    '#labels_rotation' => NULL, // Integer rotation value, e.g. 30, -60 or 90.
-    '#grid_line_color' => '#ccc',
-    '#base_line_color' => '#ccc',
-    '#minor_grid_line_color' => '#e0e0e0',
-    '#max' => NULL, // Integer max value on this axis.
-    '#min' => NULL, // Integer minimum value on this axis.
-    '#opposite' => FALSE, // Display axis on opposite normal side.
-  );
+      '#axis_type' => 'linear', // Options: linear, logarithmic, datetime, labels.
+      '#title' => '',
+      '#title_color' => '#000',
+      '#title_font_weight' => 'normal', // Options: normal, bold
+      '#title_font_style' => 'normal', // Options: normal, italic
+      '#title_font_size' => 12, // CSS value for font size, e.g. 1em or 12px.
+      '#labels' => NULL,
+      '#labels_color' => '#000',
+      '#labels_font_weight' => 'normal', // Options: normal, bold
+      '#labels_font_style' => 'normal', // Options: normal, italic
+      '#labels_font_size' => NULL, // CSS value for font size, e.g. 1em or 12px.
+      '#labels_rotation' => NULL, // Integer rotation value, e.g. 30, -60 or 90.
+      '#grid_line_color' => '#ccc',
+      '#base_line_color' => '#ccc',
+      '#minor_grid_line_color' => '#e0e0e0',
+      '#max' => NULL, // Integer max value on this axis.
+      '#min' => NULL, // Integer minimum value on this axis.
+      '#opposite' => FALSE, // Display axis on opposite normal side.
+      );
   $info['chart_xaxis'] = array(
-  ) + $axis_properties;
+      ) + $axis_properties;
   $info['chart_yaxis'] = array(
-  ) + $axis_properties;
+      ) + $axis_properties;
 
   // And then the pieces of charts used within chart types.
   $info['chart_data'] = array(
-    '#title' => NULL,
-    '#labels' => NULL,
-    '#data' => array(),
-    '#color' => NULL,
-    '#show_in_legend' => TRUE,
-    '#show_labels' => FALSE, // Show inline labels next to the data.
-    '#chart_type' => NULL, // If building multicharts. The chart type, e.g. pie.
-    '#line_width' => 1, // Line chart only.
-    '#marker_radius' => 3, // Line chart only. Size in pixels, e.g. 1, 5.
-    '#target_axis' => NULL, // If using multiple axes, key for the matching y axis.
-
-    // Formatting options.
-    '#decimal_count' => NULL, // The number of digits after the decimal separator. e.g. 2
-    '#date_format' => NULL, // A custom date format, e.g. %Y-%m-%d
-    '#prefix' => NULL,
-    '#suffix' => NULL,
-  );
+      '#title' => NULL,
+      '#labels' => NULL,
+      '#data' => array(),
+      '#color' => NULL,
+      '#show_in_legend' => TRUE,
+      '#show_labels' => FALSE, // Show inline labels next to the data.
+      '#chart_type' => NULL, // If building multicharts. The chart type, e.g. pie.
+      '#line_width' => 1, // Line chart only.
+      '#marker_radius' => 3, // Line chart only. Size in pixels, e.g. 1, 5.
+      '#target_axis' => NULL, // If using multiple axes, key for the matching y axis.
+
+      // Formatting options.
+      '#decimal_count' => NULL, // The number of digits after the decimal separator. e.g. 2
+      '#date_format' => NULL, // A custom date format, e.g. %Y-%m-%d
+      '#prefix' => NULL,
+      '#suffix' => NULL,
+      );
   $info['chart_data_item'] = array(
-    '#data' => NULL,
-    '#color' => NULL,
-    '#title' => NULL, // Often used as content of the tooltip.
-  );
+      '#data' => NULL,
+      '#color' => NULL,
+      '#title' => NULL, // Often used as content of the tooltip.
+      );
 
   return $info;
 }
@@ -142,12 +157,12 @@ function charts_element_info() {
  */
 function charts_library() {
   $library['charts.admin'] = array(
-    'title' => t('Charts admin integration'),
-    'version' => '1.0',
-    'js' => array(
-      array('data' => drupal_get_path('module', 'charts') . '/js/charts.admin.js', 'type' => 'file', 'weight' => 10),
-    ),
-  );
+      'title' => t('Charts admin integration'),
+      'version' => '1.0',
+      'js' => array(
+        array('data' => drupal_get_path('module', 'charts') . '/js/charts.admin.js', 'type' => 'file', 'weight' => 10),
+        ),
+      );
 
   return $library;
 }
@@ -157,14 +172,14 @@ function charts_library() {
  */
 function charts_permission() {
   return array(
-    'administer charts' => array(
-      'title' => t('Configure chart settings'),
-    ),
-    'access example charts' => array(
-      'title' => t('Access example charts'),
-      'description' => t('Grants access to the <a href="!url">charts examples</a> page. Use this page for testing chart functionality.', array('!url' => url('charts/examples'))),
-    ),
-  );
+      'administer charts' => array(
+        'title' => t('Configure chart settings'),
+        ),
+      'access example charts' => array(
+        'title' => t('Access example charts'),
+        'description' => t('Grants access to the <a href="!url">charts examples</a> page. Use this page for testing chart functionality.', array('!url' => url('charts/examples'))),
+        ),
+      );
 }
 
 /**
@@ -172,13 +187,13 @@ function charts_permission() {
  */
 function charts_theme() {
   return array(
-    'charts_settings_fields' => array(
-      'render element' => 'element',
-    ),
-    'charts_chart' => array(
-      'render element' => 'element',
-    ),
-  );
+      'charts_settings_fields' => array(
+        'render element' => 'element',
+        ),
+      'charts_chart' => array(
+        'render element' => 'element',
+        ),
+      );
 }
 
 /**
@@ -186,9 +201,9 @@ function charts_theme() {
  */
 function charts_views_api() {
   return array(
-    'api' => 3.0,
-    'path' => drupal_get_path('module', 'charts') . '/views',
-  );
+      'api' => 3.0,
+      'path' => drupal_get_path('module', 'charts') . '/views',
+      );
 }
 
 /**
@@ -302,11 +317,11 @@ function charts_type_info() {
   // Populate defaults for all chart types.
   foreach ($charts_type_info as $chart_type => $chart_type_info) {
     $charts_type_info[$chart_type] += array(
-      'label' => '',
-      'axis' => CHARTS_DUAL_AXIS,
-      'axis_inverted' => FALSE,
-      'stacking' => FALSE,
-    );
+        'label' => '',
+        'axis' => CHARTS_DUAL_AXIS,
+        'axis_inverted' => FALSE,
+        'stacking' => FALSE,
+        );
   }
   drupal_alter('charts_type_info', $charts_type_info);
   return $charts_type_info;
@@ -325,33 +340,37 @@ function chart_get_type($chart_type) {
  */
 function charts_charts_type_info() {
   $chart_types['pie'] = array(
-    'label' => t('Pie'),
-    'axis' => CHARTS_SINGLE_AXIS,
-  );
+      'label' => t('Pie'),
+      'axis' => CHARTS_SINGLE_AXIS,
+      );
+  $chart_types['gauge'] = array(
+      'label' => t('Gauge'),
+      'axis' => CHARTS_SINGLE_AXIS,
+      );
   $chart_types['bar'] = array(
-    'label' => t('Bar'),
-    'axis' => CHARTS_DUAL_AXIS,
-    'axis_inverted' => TRUE, // Meaning x/y axis are flipped.
-    'stacking' => TRUE,
-  );
+      'label' => t('Bar'),
+      'axis' => CHARTS_DUAL_AXIS,
+      'axis_inverted' => TRUE, // Meaning x/y axis are flipped.
+      'stacking' => TRUE,
+      );
   $chart_types['column'] = array(
-    'label' => t('Column'),
-    'axis' => CHARTS_DUAL_AXIS,
-    'stacking' => TRUE,
-  );
+      'label' => t('Column'),
+      'axis' => CHARTS_DUAL_AXIS,
+      'stacking' => TRUE,
+      );
   $chart_types['line'] = array(
-    'label' => t('Line'),
-    'axis' => CHARTS_DUAL_AXIS,
-  );
+      'label' => t('Line'),
+      'axis' => CHARTS_DUAL_AXIS,
+      );
   $chart_types['area'] = array(
-    'label' => t('Area'),
-    'axis' => CHARTS_DUAL_AXIS,
-    'stacking' => TRUE,
-  );
+      'label' => t('Area'),
+      'axis' => CHARTS_DUAL_AXIS,
+      'stacking' => TRUE,
+      );
   $chart_types['scatter'] = array(
-    'label' => t('Scatter'),
-    'axis' => CHARTS_DUAL_AXIS,
-  );
+      'label' => t('Scatter'),
+      'axis' => CHARTS_DUAL_AXIS,
+      );
   return $chart_types;
 }
 
@@ -360,9 +379,9 @@ function charts_charts_type_info() {
  */
 function charts_default_colors() {
   return array(
-    '#2f7ed8', '#0d233a', '#8bbc21','#910000', '#1aadce',
-    '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a',
-  );
+      '#2f7ed8', '#0d233a', '#8bbc21','#910000', '#1aadce',
+      '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a',
+      );
 }
 
 /**
@@ -385,24 +404,24 @@ function charts_trim_array(&$array) {
 function charts_cast_element_integer_values(&$element) {
   // Cast options to integers to avoid redundant library fixing problems.
   $integer_options = array(
-    // Chart options.
-    '#title_font_size',
-    '#font_size',
-    '#legend_title_font_size',
-    '#legend_font_size',
-    '#width',
-    '#height',
-
-    // Axis options.
-    '#title_font_size',
-    '#labels_font_size',
-    '#labels_rotation',
-    '#max',
-    '#min',
-
-    // Data options.
-    '#decimal_count',
-  );
+      // Chart options.
+      '#title_font_size',
+      '#font_size',
+      '#legend_title_font_size',
+      '#legend_font_size',
+      '#width',
+      '#height',
+
+      // Axis options.
+      '#title_font_size',
+      '#labels_font_size',
+      '#labels_rotation',
+      '#max',
+      '#min',
+
+      // Data options.
+      '#decimal_count',
+      );
   foreach ($element as $property_name => $value) {
     if (is_array($element[$property_name])) {
       charts_cast_element_integer_values($element[$property_name]);
diff --git a/modules/charts_google/charts_google.inc b/modules/charts_google/charts_google.inc
index 5359896..cb7bc26 100644
--- a/modules/charts_google/charts_google.inc
+++ b/modules/charts_google/charts_google.inc
@@ -48,6 +48,7 @@ function _charts_google_visualization_type($renderable_type) {
     'line' => 'LineChart',
     'pie' => 'PieChart',
     'scatter' => 'ScatterChart',
+    'gauge' => 'Gauge',
   );
   drupal_alter('charts_google_visualization_types', $types);
   return isset($types[$renderable_type]) ? $types[$renderable_type] : FALSE;
@@ -75,6 +76,21 @@ function _charts_google_populate_chart_options($chart, $chart_definition) {
   $chart_definition['options']['legend']['alignment'] = 'center';
   $chart_definition['options']['interpolateNulls'] = TRUE;
 
+  // Options for gauge chart type
+  $chart_definition['options']['greenColor'] = $chart['#greencolor'] ? $chart['#greencolor'] : NULL;
+  $chart_definition['options']['greenTo'] = $chart['#greento'] ? $chart['#greento'] : NULL;
+  $chart_definition['options']['greenFrom'] = $chart['#greenfrom'] ? $chart['#greenfrom'] : NULL;
+  $chart_definition['options']['yellowColor'] = $chart['#yellowcolor'] ? $chart['#yellowcolor'] : NULL;
+  $chart_definition['options']['yellowTo'] = $chart['#yellowto'] ? $chart['#yellowto'] : NULL;
+  $chart_definition['options']['yellowFrom'] = $chart['#yellowfrom'] ? $chart['#yellowfrom'] : NULL;
+  $chart_definition['options']['redColor'] = $chart['#redcolor'] ? $chart['#redcolor'] : NULL;
+  $chart_definition['options']['redTo'] = $chart['#redto'] ? $chart['#redto'] : NULL;
+  $chart_definition['options']['redFrom'] = $chart['#redfrom'] ? $chart['#redfrom'] : NULL;
+  $chart_definition['options']['min'] = $chart['#min'] ? $chart['#min'] : NULL;
+  $chart_definition['options']['max'] = $chart['#max'] ? $chart['#max'] : NULL;
+  $chart_definition['options']['majorTicks'] = $chart['#majorticks'] ? $chart['#majorticks'] : NULL;
+  $chart_definition['options']['minorTicks'] = $chart['#minorticks'] ? $chart['#minorticks'] : NULL;
+
   // TODO: Legend title (and thus these properties) not supported by Google.
   $chart_definition['options']['legend']['title'] = $chart['#legend_title'];
   $chart_definition['options']['legend']['titleTextStyle']['bold'] = $chart['#legend_title_font_weight'] === 'bold' ? TRUE : FALSE;
diff --git a/modules/charts_google/charts_google.module b/modules/charts_google/charts_google.module
index 8992601..d39904f 100644
--- a/modules/charts_google/charts_google.module
+++ b/modules/charts_google/charts_google.module
@@ -7,7 +7,7 @@ function charts_google_charts_info() {
   $info['google'] = array(
     'label' => t('Google Charts'),
     'render' => '_charts_google_render',
-    'types' => array('area', 'bar', 'column', 'line', 'pie', 'scatter'),
+    'types' => array('area', 'bar', 'column', 'line', 'pie', 'scatter', 'gauge'),
     'file' => 'charts_google.inc',
   );
   return $info;
