docs: protected Rectangle2d calcVisibleBounds() {
  		final Rectangle2d r = new Rectangle2d();
  		boolean first = true;
  		Rectangle2d subBounds;
  		for (final MapLayer sublayer : this.subLayers) {
  			if (sublayer.isVisible()) {
  				if (sublayer instanceof GISLayerContainer<?>)  {
  					subBounds = ((GISLayerContainer<?>) sublayer).getVisibleBoundingBox();
  				} else {
  					subBounds = sublayer.getBoundingBox();
  				}
  				if (subBounds != null && !subBounds.isEmpty()) {
  					if (first) {
  						first = false;
  						r.set(subBounds);
  					} else {
  						r.setUnion(subBounds);
  					}
  				}
  			}
  		}
  		return first ? null : r;
  	}