Index: 000-zoom-point.patch
===================================================================
--- 000-zoom-point.patch	(revision 0)
+++ 000-zoom-point.patch	(revision 410)
@@ -0,0 +1,22 @@
+Index: mapstraction.module
+===================================================================
+--- mapstraction.module	(revision 408)
++++ mapstraction.module	(working copy)
+@@ -151,7 +151,16 @@
+       $controls[$control] = TRUE;
+     }
+   }
+-  
++  // Center and zoom properly for a single point.
++  // @TODO proper patch and settings.
++  if (count($rows) == 1) {
++    $point = $view->style_plugin->map_points($rows);
++    $controls['zoom'] = 12;
++    $options['initial_point']['zoom'] = 12;
++    $options['initial_point']['auto'] = 0;
++    $options['initial_point']['latitude'] = $point[0]['lat'];
++    $options['initial_point']['longitude'] = $point[0]['lon'];
++  }
+   $map = array(
+     'viewName' => $view->name,
+     'currentDisplay' => $view->current_display,
Index: mapstraction.module
===================================================================
--- mapstraction.module	(revision 400)
+++ mapstraction.module	(working copy)
@@ -151,7 +151,14 @@
       $controls[$control] = TRUE;
     }
   }
-  
+  // Center and zoom properly for a single point.
+  if (count($rows) == 1) {
+    $point = $view->style_plugin->map_points($rows);
+    $options['initial_point']['zoom'] = $options['initial_point']['zoom_single'];
+    $options['initial_point']['auto'] = 0;
+    $options['initial_point']['latitude'] = isset($point[0]['lat']) ? $point[0]['lat'] : NULL;
+    $options['initial_point']['longitude'] = isset($point[0]['lon']) ? $point[0]['lon'] : NULL;
+  }
   $map = array(
     'viewName' => $view->name,
     'currentDisplay' => $view->current_display,
Index: mapstraction_style_map.inc
===================================================================
--- mapstraction_style_map.inc	(revision 410)
+++ mapstraction_style_map.inc	(working copy)
@@ -16,6 +16,7 @@
       'latitude' => array('default' => ''),
       'longitude' => array('default' => ''),
       'zoom' => array('default' => 10),
+      'zoom_single' => array('default' => 12),
     );
     $options['controls'] = array('default' => array());
     $options['behaviours'] = array('default' => array());
@@ -67,6 +68,19 @@
       '#default_value' => $this->options['initial_point']['auto'],
     );
 
+    $form['initial_point']['zoom_single'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Zoom level, single result'),
+      '#size' => 2,
+      '#maxlength' => 2,
+      '#process' => array('views_process_dependency'),
+      '#default_value' => $this->options['initial_point']['zoom_single'],
+      '#dependency' => array(
+        'edit-style-options-initial-point-auto' => array(1)
+      ),
+      '#description' => t('Zoom level if only one record returned'),
+    );
+
     $form['initial_point']['latitude'] = array(
       '#type' => 'textfield',
       '#title' => t('Latitude'),
@@ -93,7 +107,7 @@
 
     $form['initial_point']['zoom'] = array(
       '#type' => 'textfield',
-      '#title' => t('Zoom level'),
+      '#title' => t('Zoom level, multipoint'),
       '#size' => 2,
       '#maxlength' => 2,
       '#process' => array('views_process_dependency'),
@@ -101,6 +115,7 @@
         'edit-style-options-initial-point-auto' => array(0)
       ),
       '#default_value' => $this->options['initial_point']['zoom'],
+      '#description' => t('Zoom level if multiple records are returned'),
     );
 
     $form['controls'] = array(
