Index: src/org/openstreetmap/josm/data/osm/BBox.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/BBox.java	(revision 15875)
+++ src/org/openstreetmap/josm/data/osm/BBox.java	(working copy)
@@ -178,6 +178,19 @@
     }
 
     /**
+     * Extends this bbox to include the bbox of the primitive extended by extraSpace.
+     * @param latLon a LatLon
+     * @param extraSpace the value to extend the primitives bbox. Unit is in LatLon degrees.
+     * @since xxx
+     */
+    public void addLatLon(LatLon latLon, double extraSpace) {
+        Objects.requireNonNull(latLon, "LatLon cannot be null");
+        add(latLon);
+        add(latLon.getX() - extraSpace, latLon.getY() - extraSpace);
+        add(latLon.getX() + extraSpace, latLon.getY() + extraSpace);
+    }
+
+    /**
      * Gets the height of the bbox.
      * @return The difference between ymax and ymin. 0 for invalid bboxes.
      */
Index: test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java	(revision 15875)
+++ test/unit/org/openstreetmap/josm/data/osm/BBoxTest.java	(working copy)
@@ -126,6 +126,18 @@
     }
 
     /**
+     * Unit test of {@link BBox#addLatLon} method.
+     */
+    @Test
+    public void testAddLatLonBuffer() {
+        BBox b = new BBox();
+        b.addLatLon(LatLon.NORTH_POLE, 0.5);
+        assertEquals(LatLon.NORTH_POLE, b.getCenter());
+        assertEquals(new LatLon(90.5, -0.5), b.getTopLeft());
+        assertEquals(new LatLon(89.5, +0.5), b.getBottomRight());
+    }
+
+    /**
      * Unit test of {@link BBox#add(double, double)} method.
      */
     @Test
