UNPKG

flagwind-map

Version:
1,749 lines (1,748 loc) 114 kB
declare namespace flagwind { class DataManager { rawData: Array<any>; /** * 客户端聚合 * @param clusterRatio 聚合比率 * @param maxSingleFlareCount 最大的单个聚合点包含成员数 * @param areaDisplayMode 是否显示聚合区域 * @param map 地图对象 */ clientSideClustering(clusterRatio: number, maxSingleFlareCount: number, areaDisplayMode: boolean, map: any): any[]; getData(): any[]; setData(data: any): void; } } declare namespace flagwind { /** * 事件提供程序类。 * @description 用于添加或删除事件侦听器的方法,检查是否已注册特定类型的事件侦听器,并调度事件。 * @class * @version 1.0.0 */ class EventProvider implements IEventProvider { private _source; private _events; /** * 初始化事件提供程序的新实例。 * @param {any} source? 事件源实例。 */ constructor(source?: any); /** * 为指定的事件类型注册一个侦听器,以使侦听器能够接收事件通知。 * @summary 如果不再需要某个事件侦听器,可调用 removeListener() 删除它,否则会产生内存问题。 * 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。 * @param {string} type 事件类型。 * @param {Function} 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @param {boolean} once? 是否添加仅回调一次的事件侦听器,如果此参数设为 true 则在第一次回调时就自动移除监听。 * @returns void */ addListener(type: string, listener: Function, scope?: any, once?: boolean): void; /** * 移除侦听器。如果没有注册任何匹配的侦听器,则对此方法的调用没有任何效果。 * @param {string} type 事件类型。 * @param {Function} listener 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @returns void */ removeListener(type: string, listener: Function, scope?: any): void; /** * 检查是否为特定事件类型注册了侦听器。 * @param {string} type 事件类型。 * @returns boolean 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。 */ hasListener(type: string): boolean; /** * 派发一个指定类型的事件。 * @param {string} type 事件类型。 * @param {any} data? 事件数据。 * @returns void */ dispatchEvent(type: string, data?: any): void; /** * 派发一个指定参数的事件。 * @param {EventArgs} eventArgs 事件参数实例。 * @returns void */ dispatchEvent(args: EventArgs): void; } } declare namespace flagwind { /** * 功能图层包装类 * * @export * @class FlagwindFeatureLayer */ abstract class FlagwindFeatureLayer extends EventProvider implements IFlagwindSingleLayer { id: string; title: string | null; protected layer: any; isShow: boolean; constructor(id: string, title: string | null); readonly graphics: Array<FlagwindGraphic>; readonly items: Array<any>; readonly count: number; appendTo(map: any): void; removeLayer(map: any): void; clear(): void; show(): void; hide(): void; /** * 获取指定id的地图要素对象 */ getGraphicById(id: string): any; /** * 删除指定id的地图要素对象 */ removeGraphicById(id: string): void; /** * 为指定的事件类型注册一个侦听器,以使侦听器能够接收事件通知。 * @summary 如果不再需要某个事件侦听器,可调用 removeListener() 删除它,否则会产生内存问题。 * 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。 * @param {string} type 事件类型。 * @param {Function} 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @param {boolean} once? 是否添加仅回调一次的事件侦听器,如果此参数设为 true 则在第一次回调时就自动移除监听。 * @returns void */ on(type: string, listener: Function, scope?: any, once?: boolean): void; /** * 移除侦听器。如果没有注册任何匹配的侦听器,则对此方法的调用没有任何效果。 * @param {string} type 事件类型。 * @param {Function} listener 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @returns void */ off(type: string, listener: Function, scope?: any): void; /** * 创建要素图层 * @param args 创建要素图层的参数 */ abstract onCreateGraphicsLayer(args: any): any; protected add(graphic: FlagwindGraphic): void; protected remove(graphic: FlagwindGraphic): void; } } declare namespace flagwind { const BUSINESS_LAYER_OPTIONS: BusinessLayerOptions; /** * 业务图层 */ abstract class FlagwindBusinessLayer extends FlagwindFeatureLayer { flagwindMap: FlagwindMap; id: string; layerType: string; isLoading: boolean; options: BusinessLayerOptions; constructor(flagwindMap: FlagwindMap, id: string, options: any); /** * 地图原生对象 */ readonly map: any; /** * 空间坐标系 */ readonly spatial: any; /** * 根据对象集合构造要素集合(无则新增,有则修改) * @param dataList 对象集合 */ saveGraphicList(dataList: Array<any>): void; /** * 根据对象集合修改要素集合(无则忽略) * @param dataList 对象集合 */ updateGraphicList(dataList: Array<any>): void; /** * 根据对象集合新增要素集合 * @param dataList 对象集合 */ addGraphicList(dataList: Array<any>): void; /** * 保存要素(有则修改,无则增加) * @param item 原始要素模型 */ protected saveGraphicByModel(item: any): void; /** * 创建并增加要素 */ protected addGraphicByModel(item: any): void; /** * 创建要素(未添加至图层中),请方法在flagwind包下可见 */ creatGraphicByModel(item: any): FlagwindGraphic; /** * 修改要素 */ protected updateGraphicByModel(item: any, graphic?: any | null): void; /** * 清除选择状态 */ clearSelectStatus(): void; /** * 设置选择状态 * @param dataList 要素模型集合 * @param refresh 是否刷新(为true是时,把所有的要素还原再设置;否则,之前的状态保留,然后再追加) */ setSelectStatusByModels(dataList: Array<any>, refresh: boolean): void; /** * 获取所有选中的要素 */ getSelectedGraphics(): Array<FlagwindGraphic>; /** * 设置选中状态 * @param item 要素原型 * @param selected 是否选中 */ protected setSelectStatus(item: any, selected: boolean): void; /** * 创建点要素(把业务数据的坐标转换成地图上的点) */ getPoint(item: any): FlagwindPoint; /** * 把地图上的点转换成业务的坐标 * @param {*} point */ formPoint(point: any): { latitude: number; longitude: number; }; /** * 在指定id的graphic上打开InfoWindow * @param id grahpic的唯一标识 * @param context 内容 * @param options 参数 */ openInfoWindow(id: string, context: any, options: any): void; /** * 关闭信息窗口 */ closeInfoWindow(): void; /** * 定位至指定id的点 * @param id */ gotoCenterById(id: string): void; /** * 增加到地图上 */ addToMap(): void; /** * 从地图移除 */ removeFromMap(): void; /** * 显示InfoWindow(在flagwind包下可用,对外不要调用此方法) * @param args */ showInfoWindow(evt: { graphic: FlagwindGraphic; }): void; /** * 加载并显示设备点位 * */ showDataList(): Promise<void>; /** * 开启定时器 */ start(): void; /** * 关闭定时器 */ stop(): void; /** * 更新设备状态 */ updateStatus(): void; protected onGetInfoWindowContext(item: any): any; protected onInit(): void; protected onAddLayerBefor(): void; protected onAddLayerAfter(): void; protected onLoad(): void; protected onMapLoad(): void; protected registerEvent(): void; protected onLayerClick(deviceLayer: this, evt: any): void; protected fireEvent(eventName: string, event: any): void; protected onValidModel(item: any): any; /** * 变换成标准实体 * * @protected * @param {*} item * @returns {{ id: String, name: String, longitude: number, latitude: number }} * @memberof FlagwindBusinessLayer */ protected onChangeStandardModel(item: any): any; /** * 创建要素 * @param item */ protected abstract onCreatGraphicByModel(item: any): FlagwindGraphic; /** * 修改要素 * @param item */ protected abstract onUpdateGraphicByModel(item: any): void; } } declare namespace flagwind { const ESRI_CLUSTER_LAYER_OPTIONS: any; /** * 点图层 */ class EsriClusterLayer extends FlagwindBusinessLayer { private dataManager; constructor(flagwindMap: FlagwindMap, id: string, options: any); onCreateGraphicsLayer(args: any): any; createClusterLayer(options: any): any; addClusters(): void; getPreClusteredGraphics(): void; getImageUrl(item: any): string; readonly enableCluster: boolean; readonly singles: any; readonly clusters: any; readonly graphics: Array<FlagwindGraphic>; saveGraphicList(dataList: Array<any>): void; addGraphicList(dataList: Array<any>): void; /** * 根据对象集合修改要素集合(无则忽略) * @param dataList 对象集合 */ updateGraphicList(dataList: Array<any>): void; /** * 创建要素方法 * @param item 实体信息 */ onCreatGraphicByModel(item: any): any; /** * 更新要素方法 * @param item 实体信息 */ onUpdateGraphicByModel(item: any): void; protected add(graphic: FlagwindGraphic): void; protected remove(graphic: FlagwindGraphic): void; } } declare namespace flagwind { /** * 支持的地图类型 */ enum MapType { arcgis = "arcgis", minemap = "minemap", } /** * 地图参数 */ const MAP_OPTIONS: { onMapLoad(): void; onZoomStart(level: number): void; onZoom(level: number): void; onZoomEnd(level: number): void; onMapClick(evt: any): void; formPoint(lat: number, lon: number): { lat: number; lon: number; }; toPoint(lat: number, lon: number): { lat: number; lon: number; }; }; abstract class FlagwindMap extends EventProvider { mapSetting: IMapSetting; mapElement: any; featureLayers: Array<FlagwindFeatureLayer>; baseLayers: Array<FlagwindTiledLayer>; options: any; spatial: any; innerMap: any; loaded: boolean; constructor(mapSetting: IMapSetting, mapElement: any, options: any); /** * 坐标点转换成对象 * @param point 点 */ onFormPoint(point: any): { latitude: number; longitude: number; }; /** * 对象转换成点 * @param item 要素原型 */ onToPoint(item: any): FlagwindPoint; validGeometryModel(item: any): any; /** * 为指定的事件类型注册一个侦听器,以使侦听器能够接收事件通知。 * @summary 如果不再需要某个事件侦听器,可调用 removeListener() 删除它,否则会产生内存问题。 * 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。 * @param {string} type 事件类型。 * @param {Function} 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @param {boolean} once? 是否添加仅回调一次的事件侦听器,如果此参数设为 true 则在第一次回调时就自动移除监听。 * @returns void */ on(type: string, listener: Function, scope?: any, once?: boolean): void; /** * 移除侦听器。如果没有注册任何匹配的侦听器,则对此方法的调用没有任何效果。 * @param {string} type 事件类型。 * @param {Function} listener 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @returns void */ off(type: string, listener: Function, scope?: any): void; readonly map: any; /** * 关闭信息窗口 */ closeInfoWindow(): void; /** * 中心定位 */ centerAt(): Promise<void>; centerAt(xy: Array<number>): Promise<void>; centerAt(x: number, y: number): Promise<void>; /** * 放大或缩小到指挥zoom级别 * @param zoom */ setZoom(zoom: number): Promise<void>; /** * 创建几何点 */ getPoint(item: any): FlagwindPoint; /** * 根据id查找底图 * @param id 底图id */ getBaseLayerById(id: string): FlagwindTiledLayer | null; /** * 显示所有底图 */ showBaseLayers(): void; /** * 隐藏所有底图 */ hideBaseLayers(): void; /** * 显示指定id的底图 * @param id */ showBaseLayer(id: string): boolean; /** * 隐藏指定id的底图 * @param id */ hideBaseLayer(id: string): boolean; /** * 销毁对象 */ destroy(): void; /** * 获取指定id的功能图层 * @param id */ getFeatureLayerById(id: string): FlagwindFeatureLayer | null; /** * 增加功能图层 * @param featureLayer */ addFeatureLayer(featureLayer: FlagwindFeatureLayer): void; /** * 移除指定id的功能图层 * @param id 图层id */ removeFeatureLayer(id: string): boolean; /** * 显示指定id的功能图层 * @param id */ showFeatureLayer(id: string): boolean; /** * 隐藏指定id的功能图层 * @param id */ hideFeatureLayer(id: string): boolean; /** * 中心定位 * @param point 点 */ abstract onCenterAt(point: FlagwindPoint): Promise<void>; /** * 放大或缩小至指定的级别 * @param zoom 级别 */ abstract onZoom(zoom: number): Promise<void>; abstract toScreen(item: any): { x: number; y: number; }; abstract toScreen(x: number, y: number): { x: number; y: number; }; /** * 创建要素点 * @param point 点 */ abstract onCreatePoint(item: any): FlagwindPoint; /** * 创建地图对象 */ abstract onCreateMap(): any; /** * 显示信息窗口 * @param event 信息窗口构建参数 */ abstract onShowInfoWindow(event: InfoWindowShowEventArgs): void; /** * 关闭信息窗口 */ abstract onCloseInfoWindow(): void; /** * 创建底图 */ abstract onCreateBaseLayers(): Array<FlagwindTiledLayer>; /** * 显示要素tooltip信息 * @param graphic 要显示tootip信息的要素 */ abstract onShowTooltip(graphic: FlagwindGraphic): void; /** * 隐藏要素tooltip信息 */ abstract onHideTooltip(): void; abstract onDestroy(): void; protected onInit(): void; /** * 地图加载回调 */ protected onMapLoad(): void; } } declare namespace flagwind { /** * 对ArcGIS右键菜单实现 */ class EsriContextMenu implements FlagwindContextMenu { flagwindMap: EsriMap; enabled: boolean; point: FlagwindPoint; menu: any; constructor(flagwindMap: EsriMap); startup(eventArgs: ContextMenuEventArgs): void; enable(): void; disable(): void; /** * 获取菜单单击的坐标信息 */ getMapPointFromMenuPosition(box: any, map: any): FlagwindPoint; } } declare let esri: any; declare let dojo: any; declare let dijit: any; declare let HeatmapLayer: any; declare namespace flagwind { class EsriEditLayer extends FlagwindFeatureLayer implements IFlagwindEditLayer { private graphic; private originInfo; editObj: any; options: any; businessLayer: FlagwindBusinessLayer; flagwindMap: FlagwindMap; constructor(businessLayer: FlagwindBusinessLayer, options: any); /** * 激活编辑事件 * @param key 要编辑要素的id */ activateEdit(key: string): void; /** * 取消编辑要素 */ cancelEdit(key: string): void; onLoad(): void; readonly map: any; readonly spatial: any; onCreateGraphicsLayer(args: any): any; onChanged(options: any, isSave: boolean): Promise<boolean>; showInfoWindow(): void; confirm(key: string): void; protected registerEvent(): void; protected onLayerClick(editLayer: this, evt: any): void; } } declare namespace flagwind { /** * 分组图层(用于需要多个要素叠加效果情况) * * @export * @class FlagwindGroupLayer */ abstract class FlagwindGroupLayer extends EventProvider implements IFlagwindSingleLayer { options: any; layer: any; isShow: boolean; constructor(options: any); readonly graphics: Array<any>; appendTo(map: any): void; removeLayer(map: any): void; clear(): void; show(): void; hide(): void; setGeometry(name: string, geometry: any): void; setSymbol(name: string, symbol: any): void; showGraphic(name: string): void; hideGraphic(name: string): void; addGraphic(name: string, ...graphics: Array<any>): void; getMasterGraphicByName(name: string): any; /** * 获取资源要素点 */ getGraphicByName(name: String): Array<any>; /** * 删除资源要素点 */ removeGraphicByName(name: string): void; /** * 为指定的事件类型注册一个侦听器,以使侦听器能够接收事件通知。 * @summary 如果不再需要某个事件侦听器,可调用 removeListener() 删除它,否则会产生内存问题。 * 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。 * @param {string} type 事件类型。 * @param {Function} 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @param {boolean} once? 是否添加仅回调一次的事件侦听器,如果此参数设为 true 则在第一次回调时就自动移除监听。 * @returns void */ on(type: string, listener: Function, scope?: any, once?: boolean): void; /** * 移除侦听器。如果没有注册任何匹配的侦听器,则对此方法的调用没有任何效果。 * @param {string} type 事件类型。 * @param {Function} listener 处理事件的侦听器函数。 * @param {any} scope? 侦听函数绑定的 this 对象。 * @returns void */ off(type: string, listener: Function, scope?: any): void; abstract onCreateGraphicsLayer(options: any): any; } } declare namespace flagwind { class EsriGroupLayer extends FlagwindGroupLayer { onCreateGraphicsLayer(args: any): any; } } declare namespace flagwind { class EsriHeatmapLayer implements IFlagwindHeatmapLayer { flagwindMap: FlagwindMap; private dataMap; private map; heatLayer: any; isShow: boolean; id: string; options: any; heatmapRenderer: any; constructor(flagwindMap: FlagwindMap, id: string, options: any); createHeatLayer(): any; appendTo(map: any): void; removeLayer(map: any): void; resize(): void; clear(): void; show(): void; hide(): void; setMaxPixelIntensity(value: number): void; showDataList(data: Array<any>): void; onChangeStandardModel(data: Array<any>): Array<any>; } } declare namespace flagwind { class EsriLocationLayer extends FlagwindFeatureLayer implements IFlagwindLocationLayer { flagwindMap: FlagwindMap; options: any; point: any; constructor(flagwindMap: FlagwindMap, options: any); registerEvent(): void; onCreateGraphicsLayer(options: any): any; locate(): void; protected getFillSymbol(width: number, color: any): any; protected createSymbol(path: any, color: any): any; protected createGraphic(pt: any): any; } } declare namespace flagwind { /** * 对ArcGIS地图封装 */ class EsriMap extends FlagwindMap { mapSetting: EsriSetting; protected tooltipElement: HTMLDivElement; constructor(mapSetting: EsriSetting, mapElement: any, options: any); onAddEventListener(eventName: string, callBack: Function): void; onCenterAt(point: any): Promise<void>; onCreatePoint(options: any): any; onCreateMap(): void; onShowInfoWindow(evt: InfoWindowShowEventArgs): void; onCloseInfoWindow(): void; onCreateBaseLayers(): Array<FlagwindTiledLayer>; toScreen(item: any): { x: number; y: number; }; toScreen(x: number, y: number): { x: number; y: number; }; onZoom(zoom: number): Promise<void>; onShowTooltip(graphic: any): void; onHideTooltip(): void; onDestroy(): void; } } declare namespace flagwind { const ESRI_POINT_LAYER_OPTIONS: any; /** * 点图层 */ class EsriPointLayer extends FlagwindBusinessLayer { constructor(flagwindMap: FlagwindMap, id: string, options: any); onCreateGraphicsLayer(options: any): any; getImageUrl(item: any): string; /** * 创建要素方法 * @param item 实体信息 */ onCreatGraphicByModel(item: any): any; /** * 更新要素方法 * @param item 实体信息 */ onUpdateGraphicByModel(item: any): void; } } declare namespace flagwind { const ESRI_POLYGON_LAYER_OPTIONS: any; /** * 面图层 */ class EsriPolygonLayer extends FlagwindBusinessLayer { constructor(flagwindMap: FlagwindMap, id: string, options: any); onCreateGraphicsLayer(options: any): any; /** * 创建要素方法 * @param item 实体信息 */ onCreatGraphicByModel(item: any): any; /** * 更新要素方法 * @param item 实体信息 */ onUpdateGraphicByModel(item: any): void; protected getPolygon(strLine: string): any; protected getFillSymbol(symbol: any): any; } } declare namespace flagwind { const ESRI_POLYLINE_LAYER_OPTIONS: any; /** * 线图层 */ class EsriPolylineLayer extends FlagwindBusinessLayer { constructor(flagwindMap: FlagwindMap, id: string, options: any); onCreateGraphicsLayer(options: any): any; /** * 创建要素方法 * @param item 实体信息 */ onCreatGraphicByModel(item: any): any; /** * 更新要素方法 * @param item 实体信息 */ onUpdateGraphicByModel(item: any): void; setSelectStatus(item: any, selected: boolean): void; protected getLineSymbol(symbol: any): any; /** * 把点集字符串转换成线要素 * @param strLine 坐标点字符串"x1,y1;x2,y2;x3,y3" */ protected getPolyline(strLine: string): any; } } declare namespace flagwind { const ROUTE_LAYER_OPTIONS: any; const TRACKLINE_OPTIONS: any; abstract class FlagwindRouteLayer implements IFlagwindCombineLayer { flagwindMap: FlagwindMap; layerName: string; options: any; isShow: boolean; moveLineLayer: FlagwindGroupLayer; moveMarkLayer: FlagwindGroupLayer; trackLines: Array<TrackLine>; activedTrackLineName: string; readonly spatial: any; constructor(flagwindMap: FlagwindMap, layerName: string, options: any); /** * 创建线路图层 * @param id 图层唯一标识 */ abstract onCreateLineLayer(id: string): FlagwindGroupLayer; /** * 创建移动要素图层 * @param id 图层唯一标识 */ abstract onCreateMovingLayer(id: string): FlagwindGroupLayer; /** * 判断要素是否在同一位置 * @param originGraphic 原始坐标要素 * @param targetGraphic 修改后的要素 */ abstract onEqualGraphic(originGraphic: FlagwindGraphic, targetGraphic: FlagwindGraphic): boolean; /** * 在地图显示线路上的路段 * @param segment 路段 */ abstract onShowSegmentLine(segment: TrackSegment): void; /** * 构建标准的停靠点 * @param name 线路名 * @param stops 原始停靠点 */ abstract onGetStandardStops(name: String, stops: Array<any>): Array<any>; /** * 设置路段用几何线 * @param options 路段参数 * @param segment 路段 */ abstract onSetSegmentByLine(options: any, segment: TrackSegment): any; /** * 设置路段用几何点集合 * @param options 路段参数 * @param segment 路段 */ abstract onSetSegmentByPoint(options: any, segment: TrackSegment): any; /** * 由网络分析服务来求解轨迹 * * @param {TrackSegment} segment 要播放的路段 * @param {*} start 起点要素 * @param {*} end 终点要素 * @param {any[]} [waypoints] 途经要素点 * @memberof flagwindRoute */ abstract onSolveByService(segment: TrackSegment, start: any, end: any, waypoints: Array<any>): void; /** * 由连线求解轨迹 * @param segment */ abstract onSolveByJoinPoint(segment: TrackSegment): void; /** * 创建移动要素 * @param {*} trackline 线路 * @param {*} graphic 停靠点要素 * @param {*} angle 偏转角 */ abstract onCreateMoveMark(trackline: TrackLine, graphic: FlagwindGraphic, angle: number): void; /** * 修改移动要素 * @param trackline 线路 * @param point 位置 * @param angle 角度 */ abstract onUpdateMoveGraphic(trackline: TrackLine, point: FlagwindPoint, angle: number): void; /** * 显示图层 */ show(): void; /** * 隐藏图层 */ hide(): void; /** * 清除所有 */ clearAll(): void; /** * 清除指定的线路名的路径和移动要素 * @param name 线路名称 */ clear(name?: string): void; /** * 清除指定的线路名的线路 * @param name 线路名称 */ clearLine(name: string): void; /** * 获取指定名称的线路 * @param name 指定名称 */ getTrackLine(name: string): TrackLine | null; /** * 向指定线路中增加路段 * @param name 线路名 * @param segment 路段 * @param lineOptions 线路参数 */ addTrackSegment(name: string, segment: TrackSegment, lineOptions: any): void; /** * 计算线路的下一个路段索引 * @param name 线路名 */ getNextSegmentIndex(name: string): number; /** * 获取线路的下一路段 * @param name 线路名称 * @param index 路段索引 */ getNextSegment(name: string, index: number): TrackSegment; /** * 获取线路中的最后一路段 * @param name 线路名称 */ getLastSegment(name: string): TrackSegment; /** * 获取监控最近播放完成的路段线路 * @param name 线路名称 */ getActiveCompletedSegment(name: string): TrackSegment; /** * 判断线路是否在运行 * @param name 线路名称 */ getIsRunning(name: string): boolean; /** * 停止指定线路移动要素播放 * @param name 线路名称 */ stop(name?: string): void; /** * 停止所有线路移动要素播放 */ stopAll(): void; /** * 启动线路播放(起点为上次播放的终点) */ move(name: string): void; /** * 启动线路播放(起点为线路的始点) */ start(name: string): void; /** * 暂停 */ pause(name: string): void; /** * 继续 */ continue(name: string): void; /** * 调速 */ changeSpeed(name: string, speed: number): void; /** * 加速 * @param name 线路名称 */ speedUp(name: string): string; /** * 减速 * @param name 线路名称 */ speedDown(name: string): string; /** * 求解最短路径(与solveLine不同,它求解的是一个路段,该路段起点为stops[0],终点为stops[stops.length-1] * * @param {any} name 线路名称 * @param {any} stops 经过的站点 * @param {any} options 可选参数 */ solveSegment(name: string, stops: Array<any>, options: any): void; /** * 求解最短路径(根据stops数量设置多个多个路段,相连的两点组成一个路段) * * @param {any} name 线路名称 * @param {any} stops 经过的站点 * @param {any} options 可选参数 */ solveLine(name: string, stops: Array<any>, options: any): void; /** * 发送路由请求 * @ index:路段索引 * @ name:线路名称 * @ start:开始要素 * @ end:终点要素 * @ lineOptions:线路控制的参数 * @ waypoints:经过的点 */ protected post(index: number, name: string, start: any, end: any, lineOptions: any, waypoints?: Array<any>): void; /** * 路由分析完成回调 */ protected solveComplete(options: { polyline: any; length: number; }, segment: TrackSegment): void; /** * 路由分析失败回调 */ protected errorHandler(err: any, segment: TrackSegment): void; /** * 线段创建完成事件回调 * @param {*} segment */ protected onCreateSegmentComplete(segment: TrackSegment): void; /** * * 显示路段事件 * * @protected * @memberof flagwindRoute */ protected onShowSegmentLineEvent(flagwindRoute: this, segment: TrackSegment, trackSegmentOptions: any): void; /** * 线段播放开始事故 */ protected onMoveStartEvent(flagwindRoute: this, segment: TrackSegment, graphic: any, angle: number): void; /** * 线段播放完成事件 */ protected onMoveEndEvent(flagwindRoute: this, segment: TrackSegment, graphic: any, angle: number): void; /** * 移动回调事件 */ protected onMoveEvent(flagwindRoute: this, segment: TrackSegment, xy: any, angle: number): void; protected onAddLayerBefor(): void; protected onAddLayerAfter(): void; protected onLoad(): void; /** * 检测地图设置,防止图层未加载到地图上 */ protected checkMapSetting(): void; /** * 标准化停靠点模型 * @param item 原始模型 */ protected changeStandardModel(item: any): any; /** * 验证停靠点模型 * @param item 原始模型 */ protected validGeometryModel(item: any): any; } } declare namespace flagwind { class EsriRouteLayer extends FlagwindRouteLayer { moveLineLayer: FlagwindGroupLayer; moveMarkLayer: FlagwindGroupLayer; trackLines: Array<TrackLine>; onSetSegmentByLine(options: any, segment: TrackSegment): void; onSetSegmentByPoint(options: any, segment: TrackSegment): void; onShowSegmentLine(segment: TrackSegment): void; onCreateMoveMark(trackline: TrackLine, graphic: any, angle: number): void; /** * 每次位置移动线路上的要素样式变换操作 */ onUpdateMoveGraphic(trackline: TrackLine, point: any, angle: number): void; getImageUrl(trackline: TrackLine, angle: number): any; getImageAngle(trackline: TrackLine, angle: number): any; onCreateLineLayer(id: string): FlagwindGroupLayer; onCreateMovingLayer(id: string): FlagwindGroupLayer; onEqualGraphic(originGraphic: any, targetGraphic: any): boolean; onGetStandardStops(name: String, stops: Array<any>): Array<any>; onSolveByService(segment: TrackSegment, start: any, end: any, waypoints: Array<any>): void; onSolveByJoinPoint(segment: TrackSegment): void; onAddEventListener(groupLayer: FlagwindGroupLayer, eventName: string, callBack: Function): void; getSpatialReferenceFormNA(): any; protected cloneStopGraphic(graphic: any): any; } } declare namespace flagwind { const SELECT_BOX_OPTIONS_ESRI: any; /** * 地图选择组件 */ class EsriSelectBox extends EventProvider implements IFlagwindSelectBox { flagwindMap: FlagwindMap; private draw; element: HTMLDivElement; options: SelectBoxOptions; mode: string; isActive: boolean; id: string; layers: Array<FlagwindBusinessLayer>; constructor(flagwindMap: FlagwindMap, options: any); onCreateRecord(me: this, e: any): void; getLayerById(id: string): FlagwindBusinessLayer; addLayer(layer: FlagwindBusinessLayer): void; removeLayer(layer: FlagwindBusinessLayer): void; show(): void; hide(): void; deleteSelectBar(): void; showSelectBar(): void; clear(): void; active(mode: string): void; destroy(): void; } } declare namespace flagwind { /** * 底图包装类 * * @export * @class FlagwindTiledLayer */ abstract class FlagwindTiledLayer implements IFlagwindSingleLayer { id: string; url: string | null; spatial: any; title: string | null; layer: any; isShow: boolean; constructor(id: string, url: string | null, spatial: any, title: string | null); abstract onCreateTiledLayer(args: any): any; appendTo(map: any): void; removeLayer(map: any): void; show(): void; hide(): void; } } declare namespace flagwind { class EsriTiledLayer extends FlagwindTiledLayer { onCreateTiledLayer(args: any): any; } } declare namespace flagwind { const TRACK_LAYER_OPTIONS: any; class FlagwindTrackLayer implements IFlagwindCombineLayer { businessLayer: FlagwindBusinessLayer; routeLayer: FlagwindRouteLayer; options: any; private _trackToolBox; private _playButton; private _pauseButton; private _speedUpButton; private _speedDownButton; private _clearButton; private _toolBoxText; activedTrackLineName: string; isShow: boolean; id: string; constructor(businessLayer: FlagwindBusinessLayer, routeLayer: FlagwindRouteLayer, options: any); readonly toolBoxId: string; readonly flagwindMap: FlagwindMap; /** * 移动要素是否正在跑 */ readonly isRunning: boolean; /** * 移动要素是否跑完 */ readonly isCompleted: boolean; /** * 移动要素是否隐藏 */ readonly isMovingGraphicHide: boolean; readonly trackLine: TrackLine; /** * 删除播放控件 */ deleteTrackToolBox(): void; /** * 显示播放控件 */ showTrackToolBox(): void; /** * 显示轨迹线路(不播放) * @param stopList 停靠点原型数据集合 * @param trackLineName 线路名称 * @param options 轨迹构建参数 */ showTrack(stopList: Array<any>, trackLineName?: string, options?: any): void; /** * 启动线路播放(起点为线路的始点) * @param stopList 停靠点原型数据集合 * @param trackLineName 线路名称 * @param options 轨迹构建参数 */ startTrack(stopList: Array<any>, trackLineName?: string, options?: any): void; /** * 启动线路播放(起点为上次播放的终点) * @param stopList 停靠点原型数据集合 * @param trackLineName 线路名称 */ moveTrack(stopList: Array<any>, trackLineName?: string): void; /** * 显示所有 */ clearAll(): void; /** * 清除要素 */ clear(): void; /** * 显示图层 */ show(): void; /** * 隐藏图层 */ hide(): void; /** * 继续上次播放 */ move(): void; /** * 重新播放 */ start(): void; /** * 停止 */ stop(): void; /** * 暂停 */ pause(): void; /** * 继续 */ continue(): void; up(): string; down(): string; /** * 加速 */ speedUp(): string; /** * 减速 */ speedDown(): string; /** * 调速 */ changeSpeed(speed: number): void; /** * 切换线路 * @param name 线路名称 */ changeTrackLine(name: string): void; } } declare namespace flagwind { /** * 车辆路由服务 */ class EsriTrackLayer extends FlagwindTrackLayer { businessLayer: FlagwindBusinessLayer; constructor(businessLayer: FlagwindBusinessLayer, options: any); } } declare namespace flagwind { const DRAW_LAYER_OPTIONS: { onDrawCompleteEvent: (geometry: any) => void; }; /** * 绘画 */ interface IFlagwindDraw { activate(mode: string, options?: any): void; finish(): void; } } declare namespace flagwind { /** * 绘制图层 */ class EsriDraw implements IFlagwindDraw { private symbolSetting; flagwindMap: FlagwindMap; draw: any; mode: any; options: any; constructor(flagwindMap: FlagwindMap, options?: any); activate(mode: string, options?: any): void; finish(): void; private setSymbol(mode, options); private onDrawComplete(evt); private readonly lineSymbol; private readonly fillSymbol; } } declare namespace flagwind { class EsriSetting implements IMapSetting { arcgisApi: string; baseUrl: string; tiledUrls: Array<{ id: string; url: string; title: string; }>; wkid: number; routeUrl: string; extent: Array<number>; basemap: string; units: number; center: Array<number>; wkidFromApp: number; minZoom: number; maxZoom: number; zoom: number; logo: boolean; slider: boolean; sliderPosition: string; } } declare namespace flagwind { /** * 组合类型图层 * * @export * @class IFlagwindCombineLayer */ interface IFlagwindCombineLayer extends IFlagwindLayer { clearAll(): void; } } declare namespace flagwind { const EDIT_LAYER_OPTIONS: any; interface IFlagwindEditLayer extends IFlagwindSingleLayer { businessLayer: FlagwindBusinessLayer; /** * 激活编辑事件 * @param key 要编辑要素的id */ activateEdit(key: string): void; /** * 取消编辑要素 */ cancelEdit(key: string): void; onChanged(item: any, isSave: boolean): Promise<boolean>; } } declare namespace flagwind { interface HeatmapPoint { longitude: number; latitude: number; count: number; members: Array<any>; } const HEATMAP_LAYER_OPTIONS: { changeStandardModel: (data: any) => { longitude: any; latitude: any; }; }; /** * 热力图 */ interface IFlagwindHeatmapLayer extends IFlagwindSingleLayer { clear(): void; show(): void; hide(): void; resize(): void; showDataList(items: Array<any>, changeExtent: boolean): void; } } declare namespace flagwind { const LOCATION_LAYER_OPTIONS: { onMapClick: (evt: any) => void; }; interface IFlagwindLocationLayer extends IFlagwindSingleLayer { point: any; clear(): void; locate(): void; } } declare namespace flagwind { interface SelectBoxOptions { selectMode: number; onDrawStart: () => void; onDrawEnd: () => void; onCheckChanged: (checkItems: Array<any>, layer: FlagwindBusinessLayer) => void; } /** * 地图选择工具 */ interface IFlagwindSelectBox { isActive: boolean; layers: Array<FlagwindBusinessLayer>; active(mode: string): void; showSelectBar(): void; deleteSelectBar(): void; getLayerById(id: string): FlagwindBusinessLayer; deleteSelectBar(): void; addLayer(layer: FlagwindBusinessLayer): void; removeLayer(layer: FlagwindBusinessLayer): void; show(): void; hide(): void; clear(): void; destroy(): void; } } declare namespace flagwind { /** * 单类型图层 * * @export * @class IFlagwindSingleLayer */ interface IFlagwindSingleLayer extends IFlagwindLayer { appendTo(map: any): void; removeLayer(map: any): void; } } declare namespace flagwind { /** * 底图包装类 * * @export * @class FlagwindTiledLayer */ interface IFlagwindLayer { isShow: boolean; show(): void; hide(): void; } } declare namespace flagwind { interface BusinessLayerOptions { autoInit: boolean; symbol: any; timeout: number; enableEdit: boolean; selectMode: number; showTooltip: boolean; showInfoWindow: boolean; dataType: String; changeStandardModel(model: any): void; getInfoWindowContext(mode: any): any; getDataList(): Promise<Array<any>>; getLastStatus(): Promise<Array<any>>; onLayerClick(evt: any): void; onMapLoad(): void; onEvent(eventName: string, evt: any): void; onCheckChanged(evt: { target: Array<any>; check: boolean; selectedItems: Array<any>; }): void; showInfoWindowCompleted(model: any): void; onPositionChanged(currentPoint: any, originPoint: any, item: any): void; onVisibleChanged(isShow: boolean): void; } const TRACKSEGMENT_OPTIONS: { speed: number; maxSpeed: number; numsOfKilometer: number; autoShowLine: boolean; onShowSegmentLineEvent(segment: TrackSegment): void; onMoveStartEvent(target: any, startGraphic: any, angle: number): void; onMoveEndEvent(target: any, endGraphic: any, angle: number): void; onMoveEvent(target: any, point: any, angle: number): void; }; /** * 地图图形要素 */ interface FlagwindGraphic { attributes: any; geometry: any; symbol: any; show(): void; hide(): void; setAngle(angle: number): void; setSymbol(symbol: any): void; setGeometry(geometry: any): void; } interface FlagwindContextMenu { enabled: boolean; startup(eventArgs: ContextMenuEventArgs): void; enable(): void; disable(): void; } /** * 地图右键菜单创建事件参数 */ interface ContextMenuEventArgs { menus: Array<any>; onClick: Function; } /** * 地图点类型定义 */ interface FlagwindPoint { x: number; y: number; spatial: any; } /** * 地图打开事件参数 */ interface InfoWindowShowEventArgs { graphic: any; context: { type: string; title: any; content: any; }; options?: any; } enum SelectMode { none = 0, single = 1, multiple = 2, } enum LayerType { point = "point", polyline = "polyline", polygon = "polygon", } /** * 对轨迹播放中线路的路段的定义 * * @export * @class TrackSegment */ class TrackSegment { flagwindRouteLayer: FlagwindRouteLayer; index: number; name: string; startGraphic: FlagwindGraphic; endGraphic: FlagwindGraphic; options: any; timer: any; /** * 移动要素在该路段点集合的位置 */ position: number; /** * 线段长度 */ length: number | null; /** * 线段速度 */ speed: number | null; /** * 是否播放完成 */ isCompleted: boolean; /** * 是否正在运行 */ isRunning: boolean; /** * 线路点集合 */ line: Array<any>; /** * 几何线 */ polyline: any | null; /** * 定时器时间(ms) */ time: number; /** * 要素线(由外部使用) * * @type {*} * @memberof TrackSegment */ lineGraphic: any; /** * * 途经的点 * * @type {any[]} * @memberof TrackSegment */ waypoints: Array<any>; constructor(flagwindRouteLayer: FlagwindRouteLayer, index: number, name: string, startGraphic: FlagwindGraphic, endGraphic: FlagwindGraphic, options: any); /** * 设置拆线 * @param polyline 几何拆线 * @param length 线的长度 */ setPolyLine(polyline: any, length: number): void; /** * 设置直线 * @param points 几何点集 */ setMultPoints(points: Array<any>): void; /** * 变换速度 * @param speed 速度值 */ changeSpeed(speed?: number | null): void; /** * 播放移动要素(起点为上次终点) */ move(): void; /** * 播放移动要素(起点为路段的始点) */ start(): boolean; /** * 当定时器为空,且运行状态为true时表示是暂停 */ readonly isPaused: boolean; /** * 暂停 */ pause(): void; /** * 停止 */ stop(): void; /** * 重置 */ reset(): void; } /** * 对轨迹播放中线路的定义(它由多个路段组成) * * @export * @class TrackLine */ class TrackLine { flagwindMap: FlagwindMap; name: string; options: any; /** * 设置线路上移动要素(如:车辆图标) */ markerGraphic: FlagwindGraphic; /** * 路段集合 */ segments: Array<TrackSegment>; /** * 移动要素是否隐藏 */ isMovingGraphicHide: boolean; /** * 当前速度 */ speed: number | null; direction: number | null; step: number | null; constructor(flagwindMap: FlagwindMap, name: string, options: any); /** * 获取监控最近播放完成的路段线路 */ readonly activeCompletedSegment: TrackSegment | null; /** * 计算线路的下一个路段索引 */ readonly nextSegmentIndex: number; /** * 获取最后的一个路段 */ readonly lastSegment: TrackSegment | null; /** * 若有一个路段正在跑,代表该线路是正在运行 */ readonly isRunning: boolean; /** * 当所有的路段完成时,说明线路是跑完状态 */ readonly isCompleted: boolean; /** * 隐藏移动要素 * * @memberof TrackLine */ hideMovingGraphic(): void; /** * 显示移动要素 * * @memberof TrackLine */ showMovingGraphic(): void; /** * 调速 */ changeSpeed(speed: number): void; /** * 增速 */ speedUp(): string; /** * 减速 */ speedDown(): string; /** * 启动线路播放(从第一个路段的起点开始) */ start(): void; /** * 停止线路 */ stop(): void; /** * 重置 */ reset(): void; /** * 暂停 */ pause(): void; /** * 继续(与 暂停 是操作对,只能是在调用了暂停 才可以启用它) */ continue(): void; /** * 移动(起点为上一次的终点,如果之前没有播放过,则从线路的起点开始) */ move(): void; /** * 增加路段 */ add(segment: TrackSegment): void; /** * 获取线路的下一路段 * @param index 路段索引 */ getNextSegment(index: number): TrackSegment | null; /** * 获取线路的指定索引路段 */ getSegment(index: number): TrackSegment | null; } } declare namespace flagwind { interface IMapSetting { wkid: number; extent: Array<number>; units: number; center: Array<number>; wkidFromApp: number; minZoom: number; maxZoom: number; zoom: number; logo: boolean; slider: boolean; sliderPosition: string; } } declare namespace flagwind { class MapUtils { static PI: number; static X_PI: number; /** * 增密 * @param start 始点 * @param end 终点 * @param n 增加的点数 */ static density(start: MinemapPoint, end: MinemapPoint, n: number): (MinemapPoint | { x: number; y: number; })[]; /** * 把一个直线,切成多个点 * @param start 始点