Index: includes/geocode.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/geocode/includes/geocode.inc,v
retrieving revision 1.2
diff -u -p -r1.2 geocode.inc
--- includes/geocode.inc	2 Mar 2009 18:14:07 -0000	1.2
+++ includes/geocode.inc	2 Mar 2010 23:14:14 -0000
@@ -66,6 +66,7 @@ class geocode {
 }
 
 class geocode_google extends geocode {
+  static $results;
 
   function set_result($result) {
     $this->result = $result;
@@ -91,6 +92,12 @@ class geocode_google extends geocode {
   }
 
   function geocode($input, $options) {
+    // Cache location data to avoid multiple API calls to the same search
+    $key = md5(serialize(array($input, $options)));
+    if (isset($this->results[$key])) {
+      $this->set_result($this->results[$key]);
+    }
+
     if (is_array($input)) $input = join(',', $input);
     $url = "http://maps.google.com/maps/geo?";
     $url .= 'q='. urlencode($input);
@@ -100,6 +107,7 @@ class geocode_google extends geocode {
 
     if ($result->Status->code == '200') {
       $this->set_result($result->Placemark[0]);
+      $this->results[$key] = $result->Placemark[0];
       return TRUE;
     }
 
