UNPKG

gisviewer-vue3-arcgis

Version:

在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:

78 lines (77 loc) 3.09 kB
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; }