Skip to content

Layer Simple Mapbox Build

Usecase

  • Provide a fluent API for building Mapbox layer specifications with common styling options.
  • Simplify the creation of standard layer types (point, line, area, symbol) with sensible defaults.
  • Enable method chaining for easy layer configuration.
  • Generate layer specifications that can be used with Mapbox GL JS layers.

Properties

PropertyDescriptionTypeDefault Value
colorColor for the layerColor | undefinedundefined
opacityOpacity for the layernumber | undefinedundefined
typeStyle type of the layerLayerStyleType'point'

Methods

MethodDescriptionParametersReturn Type
setColorSet the color for the layercolor: Color | undefinedLayerSimpleMapboxBuild
setStyleTypeSet the style typetype: LayerStyleTypeLayerSimpleMapboxBuild
setOpacitySet the opacity for the layeropacity: numberLayerSimpleMapboxBuild
buildBuild the layer specification-Omit<LayerMapbox, 'id'>

Types

LayerStyleType

typescript
type LayerStyleType = 'point' | 'line' | 'area' | 'symbol';
  • 'point' - Creates a circle layer for point features
  • 'line' - Creates a line layer for line features
  • 'area' - Creates a fill layer for polygon features
  • 'symbol' - Creates a symbol layer for text/icon features

Usage

Basic Point Layer

typescript
import { LayerSimpleMapboxBuild } from '@hungpvq/vue-map-dataset';

const layer = new LayerSimpleMapboxBuild().setStyleType('point').setColor('#ff6b6b').setOpacity(0.8).build();

Line Layer

typescript
const lineLayer = new LayerSimpleMapboxBuild().setStyleType('line').setColor('#4ecdc4').setOpacity(1.0).build();

Area Layer

typescript
const areaLayer = new LayerSimpleMapboxBuild().setStyleType('area').setColor('#45b7d1').setOpacity(0.6).build();

Symbol Layer

typescript
const symbolLayer = new LayerSimpleMapboxBuild().setStyleType('symbol').build();

With Dataset Integration

typescript
import { createDataset, createMultiMapboxLayerComponent, LayerSimpleMapboxBuild } from '@hungpvq/vue-map-dataset';

// Create dataset
const dataset = createDataset('Sample Dataset', null, true);

// Create layer with builder
const layerSpec = new LayerSimpleMapboxBuild().setStyleType('point').setColor('#ff6b6b').setOpacity(0.8).build();

// Create layer component
const layer = createMultiMapboxLayerComponent('sample-layer', [layerSpec]);

dataset.add(layer);

Method Chaining

typescript
// All methods return the builder instance for chaining
const layer = new LayerSimpleMapboxBuild().setStyleType('line').setColor('#e74c3c').setOpacity(0.9).build();

Default Values

typescript
// Uses default values when not specified
const defaultLayer = new LayerSimpleMapboxBuild().build();
// Results in: point layer with random color and full opacity

Generated Layer Specifications

Point Layer (Circle)

typescript
{
  layout: { visibility: 'visible' },
  type: 'circle',
  paint: {
    'circle-color': '#ff6b6b',
    'circle-radius': 6,
    'circle-opacity': 0.8
  }
}

Line Layer Specification

typescript
{
  layout: { visibility: 'visible' },
  type: 'line',
  paint: {
    'line-color': '#4ecdc4',
    'line-width': 4,
    'line-opacity': 1.0
  }
}

Area Layer Specification (Fill)

typescript
{
  layout: { visibility: 'visible' },
  type: 'fill',
  paint: {
    'fill-color': '#45b7d1',
    'fill-opacity': 0.6
  }
}

Symbol Layer Specification

typescript
{
  layout: { visibility: 'visible' },
  type: 'symbol',
  paint: {}
}

Features

  • Fluent API - Method chaining for easy configuration
  • Type Safety - Full TypeScript support with proper type definitions
  • Default Values - Sensible defaults for common styling options
  • Random Colors - Automatic random color generation when color is not specified
  • Mapbox Compatible - Generates specifications compatible with Mapbox GL JS
  • Multiple Layer Types - Support for point, line, area, and symbol layers