///
/** 数据驱动样式表达式,如 ['match', ['get', 'name'], '海淀区', 'red', '#aecde8'] */
export type FillStyleExpr = unknown[];
export interface FillLayerStyle {
fillColor?: string | FillStyleExpr;
fillOpacity?: number | FillStyleExpr;
pattern?: boolean;
patternMask?: boolean;
patternUrl?: string;
patternMapping?: string;
patternScale?: number;
patternOffset?: string;
sequence?: boolean;
marginLength?: number;
borderCovered?: boolean;
borderMask?: boolean;
borderWeight?: number | FillStyleExpr;
borderColor?: string | FillStyleExpr;
strokeTextureUrl?: string;
strokeTextureWidth?: number;
strokeTextureHeight?: number;
strokeLineJoin?: string;
strokeLineCap?: string;
strokeColor?: string | FillStyleExpr;
strokeWeight?: number | FillStyleExpr;
strokeOpacity?: number | FillStyleExpr;
strokeStyle?: string;
dashArray?: number[];
height?: number | FillStyleExpr;
[k: string]: unknown;
}
export interface FillLayerOptions {
border?: boolean;
style?: FillLayerStyle;
idKey?: string;
crs?: string;
isFlat?: boolean;
drawPart?: boolean;
selectedIndex?: number;
selectedColor?: string;
enablePicked?: boolean;
/** 拾取时是否自动切换 selectedIndex(配合 feature-state 高亮时通常设 false,自己控制状态) */
enableChangeSelectIndexByPick?: boolean;
autoSelect?: boolean;
popEvent?: boolean;
pickWidth?: number;
pickHeight?: number;
/** 命中要素时是否自动改变鼠标样式 */
mouseStyleChange?: boolean;
/** 参考中心点(Point) */
referCenter?: unknown;
isTop?: boolean;
isLowText?: boolean;
visible?: boolean;
opacity?: number;
minZoom?: number;
maxZoom?: number;
zIndex?: number;
}
export interface FillLayerProps extends FillLayerOptions {
/** GeoJSON 数据源,变化时调用 raw.setData() */
data?: object;
/** setData 第二参(如 { changeCenter: true } 自动定位到数据范围) */
setDataParams?: object;
/** 点击要素(需 enablePicked)。e.value.dataItem.properties 为选中要素属性 */
onClick?: (e: FillLayerEvent) => void;
/** 双击要素(需 enablePicked) */
onDblClick?: (e: FillLayerEvent) => void;
onRightClick?: (e: FillLayerEvent) => void;
/** 鼠标在要素上移动(需 enablePicked)。SDK 不派发 mouseover/mouseout */
onMouseMove?: (e: FillLayerEvent) => void;
/** 图层挂载后回调,拿到原生 FillLayer 实例做命令式操作(如 updateState/clearState) */
onReady?: (layer: any) => void;
}
/** 图层拾取事件对象(enablePicked=true 时点击/命中要素) */
export interface FillLayerEvent {
value?: {
dataIndex?: number;
dataItem?: {
properties?: Record;
[k: string]: unknown;
};
[k: string]: unknown;
};
[k: string]: unknown;
}
export declare const FillLayer: import('react').NamedExoticComponent;