code: private boolean drawFeature(int zoom, BoundingBox boundingBox,
  			BoundingBox expandedBoundingBox, ProjectionTransform transform,
  			FeatureTileGraphics graphics, FeatureRow row) {
  
  		boolean drawn = false;
  
  		try {
  			GeoPackageGeometryData geomData = row.getGeometry();
  			if (geomData != null) {
  				Geometry geometry = geomData.getGeometry();
  				if (geometry != null) {
  
  					GeometryEnvelope envelope = geomData.getOrBuildEnvelope();
  					BoundingBox geometryBoundingBox = new BoundingBox(envelope);
  					BoundingBox transformedBoundingBox = geometryBoundingBox
  							.transform(transform);
  
  					if (expandedBoundingBox.intersects(transformedBoundingBox,
  							true)) {
  
  						double simplifyTolerance = TileBoundingBoxUtils
  								.toleranceDistance(zoom, tileWidth, tileHeight);
  						drawn = drawGeometry(simplifyTolerance, boundingBox,
  								transform, graphics, row, geometry);
  
  					}
  				}
  			}
  		} catch (Exception e) {
  			log.log(Level.SEVERE, "Failed to draw feature in tile. Table: "
  					+ featureDao.getTableName(), e);
  		}
  
  		return drawn;
  	}
docs: Draw the feature
  
  @param zoom
  zoom level
  @param boundingBox
  bounding box
  @param expandedBoundingBox
  expanded bounding box
  @param transform
  projection transform
  @param graphics
  graphics to draw on
  @param row
  feature row
  @return true if at least one feature was drawn