import { FlyDataMap, LightBarDataMap, TextConfig } from '../../Lcz3dAreaMap/type/child'; import { ThermalIndicator } from '../../LczChina2dMap/type/child'; export interface Image { id?: string; path?: string; size: { width: number; height: number; }; opacity: number; rotation: { x: number; y: number; z: number; }; translate: { x: number; y: number; z: number; }; animate: { display: boolean; target: 'x' | 'y' | 'z'; speed: number; }; } export interface RegionImage { id: string; type: 'lcz-3d-region-map-image'; config: { condition?: any; show?: boolean; images: Image[]; }; } /** 标牌柱子 */ export interface BarConfig { color: { start: string; end: string; }; upTime: number; width: number; heightScale: number; maxHeight: number; type: 'rect' | 'circle'; } export interface RegionBar { id: string; type: 'lcz-3d-region-map-bar'; config: { condition?: any; show?: boolean; barConfig: BarConfig; textConfig: TextConfig; }; data?: LightBarDataMap[]; event?: { onClick?: (data: LightBarDataMap) => void; }; } export interface RegionDLight { id: string; type: 'lcz-3d-region-map-d-light'; config: { condition?: any; show?: boolean; baseConfig: { color: string; intensity: number; }; position: { point: { x: number; y: number; z: number; }; target: { x: number; y: number; z: number; }; }; }; } export interface RegionFlyLine { id: string; type: 'lcz-3d-region-map-fly-line'; config: { condition?: any; show?: boolean; style: { additiveBlending: boolean; lineWidth: number; height: number; fly: { length: number; color: { start: string; end: string; }; }; baseLine: { display: boolean; color: string; }; }; animate: { time: number; random: boolean; }; }; data?: FlyDataMap[]; } /** 区域热力 */ export type RegionActiveData = { adcode: number | string; value: number; name?: string; }; interface FillRange { min: number; max: number; color: string; } export interface RegionActive { id: string; type: 'lcz-3d-region-map-active'; config: { condition?: any; show?: boolean; fillRange: FillRange[]; unfill: string; legend: ThermalIndicator; }; data?: RegionActiveData[]; } /** 散点 */ export type RegionPointData = { s: string | number; lng: string | number; lat: string | number; adcode?: string | number; value?: number; }; export interface StyleSeries { name: string; fillType: 'vector' | 'img'; vector: { shape: 'circle' | 'rect' | 'triangle'; radiusType: 'fix' | 'data'; radius: number; color: string; }; img: { path: string; w: number; h: number; }; } export interface RegionPoint { id: string; type: 'lcz-3d-region-map-point'; config: { condition?: any; show?: boolean; styleSeries: StyleSeries[]; }; data?: RegionPointData[]; event?: { onClick?: (data: RegionPointData) => void; }; } /** 信息面板 */ export interface StatusConfig { value: string; img: string; size: { w: number; h: number; }; offset: { x: number; y: number; }; point: { default: { img: string; size: { w: number; h: number; }; offset: { x: number; y: number; }; }; current: { img: string; size: { w: number; h: number; }; offset: { x: number; y: number; }; }; }; } interface FontStyle { fontFamily: string; fontSize: number; color: string; fontWeight: 'normal' | 'bold'; letterSpacing: number; } interface LineConfig { map: { fieldName: string; displayName: string; }; padding: { top: number; bottom: number; left: number; right: number; }; displayStyle: { fontStyle: FontStyle; rightGap: number; }; valueStyle: { fontStyle: FontStyle; suffix: { display: boolean; content: string; fontStyle: FontStyle; leftGap: number; }; }; } export interface RegionInfoPanelData { lng: string | number; lat: string | number; adcode: string | number; status: string | number; [propName: string]: any; } export interface StyleConfig { padding: { top: number; bottom: number; left: number; right: number; }; statusConfigList: StatusConfig[]; lineConfigList: LineConfig[]; } export interface RegionInfoPanel { id: string; type: 'lcz-3d-region-map-info-panel'; config: { condition?: any; show?: boolean; styleConfig: StyleConfig; eventConfig: { type: 'none' | 'click' | 'hover'; animate: { display: boolean; intervalTime: number; triggerEvent: boolean; }; }; }; data?: RegionInfoPanelData[]; event?: { onSelect?: (data: RegionInfoPanelData) => void; }; } export {};