@Override
 public String toString() {
   return GeoPoints.toString(topLeft) + ".." + GeoPoints.toString(bottomRight);
 }
 private boolean equals(GeoBoundingBox that) {
   return GeoPoints.equals(topLeft, that.topLeft())
       && GeoPoints.equals(bottomRight, that.bottomRight());
 }
 public static GeoBoundingBox readFrom(StreamInput in) throws IOException {
   return new GeoBoundingBox(GeoPoints.readFrom(in), GeoPoints.readFrom(in));
 }
 public void writeTo(StreamOutput out) throws IOException {
   GeoPoints.writeTo(topLeft, out);
   GeoPoints.writeTo(bottomRight, out);
 }
 public double size(DistanceUnit unit) {
   return GeoPoints.distance(topLeft, bottomRight, unit);
 }