/** * @author: xd * @Date: 2022-07-21 17:38:04 * @LastEditors: xd * @LastEditTime: 2023-06-02 12:57:54 * @FilePath: \Map2D\src\base\baseGraphicLayer.ts * @Description: * * Copyright (c) 2022 by xd, All Rights Reserved. */ import { baseLayer } from "./baseLayer"; import VectorSource from "ol/source/Vector"; import { IFeatureAttribute, IGraphicLayerOption, IlevelColor, ITooltipInfo } from "./baseOptionType"; import { Geometry } from "ol/geom"; import Feature from "ol/Feature"; export declare class baseGraphicLayer extends baseLayer { private _graphicLayerSelect; selectFeature: Feature; private _modify; private _translate; private _snap; _source: VectorSource; private _draw; private _tipPoint; option: IGraphicLayerOption; constructor(layerid: string, Options?: IGraphicLayerOption); initSelect(): void; setSelectState(val?: boolean): void; startMove(): void; endMove(): void; startEdit(): void; endEdit(): void; bindContextmenu(menu?: any): void; unbindContextmenu(): void; appendContextmenu(menu: any): void; protected _setFeatureContextmenu(feature: any, contextmenu: any): void; /** * : 显示tile * @param {string} dataType dataType字段属性 * @param {boolean} isShow 显示/关闭 * @param {string} showFieldName name 显示字段名 默认name */ showTitle(dataType: string, isShow: boolean, showFieldName?: string): void; /** * : 显示tile * @param {any} json json 结构 {bzId: "", mIndexName: "", name: [""],value:[""]} * mIndexName 即为classname 循环 name里的名称、属性删除数据 * @param {boolean} isShow 显示/关闭 * @param {string} showFieldName name 显示字段名 默认name */ showTitleByJson(json: any, isShow: boolean, showFieldName?: string, isincludes?: boolean): void; /** * : 显示tile * @param {string} fieldname 字段名 * @param {string} fieldval 字段值 * @param {boolean} isShow 显示/关闭 * @param {string} showFieldName name 显示字段名 默认name */ showTitleByField(fieldname: string, fieldval: string, isShow: boolean, showFieldName?: string): void; /** * : 显示tile * @param {string} classname classname字段属性 * @param {boolean} isShow 显示/关闭 * @param {string} showFieldName name 显示字段名 默认name */ showTitleByClassname(classname: string, isShow: boolean, showFieldName?: string): void; /**设置标签启用 * @description: 按dataType字段配置属性 * @param {string} dataTypeVal 属性中必须包含dataType字段 * @param {boolean} isShow */ setFeaturesTileByJson(dataTypeVal: any, isShow: any): void; _bindPoupEvent(): void; bindPopup(popupInfo?: Array | string, option?: { offset: number[]; }): void; unbindPopup(): void; openPopup(feature: Feature | any, popupInfo?: Array | string, popupOption?: { offset: number[]; }): void; protected showPopup(feature: Feature, data: string, option: IGraphicLayerOption["popupOption"]): void; closePopup(target?: Feature | any): void; bindTooltip(tooltipInfo?: Array | string, option?: { offset: number[]; }): void; unbindTooltip(): void; showTooltip(feature: Feature): void; protected _showTooltip2(feature: Feature, data: string, option: IGraphicLayerOption["tooltipOption"]): void; closeTooltip(): void; /** * : 添加GeoJSON数据,需要数据库样式匹配 * @param {string} classname 图层编号 * @param {any} GeoJson 标准GeoJson格式 */ addGeoJson(classname: string, GeoJson: any): void; /** * : 添加GeoJSON数据,需要数据库样式匹配 * @param {string} classname 图层编号 * @param {any} GeoJson 标准GeoJson格式 */ addGeoJson3857(classname: string, GeoJson: any): void; /** * : 添加GeoJSON数据,多边形将转为点格式 * @param {string} classname 图层编号 * @param {any} GeoJson 标准GeoJson格式 */ addGeoJsonPoint(classname: string, GeoJson: any): void; /** * 转换geojson到Features * @param {any} GeoJson 标准GeoJson格式 * @returns {any} */ convertGeoJsontoFeatures(GeoJson: any): any; /** * :设置要素属性 * @param {string} classname 分类名 * @param {Array>} featuresList 要素数组 * @param {Array} attribute 要素属性数组 * @param {Function} callback 回调函数 */ addFeatures(classname: string, featuresList: Array>, attribute?: IFeatureAttribute | any, callback?: Function): void; private _getFeatureAttribute; /** * 设置要素属性 * @param {string} classname 分类名 * @param {Feature} feature 要素 * @param {Array} attribute 要素属性数组 * @param {Function} callback 回调函数 */ addFeature(classname: string, feature: Feature, attribute?: IFeatureAttribute | any, callback?: Function): void; /** * 设置要素属性 * @param {IFeatureAttribute| any} attribute 要素属性数组 */ setFeaturesAttribute(attribute: IFeatureAttribute | any): void; /** * :设置要素属性 * @param {string}classname * @param {IFeatureAttribute| any} attribute 要素属性数组 */ setFeaturesAttributeByClassName(classname: string, attribute: IFeatureAttribute | any): void; /** * :设置要素属性 * @param {string} uuid 要素uuid * @param {Array} attribute 要素属性数组 */ setFeatureAttribute(uuid: string, attribute: IFeatureAttribute | any): void; /** * 返回图层所有要素 * @returns {Feature[]} 返回要素数组 */ getFeaturesAll(): Feature[]; /** * 按字段名、属性查询 * @param {*} fieldName 字段名 * @param {*} fieldVal 字段值 * @returns {*} 返回要素数组 */ getFeaturesByFieldName(fieldName: any, fieldVal: any): any; /** * 按classname查询 * @param {*} classname 分类名 * @returns {*} 返回要素数组 */ getFeaturesByClassName(classname: any): any; getFeatures(name: any): any; getFeature(name: any): any; getFeatureByUid(uuid: any): any; /**删除GeoJSON数据 * @description: * @param {string} classname */ removeFeature(uuid: string | Feature): void; /** * 删除GeoJSON数据 * @param {string} classname */ removeFeatures(classname: string): void; /**删除GeoJSON数据 * @description: * @param {any} json * json 结构 {bzId: "", mIndexName: "", name: [""],value:[""]} * mIndexName 即为classname 循环 name里的名称、属性删除数据 */ removeFeaturesByJson(json: any): void; /** * 替换{}字段 * @param {string} str * @returns {string} */ replaceField(str: string): any; /** * 设置图层透明度 * @description: * @param {Number} opacity */ setOpacity(opacity: Number): void; /** * 设置所有要素样式 * @description: * @param {any} styleOptions * @param {Function} callback 回调函数,可选 回调会返回每个feature的getProperties()属性,根据属性使用回调函数设置每个要素的styleOptions样式 * @example styleOptions 内容 * { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(0, 153, 255,1)", strokecolor: "rgba(255, 255, 255,1)", // 通过要素拿到具体的值 strokewidth: 1, radius: 10, scale: 1, text: "标注示例" //可以用{字段名}格式化显示字段 } */ setSymbol(styleOptions: any, callback?: Function): void; /** * 设置要素分级颜色样式,按字段名及字段值匹配设置 * @param {object} levelOption json参数 * @param {string} levelOption.classname 参与分级的要素分组 classname * @param {string} levelOption.attributeName 参与分级的要素字段名 * @param {boolean} levelOption.autolevel 是否自动分级,自动分级时默认5级颜色 * @param {Array} levelOption.levelColor 分级设置 * @returns { IlevelColor[]} * @example * levelColor:[ { maxnum: 0, // 分级最大值 fillcolor: "rgba(255,255,255,0.1)", strokecolor: "rgba(255, 255, 255,1)", strokewidth: 1 }, { maxnum: 1, // 分级最大值 fillcolor: "rgba(255,255,255,0.1)", strokecolor: "rgba(255, 255, 255,1)", strokewidth: 1 } ] */ setSymbolLevelColor(levelOption: { classname: string; attributeName: string; autolevel?: boolean; levelColor?: Array; }): IlevelColor[]; /** * 根据classname字段设置所有要素样式,按字段名及字段值匹配设置 * @param {string} classname * @param {any[]} styleOptions * @param {Function} callback 回调函数,可选 回调会返回每个feature的getProperties()属性,根据属性使用回调函数设置每个要素的styleOptions样式 * @example styleOptions 是一个json结构 * { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(0,0,0,0.5)", strokecolor: "rgba(255,255,0,1)", strokewidth: 1, scale: 1, radius: 10, text: ""//可以用{字段名}格式化显示字段 } */ setSymbolByClassname(classname: any, styleOptions: any, callback?: Function): void; /** * 匹配fieldname字段的属性fieldvalue,满足条件的设置颜色 * @param {string} fieldname - 字段名称 * @param {string|number} fieldvalue - 字段值 * @param {object} styleOptions - 样式配置 * @param {string} [newclassname=""] - 新图层名称(为空则修改原要素) * @example styleOptions 是一个json结构 * { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(0,0,0,0.5)", strokecolor: "rgba(255,255,0,1)", strokewidth: 1, scale: 1, radius: 10, text: ""//可以用{字段名}格式化显示字段 } */ setSymbolByField(fieldname: any, fieldvalue: any, styleOptions: any, newclassname?: string): void; /** * 根据features设置所有要素样式,按字段名及字段值匹配设置 * @param {any[]} features * @param {any[]} styleOptions * @param {Function} callback 回调函数,可选 回调会返回每个feature的getProperties()属性,根据属性使用回调函数设置每个要素的styleOptions样式 * @example styleOptions 是一个json结构 * { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(0,0,0,0.5)", strokecolor: "rgba(255,255,0,1)", strokewidth: 1, scale: 1, radius: 10, text: ""//可以用{字段名}格式化显示字段 } */ setSymbolByFeatures(features: any, styleOptions: any, callback?: Function): void; /** * 设置所有要素样式,按字段名及字段值匹配设置 * @description: * @param {any[]} styleClassOptions * @example styleClassOptions 是一个数组结构 * [{ className: "字段名", classValue: "字段值", style: { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(0,0,0,0.5)", strokecolor: "rgba(255,255,0,1)", strokewidth: 1, scale: 1, radius: 10, text: ""//可以用{字段名}格式化显示字段 } }] */ setSymbolByStyleClass(styleClassOptions: any): void; /** * 设置所有要素样式,根据classname字段设置 * @description: * @param {string} classname * @param {any[]} styleClassOptions * @example styleClassOptions 是一个数组结构 * [{ style 内是可选参数,根据需要设置 className: "字段名", classValue: "字段值", style: { Font: "12px Microsoft YaHei", FontColor: "#8B4513", FontStrokeColor: "#fff", FontStrokeWidth: 2, FontoffsetX: 0, FontoffsetY: -10, fillcolor: "rgba(255, 221, 0, 1)", strokecolor: "rgba(255, 255, 255,1)", //通过要素拿到具体的值 strokewidth: 1, radius: 3, scale: 1, text: ""//可以用{字段名}格式化显示字段 }, }] */ setClassSymbol(classname: any, styleClassOptions: any): void; clear(): void; /**复制样式 * @description:用于样式修改后不能同步时手动复制样式到属性 */ cloneFeaturesStyle(): void; /**显示GeoJSON数据 * @description:用于显示被hide的点 * @param {any} json * json 结构 {bzId: "", mIndexName: "", name: ["", ""]} * mIndexName 即为classname 循环 name里的名称、属性显示数据 * @param {boolean} isshow 显示还是隐藏 * @param {boolean} isincludes 默认false 判断相等 当true时判断包含 */ displayFeatures(json: any, isshow: any, isincludes?: boolean): void; /** * @description:显示被隐藏的要素 */ showFeatures(): void; /** * @description:隐藏所有要素 */ hideFeatures(): void; /** * 绘制图形 * @param {object} option 属性结合 */ startDraw(option: any): void; changeGraphicData(option: any, drawFeature: any): void; appendTo(map: any): void; toGeoJSON(): import("geojson").FeatureCollection; }