docs: private boolean addTileCode(InternalTile tile, Envelope tileBounds, Geometry geometry) {
  		if (log.isDebugEnabled()) {
  			log.debug("addTileCode {} {}", tileBounds, geometry);
  		}
  		TileCode tileCode = tile.getCode();
  		int tileX = tileCode.getX();
  		int tileY = tileCode.getY();
  		for (Coordinate coordinate : geometry.getCoordinates()) {
  			if (tileBounds.contains(coordinate)) {
  				// We jump through some hoops to (try to) avoid rounding problems.
  				// This may result in having the feature in two adjacent tiles, but that should still be better than
  				// loosing the feature. Just hope the tolerance is small enough.
  				double xd = ((coordinate.x - tileBounds.getMinX()) / tile.getTileWidth());
  				double yd = ((coordinate.y - tileBounds.getMinY()) / tile.getTileHeight());
  				int x1 = (int) (xd);
  				int x2 = (int) (xd + ROUNDING_TOLERANCE);
  				int y1 = (int) (yd);
  				int y2 = (int) (yd + ROUNDING_TOLERANCE);
  				if (log.isDebugEnabled()) {
  					log.debug("feature in tile " + x1 + "-" + y1 + " or " + x2 + "-" + y2);
  				}
  
  				// check for possible rounding problems, when i,j is "this" tile
  				if ((x1 == tileX || x2 == tileX) && (y1 == tileY || y2 == tileY)) {
  					return false;
  				}
  
  				int level = tile.getCode().getTileLevel();
  				tile.addCode(level, x1, y1);
  				return true;
  			}
  		}
  		// all points of the geometry are outside all tiles. Should be put in tile 0,0
  		if (0 == tileX && 0 == tileY) {
  			// this is tile 0,0, so leave it here
  			return false;
  		} else {
  			int level = tile.getCode().getTileLevel();
  			tile.addCode(level, 0, 0);
  			return true;
  		}
  	}