soonspacejs
Version:
soonspacejs 2.x
69 lines (68 loc) • 3.48 kB
TypeScript
import DefaultManage from './DefaultManage';
import { Group, GroupInfo, Topology, Node, TopologyInfo } from '../Library';
import { TopologyInfoForGml, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyNodeInfo, TopologyInnerNodeInfo, Position, TopologyPassableInfo } from '../Interface';
import Viewport from '../Viewport';
import { Dijkstras } from '../Math/dijkstra';
import { DijkstraWorker } from '../Math/dijkstra/DijkstraWorker';
import { ObjectsCache } from '../Cache';
declare class TopologyManage extends DefaultManage {
readonly viewport: Viewport;
readonly cache: ObjectsCache;
dijkstra: Dijkstras;
dijkstraWorker: DijkstraWorker;
constructor(viewport: Viewport, cache: ObjectsCache);
createFromGml(topologyInfoForGml: TopologyInfoForGml): Promise<Topology>;
create(topologyInfo: TopologyInfo): Topology;
/**
* 设置路径 passable
*/
setPassable(topology: Topology, info: TopologyPassableInfo[]): void;
resetNodes(topology: Topology, nodes: TopologyNodeInfo[]): Topology;
createToGroup(groupInfo: GroupInfo, topologyInfos: TopologyInfo[]): Group;
addForGroup(group: Group | null, topologyInfos: TopologyInfo[]): Group | null;
/**
* 计算路径
* @param topology
* @param info
* @returns
*/
protected _getPath(topology: Topology, info: Pick<ShortestPathInfo, 'start' | 'end'>): Node[] | null;
/**
* @todo getPath 重复代码优化
*/
protected _getPathAsync(topology: Topology, info: Pick<ShortestPathInfo, 'start' | 'end'>): Promise<Node[] | null>;
protected _generateNodesInfo(nodes: Node[]): TopologyInnerNodeInfo[];
/**
* 根据两点获取最短路径
* @param topology
* @param info
* @returns
*/
getShortestPath(topology: Topology, info: ShortestPathInfo): Topology | null;
/**
* @todo getShortestPathAsync 重复代码优化
*/
getShortestPathAsync(topology: Topology, info: ShortestPathInfo): Promise<Topology | null>;
/**
* 多起点或多终点最短路径
* @param topology
* @param info
* @param points
* @param point
* @param pointsType
* @returns
*/
protected _getShortestPathByMultiplePoints(topology: Topology, info: ShortestPathByMultipleStartPoints | ShortestPathByMultipleEndPoints, points: Position[], point: Position, pointsType: 'start' | 'end'): Topology | null;
/**
* @todo getShortestPathByMultiplePointsAsync 重复代码优化
*/
protected _getShortestPathByMultiplePointsAsync(topology: Topology, info: ShortestPathByMultipleStartPoints | ShortestPathByMultipleEndPoints, points: Position[], point: Position, pointsType: 'start' | 'end'): Promise<Topology | null>;
getShortestPathByMultipleStartPoints(topology: Topology, info: ShortestPathByMultipleStartPoints): Topology | null;
getShortestPathByMultipleEndPoints(topology: Topology, info: ShortestPathByMultipleEndPoints): Topology | null;
getShortestPathByMultipleStartPointsAsync(topology: Topology, info: ShortestPathByMultipleStartPoints): Promise<Topology | null>;
getShortestPathByMultipleEndPointsAsync(topology: Topology, info: ShortestPathByMultipleEndPoints): Promise<Topology | null>;
private setDijkstraGraph;
private generateLineTopologyInfoNodeGraphs;
dispose(): void;
}
export default TopologyManage;