? 429654_array_and_formatters_some_views.patch
? 444242_field_array.patch
? geo_wkb_get_array.patch
Index: includes/geo.formatters.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/geo/includes/geo.formatters.inc,v
retrieving revision 1.4
diff -u -p -b -r1.4 geo.formatters.inc
--- includes/geo.formatters.inc	19 May 2009 18:29:12 -0000	1.4
+++ includes/geo.formatters.inc	26 May 2009 00:16:58 -0000
@@ -8,12 +8,16 @@ function theme_geo_formatter_default($el
 }
 
 function theme_geo_formatter_lat($element) {
-  if (isset($element['#item']['lat'])) return $element['#item']['lat'];
+  $item = $element['#item'];
+  $data = geo_wkb_get_data($item['wkb'], 'array');
+  return $data['y'];
   // TODO polygons, lines, etc won't have lat/lon but they'll have a centroid.
 }
 
 function theme_geo_formatter_lon($element) {
-  if (isset($element['#item']['lon'])) return $element['#item']['lon'];
+  $item = $element['#item'];
+  $data = geo_wkb_get_data($item['wkb'], 'array');
+  return $data['x'];
   // TODO polygons, lines, etc won't have lat/lon but they'll have a centroid.
 }
 
Index: includes/geo.wkb.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/geo/includes/geo.wkb.inc,v
retrieving revision 1.7
diff -u -p -b -r1.7 geo.wkb.inc
--- includes/geo.wkb.inc	19 May 2009 18:29:12 -0000	1.7
+++ includes/geo.wkb.inc	26 May 2009 00:16:58 -0000
@@ -113,8 +113,14 @@ function geo_wkb_get_text($data, $items 
 /**
  * Array, in case that's all you wanted.
  */
-function geo_wkb_get_array($data) {
-  return $data;
+function geo_wkb_get_array($data, $items = NULL) {
+  // line and polygon data
+  if (isset($data['value'])) {
+    if (!isset($items)) { $items = array(); }
+    return array_merge($items, $data['value']);
+  }
+  // point data
+  return array(array($data['x'], $data['y']));
 }
 
 /**
Index: modules/geo_field/geo_field.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/geo/modules/geo_field/geo_field.module,v
retrieving revision 1.15
diff -u -p -b -r1.15 geo_field.module
--- modules/geo_field/geo_field.module	3 Mar 2009 02:16:28 -0000	1.15
+++ modules/geo_field/geo_field.module	26 May 2009 00:16:59 -0000
@@ -161,6 +161,7 @@ function geo_field($op, &$node, $field, 
         FROM {". _geo_field_tablename($field) ."} WHERE vid = %d", $node->vid);
       while ($row = db_fetch_array($res)) { 
         foreach ($row as $k => $v) {
+          $k = str_replace($field['field_name'] .'_', '', $k);
           if ($k != 'delta') $ret[$row['delta']][$k] = $v;
         }
       }
Index: modules/geo_field/includes/views/views_handler_field_geo_field.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/geo/modules/geo_field/includes/views/views_handler_field_geo_field.inc,v
retrieving revision 1.1
diff -u -p -b -r1.1 views_handler_field_geo_field.inc
--- modules/geo_field/includes/views/views_handler_field_geo_field.inc	3 Mar 2009 02:16:30 -0000	1.1
+++ modules/geo_field/includes/views/views_handler_field_geo_field.inc	26 May 2009 00:16:59 -0000
@@ -13,11 +13,11 @@ class views_handler_field_geo_field exte
     $this->query->add_field(NULL, geo('field_select', $table .'.'. $geo_field));
   }
 
-  function not_render($values) {
+  function render($values) {
+
     $field = $this->content_field;
     $options = $this->options;
     $db_info = content_database_info($field);
-drupal_set_message(print_r($values, 1)); return;
 
     // $values will be used as a fake $node object;
     // we provide a build_mode for rendering.
@@ -26,9 +26,10 @@ drupal_set_message(print_r($values, 1));
     $values->build_mode = 'views';
 
     $item = array();
+    $geo_table = $options['table'] . '_' . $field['field_name'];
 
-    $item['wkb'] = $values->{$geo_table.'_wkb'};
-    $item['bbox'] = $values->{$geo_table.'_bbox'};
+    $item['wkb'] = $values->{$geo_table . '_geo'};
+    $item['bbox'] = $values->{$geo_table . '_bbox'};
 
     foreach ($this->content_field['geo_data_value'] as $column) {
       $value = $values->{$geo_table.'_'. $column};
