private void renderGeometry(int zoom, Geometry geom, Map<String, Object> attrs, FeatureCollector.Feature feature) {
    if (geom == null || geom.isEmpty()) {
      // skip this feature
    } else if (geom instanceof Point point) {
      renderPoint(zoom, attrs, feature, point.getCoordinates());
    } else if (geom instanceof MultiPoint points) {
      renderPoint(zoom, attrs, feature, points);
    } else if (geom instanceof Polygon || geom instanceof MultiPolygon || geom instanceof LineString ||
      geom instanceof MultiLineString) {
      renderLineOrPolygon(zoom, attrs, feature, geom);
    } else if (geom instanceof GeometryCollection collection) {
      for (int i = 0; i < collection.getNumGeometries(); i++) {
        renderGeometry(zoom, collection.getGeometryN(i), attrs, feature);
      }
    } else {
      LOGGER.warn("Unrecognized JTS geometry type for {}: {}", feature.getClass().getSimpleName(),
        geom.getGeometryType());
    }
  }
Constructs a new feature render that will send rendered features to {@code consumer}.
planetiler-core/src/main/java/com/onthegomap/planetiler/render/FeatureRenderer.java