Class MbTilesFeatureLayer.Builder

java.lang.Object
com.luciad.layers.mbtiles.MbTilesFeatureLayer.Builder
All Implemented Interfaces:
AutoCloseable
Enclosing class:
MbTilesFeatureLayer

public static final class MbTilesFeatureLayer.Builder extends Object implements AutoCloseable
Since:
2024.0
  • Constructor Details

  • Method Details

    • finalize

      protected void finalize()
      Overrides:
      finalize in class Object
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • build

      @NotNull public MbTilesFeatureLayer build() throws IllegalStateException, IOException
      Returns a new layer, based on the properties set on this builder.
      Returns:
      a new layer, based on the properties set on this builder.
      Throws:
      IllegalStateException - If not all mandatory parameters are set.
      IOException - If decoding the style fails.
    • title

      @NotNull public MbTilesFeatureLayer.Builder title(@NotNull String title)
      Sets the title to use for the layer.

      If not set, the title from the ModelMetadata is used.

      Parameters:
      title - the title for the layer.
      Returns:
      this builder.
    • visible

      @NotNull public MbTilesFeatureLayer.Builder visible(boolean visible)
      Sets whether the layer should be visible initially.

      Default is true.

      Parameters:
      visible - the visibility.
      Returns:
      this builder.
    • model

      @NotNull public MbTilesFeatureLayer.Builder model(@NotNull IFeatureTileModel model) throws NullPointerException
      Sets the feature tile model of the layer.

      Calling this function is mandatory.

      Parameters:
      model - the feature tile model of the layer. Cannot be null.
      Returns:
      this builder.
      Throws:
      NullPointerException - when the given model is null.
    • style

      @NotNull public MbTilesFeatureLayer.Builder style(@NotNull String path)
      Sets the style of the layer.

      If not set, a default style is used instead.

      The currently supported format is the Mapbox style format (see the Mapbox style specification). Only the sections that are relevant for styling MBTiles are supported, namely:

      • Layers
      • Types
      • Expressions
      • Sprite

      When the Mapbox style contains a background layer style, it is applied on the extent of the feature tile data set. Use of interpolation based on zoom level is not supported for the background. The background at zoom level 0 is used.

      Note that not all types, expressions and style properties defined by the Mapbox style format are supported. When an unsupported option is used in the style, that option is ignored and if appropriate, a fallback value is used instead.

      The following is currently supported:

      Types

      • array<number>
      • array<string>
      • boolean
      • color: strings of the following format are supported: "#RRGGBB", "#RGB", "#RRGGBBAA", "#RGBA", "rgb(r, g, b)", "rgba(r, g, b, a)", "hsl(h, s%, l%)", "hsla(h, s%, l%, a)")
      • formatted: format expressions are converted to strings and their formatting options are stripped and ignored
      • number
      • string

      Expressions

      • Types: array (lengths are not asserted), boolean, format (converted to string and the formatting options are stripped and ignored), literal, number, string, to-boolean, to-color (if a string or array<number> cannot be converted, transparent black is returned), to-number (if a string cannot be converted, 0 is returned), to-string, typeof
      • Feature data: geometry-type, id
      • Lookup: at (if index invalid, 0/"" is returned for array<number>/array<string> respectively), get (only for feature properties, not objects), has (only for feature properties, not objects), in, index-of, length, slice
      • Ramps, scales, curves: interpolate (interpolate-hcl and interpolate-lab interpolate in RGB colorspace as well), step
      • Decision: !, !=, <, <=, ==, >, >=, all, any, case, coalesce, match
      • String: concat, downcase, is-supported-script (always returns true), resolved-locale (always returns "en"), upcase
      • Color: hsl, hsla, rgb, rgba, to-rgba
      • Math: -, *, /, %, ^, +, abs, acos, asin, atan, ceil, cos, e, floor, ln, ln2, log10, log2, max, min, pi, random, round, sin, sqrt, tan
      • Camera: zoom
      • Legacy: stops, property, base, type, default, existential filters, comparison filters, set membership filters, combining filters

      Layers

      • All layers:
        • id
        • type
        • filter
        • layout
        • maxzoom
        • minzoom
        • paint
        • source-layer
      • Background layers:
        • background-color
        • background-opacity
        • background-pattern
        • visibility
      • Fill layers:
        • fill-color
        • fill-opacity
        • fill-outline-color
        • fill-pattern
        • fill-translate
        • visibility
      • Line layers:
        • line-color
        • line-dasharray
        • line-offset
        • line-opacity
        • line-pattern
        • visibility
      • Symbol layers:
        • icon-allow-overlap: also allows other symbols to be drawn on top (i.e. the behavior of icon-ignore-placement)
        • icon-anchor
        • icon-color
        • icon-image
        • icon-keep-upright
        • icon-offset
        • icon-opacity
        • icon-optional
        • icon-padding
        • icon-rotate
        • icon-rotation-alignment
        • icon-size
        • icon-text-fit
        • icon-text-fit-padding
        • icon-translate
        • symbol-placement
        • text-allow-overlap: also allows other symbols to be drawn on top (i.e. the behavior of text-ignore-placement)
        • text-anchor
        • text-color
        • text-field
        • text-font: defaults to Noto
        • text-halo-color
        • text-halo-width
        • text-justify: "auto" in conjunction with a variable anchor will result in centered text
        • text-keep-upright
        • text-line-height
        • text-offset
        • text-opacity
        • text-optional
        • text-padding
        • text-radial-offset
        • text-rotate
        • text-rotation-alignment
        • text-size
        • text-transform
        • text-translate
        • text-variable-anchor
        • visibility
      • Circle layers:
        • circle-color
        • circle-opacity
        • circle-radius
        • circle-stroke-color
        • circle-stroke-opacity
        • circle-stroke-width
        • circle-translate
        • visibility
      • Fill extrusion layers:
        • fill-extrusion-base
        • fill-extrusion-color
        • fill-extrusion-height
        • fill-extrusion-opacity
        • fill-extrusion-pattern
        • fill-extrusion-translate
        • fill-extrusion-vertical-scale
        • visibility
      Parameters:
      path - the path to a style file. Can be a URL or a file path to a JSON file.
      Returns:
      this builder.
    • labeled

      @NotNull public MbTilesFeatureLayer.Builder labeled(boolean labeled)
      Sets whether the layer should display labels initially.

      The default is true.

      Parameters:
      labeled - whether the layer should display labels initially.
      Returns:
      this builder.
      See Also: