gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
78 lines (77 loc) • 3.09 kB
TypeScript
import { default as OlMap } from 'ol/Map';
import { IShowOpenDriveFromFileParams } from 'packages/components/src/types';
export default class SumoRenderer {
private map;
private readonly trafficLightImage;
/** 路口点与信号灯点 */
private nodePointSource;
/** 路口面 */
private nodePolygonSource;
/** 路口内连接段车道 */
private connectorLaneSource;
/** 主路车道 */
private polygonLaneSource;
/** 车道导向箭头 */
private laneArrowSource;
/** 车道停止线 */
private stopLineSource;
/** 路口面图层(受 showJunctionPolygon 控制) */
private nodePolygonLayer;
/** 路口点与信号灯点图层(受 showJunctionPoint 控制) */
private nodePointLayer;
/** 箭头图标 canvas 缓存(按箭头类型) */
private readonly arrowCanvasCache;
/** 路口点样式缓存(按 scale 量化后缓存,避免每帧重复创建 Style/Canvas) */
private readonly nodeStyleCache;
/** 信号灯点样式缓存(按 scale 量化后缓存,避免每帧重复创建 Style/Canvas) */
private readonly trafficLightStyleCache;
/** 车道停止线样式缓存(按 color 缓存,避免重复创建 Style) */
private readonly stopLineStyleCache;
constructor(map: OlMap);
private setupLayers;
private getNodeStyle;
/**
* 显示 SUMO 路网数据
* @param params 显示 SUMO 路网数据的参数
* @param params.server 解析 SUMO 文件的后端服务地址
* @param params.file 待解析的 SUMO 文件 URL
* @param params.options 可选,显示选项配置
* @param params.options.showJunctionPolygon 是否显示路口多边形
* @param params.options.showJunctionPoint 可选,是否显示路口点
* @param params.options.showJunctionLane 是否显示路口车道
* @param params.options.showRoadName 是否显示道路名称
* @param params.options.needZoom 可选,是否将地图缩放到显示所有车道,默认 true
* @param params.selectedCallback 可选,要素选中时的回调函数
* @returns 显示结果,包含状态码和消息
*/
showSumoFromFile(params: IShowOpenDriveFromFileParams): Promise<{
status: number;
message: string;
}>;
/**
* 显示 SUMO 节点
* @param nodes
*/
private showNodes;
/**
* 显示 SUMO 边(车道、连接段、转向箭头)
* @param edges
* @returns
*/
private showEdges;
private showStopLines;
/**
* 计算当前缩放级别下的箭头图标 scale:
* zoom<=18 时为 0.035,zoom>=21 时为 0.6,中间线性插值
*/
private getArrowScale;
private getNodeScale;
/** 获取(并按箭头类型缓存)箭头图标 canvas */
private getArrowCanvas;
/**
* 清空 SUMO 渲染结果
* 清空路口点、路口面、连接段车道、车道面图层的所有要素
* 但不清除图层本身,也不清除地图上其他图层的要素
*/
clearSumo(): void;
}