@web-map-service/map2d-app
Version:
基于openlayer的2D地图应用
52 lines (51 loc) • 1.54 kB
TypeScript
import { Element as SElement, ElementData, Style, ElementType as SElementType } from '@web-map-service/map2d';
export { type SElement };
export interface ElementOptions {
id?: number;
type: string;
name?: string;
style?: Style;
rotate?: number;
sElementType?: SElementType;
data: ElementData;
}
export type CreateElementOption = Omit<ElementOptions, 'type'>;
export interface Element {
id: number;
type: string;
name?: string;
rotate?: number;
props?: SElement['props'];
setProps: SElement['setProps'];
setName(name: string): void;
setRotate(rotate: number): void;
getSElement(): SElement;
style?: Style;
setStyle(style: Style): void;
data: ElementData;
setData(data: ElementData): void;
}
export interface Layer {
id: number;
type: string;
name?: string;
sElementType: SElementType[];
create(options: CreateElementOption): Element;
add(element: Element): void;
remove(element: Element): void;
getElements(): Element[];
getElementById(id: number): Element | undefined;
}
export interface ElementPlugin {
create(options: ElementOptions): Element | undefined;
add(elements: Element | Element[]): void;
remove(elements: Element | Element[]): void;
addLayer(layer: Layer): void;
removeLayer(layer: Layer): void;
getLayers(): Layer[];
getLayerByType(type: string): Layer | undefined;
getLayerById(id: number): Layer | undefined;
}
export type ElementPluginExtend = {
element: ElementPlugin;
};