diff -bcr -p1 a/leaflet.formatters.inc b/leaflet.formatters.inc
*** a/leaflet.formatters.inc	2012-07-18 15:09:34.000000000 +0200
--- b/leaflet.formatters.inc	2012-08-03 14:24:45.072404500 +0200
*************** function leaflet_field_formatter_view($e
*** 194,195 ****
--- 194,249 ----
          }
+ 		
+         // If there's only a single feature and geocoder was used, then attempt
+         // to set the zoom level according to what was geocoded.
+         if (count($items) == 1 && isset($instance['widget']) && $instance['widget']['type'] == 'geocoder') {
+           $zoom = NULL;
+ 
+           // The field that was geocoded.
+           $geocoder_field = empty($instance['widget']['settings']['geocoder_field']) ? '' : $instance['widget']['settings']['geocoder_field'];
+ 
+           if ($geocoder_field) {
+             // The field values that were geocoded.
+             $geocoder_values = empty($entity->{$geocoder_field}[LANGUAGE_NONE]) ? array() : $entity->{$geocoder_field}[LANGUAGE_NONE];
+ 
+             if ($geocoder_values) {
+               $geocoder_field_info = field_info_field($geocoder_field);
+               $geocoder_value = current($geocoder_values);
+ 
+               if ($geocoder_field_info['type'] == 'addressfield') {
+                 // Premise (apartment/suite number)
+                 if ($geocoder_value['premise']) {
+                   $zoom = 0.9;
+                 }
+                 // Thoroughfare (street address)
+                 elseif ($geocoder_value['thoroughfare']) {
+                   $zoom = 0.8;
+                 }
+                 // Postal code
+                 elseif ($geocoder_value['postal_code']) {
+                   $zoom = 0.7;
+                 }
+                 // Locality (city)
+                 elseif ($geocoder_value['locality']) {
+                   $zoom = 0.6;
+                 }
+                 // Sub administrative area
+                 elseif ($geocoder_value['sub_administrative_area']) {
+                   $zoom = 0.5;
+                 }
+                 // Administrative area (state or province)
+                 elseif ($geocoder_value['administrative_area']) {
+                   $zoom = 0.4;
+                 }
+                 // Country
+                 elseif ($geocoder_value['country']) {
+                   $zoom = 0.2;
+                 }
+               }
+             }
+           }
+ 
+           if ($zoom) {
+             $map['settings']['zoom'] = $map['settings']['maxZoom'] = ceil($zoom * 18);
+           }
+         }
  
