eurostat-map
    Preparing search index...

    Interface MapInstance

    A eurostat-map instance. Created by eurostatmap.map() and extended by each concrete map type. All getter/setter methods follow the same pattern: call with no argument to get, call with a value to set and return the instance for chaining.

    interface MapInstance {
        svgId(): string;
        svgId(id: string): this;
        containerId(): string;
        containerId(id: string): this;
        width(): number;
        width(w: number): this;
        height(): number;
        height(h: number): this;
        geo(): string;
        geo(g: string): this;
        proj(): string;
        proj(p: string): this;
        scale(): string;
        scale(s: "60M" | "20M" | "10M" | "03M" | "01M"): this;
        nutsLevel(): number | "mixed";
        nutsLevel(level: number | "mixed"): this;
        nutsYear(): number;
        nutsYear(year: number): this;
        position(v: { x?: number; y?: number; z?: number }): this;
        position(): { x: number; y: number; z: number };
        projectionFunction(): any;
        projectionFunction(fn: any): this;
        title(): string;
        title(t: string): this;
        subtitle(): string;
        subtitle(t: string): this;
        footnote(): string | false;
        footnote(text: string | false): this;
        footnoteTooltipText(): string | false;
        footnoteTooltipText(text: string | false): this;
        footnoteWrap(): number | false;
        footnoteWrap(chars: number | false): this;
        stat(): | StatConfig
        | CompositionStatConfig<Record<string, Record<string, number>>>;
        stat(
            config:
                | StatConfig
                | CompositionStatConfig<Record<string, Record<string, number>>>,
        ): this;
        stat(
            key: string,
        ):
            | StatConfig
            | CompositionStatConfig<Record<string, Record<string, number>>>;
        stat(
            key: string,
            config:
                | StatConfig
                | CompositionStatConfig<Record<string, Record<string, number>>>,
        ): this;
        stat(
            key: string,
            config:
                | StatConfig
                | CompositionStatConfig<Record<string, Record<string, number>>>,
            categoryParameter: string,
            categoryCodes?: string[],
            categoryLabels?: string[],
            categoryColors?: string[],
            totalCode?: string,
        ): this;
        encoding(): Record<string, EncodingConfig>;
        encoding(channel: string): EncodingConfig;
        encoding(channel: string, config: EncodingConfig): this;
        encoding(configs: Record<string, EncodingConfig>): this;
        getEncodingStat(channel: string, fallback?: string): string;
        getEncodingStats(channel: string, fallback?: string[]): string[];
        getEncodingStatKey(
            channel: string,
            categoryCode?: string,
            fallbackStat?: string,
        ): string;
        getEncodingStatData(
            channel: string,
            categoryCode?: string,
            fallbackStat?: string,
        ): StatData;
        getEncodingValue(
            channel: string,
            regionId: string,
            categoryCode?: string,
            fallbackStat?: string,
        ): string | number;
        getEncodingUnitText(
            channel: string,
            categoryCode?: string,
            fallbackStat?: string,
        ): string;
        statData(): StatData;
        statData(key: string): StatData;
        statData(key: string, data: StatData): this;
        getTime(): string;
        noDataText(): string;
        noDataText(text: string): this;
        language(): string;
        language(lang: string): this;
        legend(): false | LegendConfig;
        legend(config: false | LegendConfig): this;
        updateLegend(): this;
        rankedBarChart(): false | RankedBarChartConfig;
        rankedBarChart(config: false | RankedBarChartConfig): this;
        updateRankedBarChart(): this;
        tooltip(): TooltipConfig;
        tooltip(config: TooltipConfig): this;
        zoomExtent(): [number, number];
        zoomExtent(extent: [number, number]): this;
        zoomButtons(): boolean;
        zoomButtons(show: boolean): this;
        translateExtent(): [[number, number], [number, number]];
        translateExtent(extent: [[number, number], [number, number]]): this;
        lockPanUntilZoom(): boolean;
        lockPanUntilZoom(lock: boolean): this;
        gridCartogramSettings(): GridCartogramSettings;
        gridCartogramSettings(settings: Partial<GridCartogramSettings>): this;
        insets(): false | "image" | "default" | InsetConfig[] | "eu" | "euEfta";
        insets(
            config: boolean | "image" | "default" | InsetConfig[] | "eu" | "euEfta",
        ): this;
        insetBoxPosition(): [number, number];
        insetBoxPosition(pos: [number, number]): this;
        insetBoxPadding(): number;
        insetBoxPadding(px: number): this;
        insetBoxWidth(): number;
        insetBoxWidth(px: number): this;
        insetScale(): string;
        insetScale(scale: string): this;
        insetZoomExtent(): [number, number];
        insetZoomExtent(extent: [number, number]): this;
        drawGraticule(): boolean;
        drawGraticule(show: boolean): this;
        drawCoastalMargin(): boolean;
        drawCoastalMargin(show: boolean): this;
        coastalMarginSettings(): CoastalMarginSettings;
        coastalMarginSettings(settings: Partial<CoastalMarginSettings>): this;
        placenames(): boolean;
        placenames(show: boolean): this;
        labels(): LabelsConfig;
        labels(config: false | LabelsConfig): this;
        annotations(): { annotations: any[]; editMode?: boolean };
        annotations(
            config: false | { annotations: any[]; editMode?: boolean },
        ): this;
        stamp(): StampConfig;
        stamp(config: false | StampConfig): this;
        scalebar(): ScalebarConfig;
        scalebar(config: boolean | ScalebarConfig): this;
        showScalebar(): boolean;
        showScalebar(show: boolean): this;
        scalebarPosition(): [number, number];
        scalebarPosition(pos: [number, number]): this;
        showEstatLogo(): boolean;
        showEstatLogo(show: boolean): this;
        logoWidth(): number;
        logoWidth(px: number): this;
        logoHeight(): number;
        logoHeight(px: number): this;
        showEstatRibbon(): boolean;
        showEstatRibbon(show: boolean): this;
        ribbonWidth(): number;
        ribbonWidth(px: number): this;
        ribbonHeight(): number;
        ribbonHeight(px: number): this;
        svg(): any;
        svg(s: any): this;
        addLocation(config: LocationConfig): this;
        removeLocation(id: string): this;
        clearLocations(): this;
        locations(): LocationConfig[];
        locations(configs: LocationConfig[]): this;
        updateLocations(): this;
        filterGeometriesFunction(): (geometry: any) => boolean;
        filterGeometriesFunction(fn: (geometry: any) => boolean): this;
        gridCartogram(): boolean;
        gridCartogram(enable: boolean): this;
        backgroundMap(): boolean;
        backgroundMap(show: boolean): this;
        minimap(): MinimapConfig;
        minimap(config: MinimapConfig): this;
        insetsButton(): boolean;
        insetsButton(show: boolean): this;
        legendButton(): boolean;
        legendButton(show: boolean): this;
        placenamesFilter(): (name: any) => boolean;
        placenamesFilter(fn: (name: any) => boolean): this;
        header(): boolean;
        header(show: boolean): this;
        footer(): boolean;
        footer(show: boolean): this;
        footerPadding(): number;
        footerPadding(padding: number): this;
        headerPadding(): number;
        headerPadding(padding: number): this;
        titlePosition(): [number, number];
        titlePosition(pos: [number, number]): this;
        subtitlePosition(): [number, number];
        subtitlePosition(pos: [number, number]): this;
        footnotePosition(): [number, number];
        footnotePosition(pos: [number, number]): this;
        logoPosition(): [number, number];
        logoPosition(pos: [number, number]): this;
        ribbonPosition(): [number, number];
        ribbonPosition(pos: [number, number]): this;
        zoomButtonsPosition(): [number, number];
        zoomButtonsPosition(pos: [number, number]): this;
        insetsButtonPosition(): [number, number];
        insetsButtonPosition(pos: [number, number]): this;
        insetsVisibilityBreakpoint(): number;
        insetsVisibilityBreakpoint(px: number): this;
        legendButtonPosition(): [number, number];
        legendButtonPosition(pos: [number, number]): this;
        legendVisibilityBreakpoint(): number;
        legendVisibilityBreakpoint(px: number): this;
        hoverColor(): string;
        hoverColor(color: string): this;
        noDataFillStyle(): string;
        noDataFillStyle(style: string): this;
        showSourceLink(): boolean;
        showSourceLink(show: boolean): this;
        patternFill(): PatternFillConfig | PatternFillConfig[];
        patternFill(config: PatternFillConfig | PatternFillConfig[]): this;
        dorling(): boolean;
        dorling(enable: boolean): this;
        dorlingSettings(): DorlingSettings;
        dorlingSettings(settings: Partial<DorlingSettings>): this;
        onZoomEnd(): (event: any) => void;
        onZoomEnd(fn: (event: any) => void): this;
        onZoom(): (event: any) => void;
        onZoom(fn: (event: any) => void): this;
        onRegionMouseOver(): (
            event: MouseEvent,
            regionId: string,
            props: any,
        ) => void;
        onRegionMouseOver(
            fn: (event: MouseEvent, regionId: string, props: any) => void,
        ): this;
        onRegionMouseMove(): (
            event: MouseEvent,
            regionId: string,
            props: any,
        ) => void;
        onRegionMouseMove(
            fn: (event: MouseEvent, regionId: string, props: any) => void,
        ): this;
        onRegionMouseOut(): (
            event: MouseEvent,
            regionId: string,
            props: any,
        ) => void;
        onRegionMouseOut(
            fn: (event: MouseEvent, regionId: string, props: any) => void,
        ): this;
        onRegionClick(): (event: MouseEvent, regionId: string, props: any) => void;
        onRegionClick(
            fn: (event: MouseEvent, regionId: string, props: any) => void,
        ): this;
        onBuild(): (map: MapInstance) => void;
        onBuild(callback: (map: MapInstance) => void): this;
        build(): this;
        updateGeoData(): this;
        updateStatData(): this;
        updateStatValues(): this;
        updateClassification(): this;
        updateStyle(): this;
        recalculateLayout(): void;
        exportMapToSVG(filename?: string): this;
        exportMapToPNG(
            width?: number,
            height?: number,
            filename?: string,
        ): Promise<MapInstance>;
        setFromURL(): this;
        transitionDuration(): number;
        transitionDuration(ms: number): this;
        filtersDefinitionFunction(): (svg: any, numberOfClasses: number) => void;
        filtersDefinitionFunction(
            fn: (svg: any, numberOfClasses: number) => void,
        ): this;
        regionCentroids(): Map<string, [number, number]>;
        layers_: Layer[];
        activeLayerIndex_: number;
        activeLayer(): Layer;
        layer(ref?: string | number): Layer;
        layers(): Layer[];
        layers(configs: LayerConfig[]): this;
        addLayer(type: string, config?: LayerConfig): Layer;
        addLayer(config: LayerConfig): Layer;
        removeLayer(ref: string | number): this;
        activeLayerIndex(): number;
        activeLayerIndex(i: number): this;
        updateAllLayers(): this;
        [key: string]: any;
    }

    Hierarchy (View Summary)

    Indexable

    • [key: string]: any

      Allow additional map-type-specific properties and methods.

    Index

    Properties

    Methods

    svgId containerId width height geo proj scale nutsLevel nutsYear position projectionFunction title subtitle footnote footnoteTooltipText footnoteWrap stat encoding getEncodingStat getEncodingStats getEncodingStatKey getEncodingStatData getEncodingValue getEncodingUnitText statData getTime noDataText language legend updateLegend rankedBarChart updateRankedBarChart tooltip zoomExtent zoomButtons translateExtent lockPanUntilZoom gridCartogramSettings insets insetBoxPosition insetBoxPadding insetBoxWidth insetScale insetZoomExtent drawGraticule drawCoastalMargin coastalMarginSettings placenames labels annotations stamp scalebar showScalebar scalebarPosition showEstatLogo logoWidth logoHeight showEstatRibbon ribbonWidth ribbonHeight svg addLocation removeLocation clearLocations locations updateLocations filterGeometriesFunction gridCartogram backgroundMap minimap insetsButton legendButton placenamesFilter header footer footerPadding headerPadding titlePosition subtitlePosition footnotePosition logoPosition ribbonPosition zoomButtonsPosition insetsButtonPosition insetsVisibilityBreakpoint legendButtonPosition legendVisibilityBreakpoint hoverColor noDataFillStyle showSourceLink patternFill dorling dorlingSettings onZoomEnd onZoom onRegionMouseOver onRegionMouseMove onRegionMouseOut onRegionClick onBuild build updateGeoData updateStatData updateStatValues updateClassification updateStyle recalculateLayout exportMapToSVG exportMapToPNG setFromURL transitionDuration filtersDefinitionFunction regionCentroids activeLayer layer layers addLayer removeLayer activeLayerIndex updateAllLayers

    Properties

    layers_: Layer[]

    Ordered thematic layer stack (bottom → top).

    activeLayerIndex_: number

    Methods

    • Initial map viewport. x/y in projected coordinates, z is pixel size (map units per screen pixel — smaller = more zoomed in).

      Parameters

      • v: { x?: number; y?: number; z?: number }

      Returns this

      map.position({ x: 4800000, y: 3400000, z: 6000 })
      
    • Returns { x: number; y: number; z: number }

    • Returns the stat name for an encoding channel, or fallback when unset.

      Parameters

      • channel: string
      • Optionalfallback: string

      Returns string

    • Returns stat names for an encoding channel (stats or single stat).

      Parameters

      • channel: string
      • Optionalfallback: string[]

      Returns string[]

    • Returns the concrete statData key for a channel/category combination.

      Parameters

      • channel: string
      • OptionalcategoryCode: string
      • OptionalfallbackStat: string

      Returns string

    • Returns the StatData source bound to a channel/category.

      Parameters

      • channel: string
      • OptionalcategoryCode: string
      • OptionalfallbackStat: string

      Returns StatData

    • Returns a region value through encoding lookup.

      Parameters

      • channel: string
      • regionId: string
      • OptionalcategoryCode: string
      • OptionalfallbackStat: string

      Returns string | number

    • Returns unit text through encoding lookup.

      Parameters

      • channel: string
      • OptionalcategoryCode: string
      • OptionalfallbackStat: string

      Returns string

    • Returns the time dimension value from the loaded Eurostat dataset. Useful for displaying the data period in the map title.

      Returns string

      map.onBuild(() => map.title('Population ' + map.getTime()))
      
    • D3 zoom translate extent (pan boundaries), as [[x0, y0], [x1, y1]].

      Returns [[number, number], [number, number]]

    • Parameters

      • extent: [[number, number], [number, number]]

      Returns this

    • Inset map configurations. Pass a named preset string, or a custom array, or false to disable. Passing true is an alias for 'default'.

      • 'default': simple grid layout of overseas territories.
      • 'image': Malta, Liechtenstein and EU/EFTA overseas/remote territories, hand-tuned layout with connecting decoration (background box, separator lines, blur gradients).
      • 'eu': simple grid layout of EU overseas/outermost territories, no decoration.
      • 'euEfta': like 'eu', plus Liechtenstein and Svalbard, no decoration.

      Returns false | "image" | "default" | InsetConfig[] | "eu" | "euEfta"

      map.insets('default')
      
      map.insets('image')
      
      map.insets(true)
      
      map.insets([{ geo: 'MT' }, { geo: 'LI' }])
      
    • Parameters

      • config: boolean | "image" | "default" | InsetConfig[] | "eu" | "euEfta"

      Returns this

    • Annotation configuration, rendered via the d3-svg-annotation library. annotations is an array of d3-svg-annotation annotation objects; each object's type may be one of 'annotationLabel' (default), 'annotationCallout', 'annotationCalloutRect', 'annotationCalloutCircle', 'annotationXYThreshold', resolved to the matching d3-svg-annotation function internally.

      Returns { annotations: any[]; editMode?: boolean }

    • Parameters

      • config: false | { annotations: any[]; editMode?: boolean }

      Returns this

    • Viewport width (px) at/below which insets start hidden (behind the insets button) unless insetsButton was set explicitly.

      Returns number

      768
      
    • Parameters

      • px: number

      Returns this

    • Viewport width (px) at/below which the legend starts hidden (behind the legend button) when legendButton is enabled.

      Returns number

      768
      
    • Parameters

      • px: number

      Returns this

    • Builds the map from scratch. Call once after initial configuration.

      Returns this

      eurostatmap.map('choropleth')
      .stat({ eurostatDatasetCode: 'demo_r_d3dens' })
      .build()
    • Exports the map as an SVG file and triggers a browser download. Computed CSS styles are inlined before export.

      Parameters

      • Optionalfilename: string

        Download filename without extension.

      Returns this

      'eurostatmap'
      
    • Exports the map as a PNG file and triggers a browser download.

      Parameters

      • Optionalwidth: number

        Output width in pixels. Defaults to SVG width.

      • Optionalheight: number

        Output height in pixels. Defaults to SVG height.

      • Optionalfilename: string

        Download filename without extension.

      Returns Promise<MapInstance>

      'eurostatmap'
      
    • Sets map attributes from URL parameters. Supported params: w, h, x, y, z, s, lvl, time, proj, geo, ny, language, numberOfClasses

      Returns this

    • SVG filter/pattern definition function for fill patterns.

      Returns (svg: any, numberOfClasses: number) => void

    • Parameters

      • fn: (svg: any, numberOfClasses: number) => void

      Returns this

    • Returns a Map of region id -> projected [x, y] centroid coordinate pair.

      Returns Map<string, [number, number]>