GeoArea extends GeoObject { @Nonnull @Override public abstract GeoArea translate(@Nonnull final GeoVector vector);  @Nonnull @Override GeoPoint getOrigin(); @Override @Nonnull GeoPoint getCenter(); @Nonnull static GeoArea fromAreas(@Nonnull final Collection<? extends GeoArea> areas); @Nonnull final GeoArea add(@Nonnull final GeoArea op); abstract boolean overlaps(@Nonnull final GeoArea area); abstract boolean contains(@Nonnull final GeoArea area); abstract boolean contains(@Nonnull final GeoPoint point); @Nonnull abstract GeoRectangle boundingBox(); @Nonnull abstract Collection<GeoRectangle> pixelate(); @Nonnull @Override abstract GeoArea translate(@Nonnull final GeoVector vector); @Override @Nonnull abstract GeoArea moveTo(final GeoPoint origin); abstract boolean isCompound();  }
@Test public void testTranslateInMeters() { LOG.info("testTranslateInMeters"); final double meters = 20.0; final double lat = 10.0; final GeoRectangle r1 = new GeoRectangle(new GeoPoint(lat, 10.0), new GeoPoint(12.0, 112.0)); final double northing = Geo.metersToDegreesLat(meters); final double easting = Geo.metersToDegreesLonAtLat(meters, lat); Assert.assertEquals(r1.translate(new GeoVector(northing, easting)), r1.translate(20, 20)); }