///
import Layer, { LayerBaseConfig, LayerColorConfig, LayerColumn, LayerCoverageConfig, LayerSizeConfig } from '../base-layer';
import { GeoJsonLayer } from '@deck.gl/layers';
import { H3HexagonLayer } from '@deck.gl/geo-layers';
import { Centroid } from './h3-utils';
import H3HexagonLayerIcon from './h3-hexagon-layer-icon';
import { VisConfigBoolean, VisConfigColorRange, VisConfigNumber, VisConfigRange } from '../layer-factory';
import { Merge } from '../../reducers';
import { DataContainerInterface } from '../../utils/table-utils/data-container-interface';
import { ColorRange } from '../../constants/color-ranges';
import { KeplerTable } from '../../utils';
export type HexagonIdLayerColumnsConfig = {
hex_id: LayerColumn;
};
export type HexagonIdLayerVisConfigSettings = {
opacity: VisConfigNumber;
colorRange: VisConfigColorRange;
coverage: VisConfigNumber;
enable3d: VisConfigBoolean;
sizeRange: VisConfigRange;
coverageRange: VisConfigRange;
elevationScale: VisConfigNumber;
enableElevationZoomFactor: VisConfigBoolean;
};
export type HexagonIdLayerVisConfig = {
opacity: number;
colorRange: ColorRange;
coverage: number;
enable3d: boolean;
sizeRange: [number, number];
coverageRange: [number, number];
elevationScale: number;
enableElevationZoomFactor: boolean;
};
export type HexagonIdLayerVisualChannelConfig = LayerColorConfig & LayerSizeConfig & LayerCoverageConfig;
export type HexagonIdLayerConfig = Merge & HexagonIdLayerVisualChannelConfig;
export type HexagonIdLayerData = {
index: number;
id: any;
centroid: Centroid;
};
export declare const hexIdRequiredColumns: ['hex_id'];
export declare const hexIdAccessor: ({ hex_id }: HexagonIdLayerColumnsConfig) => (dc: DataContainerInterface) => (d: any) => any;
export declare const defaultElevation = 500;
export declare const defaultCoverage = 1;
export declare const HexagonIdVisConfigs: {
opacity: 'opacity';
colorRange: 'colorRange';
coverage: 'coverage';
enable3d: 'enable3d';
sizeRange: 'elevationRange';
coverageRange: 'coverageRange';
elevationScale: 'elevationScale';
enableElevationZoomFactor: 'enableElevationZoomFactor';
};
export default class HexagonIdLayer extends Layer {
dataToFeature: {
centroids: Centroid[];
};
config: HexagonIdLayerConfig;
visConfigSettings: HexagonIdLayerVisConfigSettings;
constructor(props: any);
get type(): 'hexagonId';
get name(): 'H3';
get requiredLayerColumns(): ["hex_id"];
get layerIcon(): typeof H3HexagonLayerIcon;
get visualChannels(): {
color: {
accessor: string;
property: string;
field: string;
scale: string;
domain: string;
range: string;
key: string;
channelScaleType: string;
nullValue?: any;
defaultMeasure?: any;
condition?: (config: any) => boolean;
getAttributeValue?: (config: any) => (d: any) => any;
defaultValue?: any;
fixed?: any;
supportedFieldTypes?: ("string" | "boolean" | "point" | "geojson" | "date" | "integer" | "real" | "timestamp")[];
aggregation?: import("../base-layer").VisualChannelAggregation;
};
size: {
property: string;
accessor: string;
nullValue: number;
condition: (config: any) => any;
defaultValue: number;
field: string;
scale: string;
domain: string;
range: string;
key: string;
channelScaleType: string;
defaultMeasure?: any;
getAttributeValue?: (config: any) => (d: any) => any;
fixed?: any;
supportedFieldTypes?: ("string" | "boolean" | "point" | "geojson" | "date" | "integer" | "real" | "timestamp")[];
aggregation?: import("../base-layer").VisualChannelAggregation;
};
coverage: {
property: string;
field: string;
scale: string;
domain: string;
range: string;
key: string;
channelScaleType: "radius";
accessor: string;
nullValue: number;
defaultValue: number;
};
};
setInitialLayerConfig(dataset: any): this;
static findDefaultLayerProps({ fields, dataContainer }: KeplerTable): {
props: any;
};
getDefaultLayerConfig(props?: {}): {
coverageField: any;
coverageDomain: number[];
coverageScale: string;
dataId: string;
label: string;
color: import("../../reducers").RGBColor;
columns: import("../base-layer").LayerColumns;
isVisible: boolean;
isConfigActive: boolean;
highlightColor: import("../../reducers").RGBAColor | import("../../reducers").RGBColor;
hidden: boolean;
visConfig: import("../layer-factory").LayerVisConfig;
textLabel: import("../layer-factory").LayerTextLabel[];
colorUI: {
color: import("../layer-factory").ColorUI;
colorRange: import("../layer-factory").ColorUI;
};
animation: {
enabled: boolean;
domain?: null;
};
colorField?: import("../../utils/table-utils/kepler-table").Field;
colorDomain?: import("../base-layer").VisualChannelDomain;
colorScale?: "point" | "log" | "ordinal" | "quantile" | "quantize" | "linear" | "sqrt" | "custom" | "logarithmic" | "identity";
sizeDomain?: import("../base-layer").VisualChannelDomain;
sizeScale?: "point" | "log" | "ordinal" | "quantile" | "quantize" | "linear" | "sqrt" | "custom" | "logarithmic" | "identity";
sizeField?: import("../../utils/table-utils/kepler-table").Field;
};
calculateDataAttribute({ dataContainer, filteredIndex }: KeplerTable, getHexId: any): HexagonIdLayerData[];
formatLayerData(datasets: any, oldLayerData: any, opt?: {}): {};
updateLayerMeta(dataContainer: any, getHexId: any): void;
renderLayer(opts: any): (H3HexagonLayer | GeoJsonLayer)[];
}