UNPKG

xgis-ol

Version:

基于openlayers + ol-ext库进行封装

337 lines (336 loc) 6.65 kB
import { Coordinate } from 'ol/coordinate'; import { ProjectionLike } from 'ol/proj'; import { ViewOptions } from 'ol/View'; /** * 视图初始化参数(常用选项) */ export interface IViewOptions { /** * 视图的投影,默认为3857 */ projection?: ProjectionLike; /** * 中心点(可以后设置) */ center?: Coordinate; /** * 默认级别 */ zoom?: number; /** * 最小级别 */ minZoom?: number; /** * 最大级别 */ maxZoom?: number; /** * 视图范围 */ extent?: number[]; } /** * 空间投影模型 */ export interface IProjInfo { /** * epsg代码,例如 EPSG:3857 */ epsg: string; /** * Extent范围,自定义投影必须得有 * [minx,miny,maxx,maxy] */ prjExtent?: [number, number, number, number]; /** * Projection定义文本 */ proj4?: string; } type IResolutions = { [props: string]: number; }; /** * 瓦片切片方案TileGridSchema * (用于初始化图层的投影和TileGrid) */ export interface ITileGridSchema { /** * rule规则名 */ rule: string; /** * 起点坐标,一般是Extent的左上角 */ origin?: number[]; /** * Extent范围 * [minx, miny, maxx, maxy] */ extent?: number[]; /** * 瓦片大小[width,height],默认为256,256 */ tileSize: number | [number, number]; /** * 级别-分辨率,字典对象 */ resolutions: IResolutions; } /** * 矢量切片TileJson模型 */ export interface ITileJson { version?: string; name: string; id: string; tilejson: string; description?: string; attribution?: string; legend?: string; generator?: string; minzoom: number; maxzoom: number; center?: number[]; /** * 范围 * [minx,miny,maxx,maxy] */ bounds: [number, number, number, number]; masklevel?: null; scheme: string; format?: string; crs: string | number; crs_wkt?: string; tile_grid: string; tiles: string[]; grids?: string[]; data?: string[]; vector_layers: any[]; /** * 默认为空,图层的投影信息(可空,外面统一处理) */ prjInfo?: IProjInfo; /** * 默认为空,图层对应的切片方案(可空,外面统一处理) */ tileSchema?: ITileGridSchema; } /** * WMTS图层的信息 */ export interface IWMTSLayerInfo { name: string; level?: number; /** * 图层范围(一般为经纬度) * [minx,miny,maxx,maxy] */ bounds: [number, number, number, number]; /** * 图层中心点(一般为经纬度) * [x,y] */ center?: [number, number]; /** * 图层最小级别 */ minlevel: number; /** * 图层最大级别 */ maxlevel: number; /** * 图层可访问地址(可空,外面统一传入) */ tileUrl?: string; /** * 图层的投影信息(可空,外面统一处理) */ prjInfo?: IProjInfo; /** * 图层对应的切片方案(可空,外面统一处理) */ tileSchema?: ITileGridSchema; /** * 样式,默认为default */ style?: string; } /** * 图层信息 */ export interface ILayerItem { id?: string; name: string; alias?: string; group?: string; type?: string; minZoom?: number; maxZoom?: number; visible?: boolean; opacity?: number; children?: ILayerItem[]; } /** * 图层的扩展属性 */ export interface ILayerProperties { lyrID: string; lyrName: string; lyrGroup?: string; lyrType?: string; [props: string]: any; } /** * 地图图层类型 */ export declare enum EnumLayerType { 'grid' = 0, 'mvt' = 1, 'symbol' = 2, 'vector' = 3, 'json' = 4 } export interface IControlOption { key: string; type?: string; options?: object | any; } /** * 地图初始化配置文档 */ export interface IMapConfig { id: string; group?: string; hasLayerManager?: boolean; isInternet?: boolean; tdtXYZLocalURL?: string; projInfo?: IProjInfo; viewOptions: ViewOptions; layers?: Array<string>; controls?: Array<IControlOption>; interactions?: Array<IControlOption>; } export declare const defaultMapConfig: { id: string; group: string; hasLayerManager: boolean; isInternet: boolean; viewOptions: { zoom: number; center: number[]; minzoom: number; maxzoom: number; projection: string; }; layers: string[]; controls: ({ key: string; options: { visible: boolean; composit: string; align?: undefined; }; } | { key: string; options: { align: string; visible?: undefined; composit?: undefined; }; } | { key: string; options?: undefined; })[]; interactions: { key: string; options: { active: boolean; radius: number; layers: number[]; }; }[]; }; /** * 地图 * 右键菜单对象接口 */ export interface IMapContextItem { id?: string; label?: string; icon?: string; tag?: any; children?: Array<IMapContextItem>; } export interface ILayersState { mapEventBus?: any; mapid: string; mapgroup?: string; swipeid?: string; } export interface ILayerProperty { layerID: string; propName: string; propValue: any; } /** * 图层右键菜单项 */ export interface ILayerContextItem { name?: string; value?: string; icon?: string; tag?: any; } /** * 用于控制地图功能菜单显隐 */ export interface IMapMenuState { /** * 图层树是否显示 */ layerTree: boolean; /** * 数据列表是否显示 */ dataPanel: boolean; /** * 定位窗体是否显示 */ location: boolean; /** * 绘制菜单是否显示 */ drawTool: boolean; /** * 测量菜单是否显示 */ measureTool: boolean; /** * 卷帘工具栏是否显示 */ swipeTool: boolean; /** * 其他菜单是否显示 */ otherTool: boolean; /** * 打印工具状态(备用) */ printTool: boolean; /** * 选择工具状态(备用) */ selectTool: boolean; /** * 弹框状态(备用) */ popupPanel: boolean; /** * 备用 */ tagState: boolean; } export {};