gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
583 lines (582 loc) • 14 kB
TypeScript
/**
* 路口象限,路口中心点为坐标轴原点,正北方向为0°。
* 225° ~ 315°:西象限。
* 315° ~ 45°:北象限。
* 45° ~ 135°:东象限。
* 135° ~ 225°:南象限。
*/
import * as Three from 'three';
export interface IMapInitializerParams {
container: string | HTMLElement;
mapConfig: any;
markerClickCallback?: (type: string, id: string, detail: any, event?: any) => void;
mapClickCallback?: (mapPoint: number[], screenPoint: number[], event?: any) => void;
}
export declare enum QuadrantCode {
West = "1",
North = "2",
East = "3",
South = "4"
}
export interface IResult {
status: number;
message: string;
result?: any;
}
export interface IVehicleTrack {
time?: string;
timestamp: number;
localTimestamp: number;
crossId?: string;
ptcId: string;
vehicleId: string;
x: number;
y: number;
ptcType: number;
vehicleType: number;
heading: number;
vehicleColor: number | string;
plateColor: number;
showName?: string;
state?: string;
fixAngle?: number;
speed?: number;
plateNo?: string;
roadLayer?: string;
step?: number;
}
export interface IVehicleRecord {
model: Three.Mesh | Three.Object3D;
data: IVehicleTrack;
segmentStartTime?: number;
segmentTotalTime?: number;
waitForDelete: boolean;
isMoving: boolean;
currentPos?: number[];
}
export interface ILaneNumberParams {
lanes: {
crossId: string;
laneNumber: string;
stopLineCenter: number[];
laneDirection?: number;
}[];
}
export interface ISetMapCenterParams {
center?: number[];
target?: __esri.GoToTarget2D;
zoom?: number;
duration?: number;
}
export interface ILayerVisibleParams {
id: string;
visible: boolean;
}
export interface ILookAtParams {
center: number[];
height: number;
tilt?: number;
heading?: number;
duration?: number;
}
export interface IStartCrossBufferParam {
crossId: string;
crossCenter: number[];
bufferRadius?: number;
}
export interface IPoint {
type: string;
x: number;
y: number;
z?: number;
}
export interface ILine {
type: string;
paths: number[][][];
}
export interface IPolygon {
type: string;
rings: number[][][];
}
export interface IPointSymbol {
type: string;
style?: string;
url?: string;
width?: number | string;
height?: number | string;
xoffset?: number;
yoffset?: number;
horizontalOrigin?: string;
verticalOrigin?: string;
color?: string;
size?: number;
outline?: {
color?: string | number[];
width?: number;
};
}
export interface ILineSymbol {
type: string;
color?: string | number[];
width?: number;
height?: number;
extrudeHeight?: number;
cornerType?: string;
}
export interface IPolygonSymbol {
type: string;
style?: string;
color?: string | number[];
outline?: {
color?: string | number[];
width?: number;
};
}
export interface IOverlay {
geometry: IPoint | ILine | IPolygon;
id?: string;
visible?: boolean;
symbol?: IPointSymbol | ILineSymbol | IPolygonSymbol;
properties?: any;
}
export interface IMaskParam {
geometry: IPolygon;
maskColor?: number[];
maskSize?: number;
needZoom?: boolean;
}
export interface IOverlayParam {
type?: string;
defaultSymbol?: IPointSymbol | ILineSymbol | IPolygonSymbol;
defaultVisible?: boolean;
overlays: Array<IOverlay>;
needZoom?: boolean;
zIndex?: number;
}
export interface IClusterPointParams {
type?: string;
clusterSymbol?: any;
pointSymbol?: any;
points: IClusterLocation[];
scaleThreshold?: number;
countBackgroundColor?: number[];
countFontColor?: number[];
}
export interface IClusterLocation {
id: string;
x: number;
y: number;
properties?: any;
visited?: boolean;
filtered?: boolean;
clusterId?: number;
symbol?: any;
}
export interface ICluster {
id: number;
items: IClusterLocation[];
count: number;
center: {
x: number;
y: number;
} | null;
}
export interface ISetMapCameraParams {
name: string;
zoom?: number;
duration?: number;
}
export interface IQueueLengthParams {
crossNo: string;
laneId: number;
queueLength: number;
}
export interface IToggleTrafficInfoParams {
name: string;
visible: boolean;
}
export interface ITraceRendererInterface {
init(): Promise<void>;
getLog(): (string | number | undefined)[][];
addVehicles(objects: IVehicleTrack[]): Promise<void>;
updateVehicles(objects: IVehicleTrack[]): Promise<void>;
deleteVehicles(idList: string[]): void;
clearVehicles(): void;
updatePanelContent(contentType: EVehiclePlateState): void;
toggleGroundVehicle(visible: boolean): void;
toggleElevatedVehicle(visible: boolean): void;
toggleTrafficInfo(params: IToggleTrafficInfoParams): void;
togglePause(pause: boolean): void;
setInterpolate(enable: boolean): void;
}
export declare enum EVehiclePlateState {
None = 0,
PlateNumber = 1,
Id = 2,
Mix = 3
}
export interface ILaneInfo {
roadId: string;
sectionId: number;
laneId: number;
}
/** 采样后的车道 */
export interface ISampledLane {
id: number;
type: string;
innerPath: number[][];
outerPath: number[][];
}
/** 采样后的路段 */
export interface ISampledLaneSection {
id: number;
lanePaths: ISampledLane[];
}
/** 采样后的道路 */
export interface ISampledRoad {
id: string;
name: string;
junction: string;
refLine: number[][];
laneSections: ISampledLaneSection[];
}
export interface IRoadLink {
elementId: string;
elementType: string;
contactPoint?: string;
}
export interface IRoadStopLinesResult {
junctionId: string;
stopLines: {
roadId: string;
line: number[][];
}[];
}
export interface IShowOpenDriveFromFileParams {
server: string;
file: string;
options?: {
showJunctionPolygon: boolean;
showJunctionPoint?: boolean;
showJunctionLane: boolean;
showRoadName: boolean;
needZoom?: boolean;
};
selectedCallback?: (info: any) => void;
}
export interface IFindSumoParams {
type: string;
id: string;
flash?: boolean;
}
export interface IUnselectSumoParams {
type: string;
id?: string;
}
export interface ISplitOpenDriveLaneParams {
id: string;
start?: number;
end?: number;
}
export interface IBlockOpenDriveLaneParams {
roadsectId: string;
roadsectBaseId: string;
laneId: string;
}
export interface IJunctionTableData {
id: string;
name: string;
nodeType: string;
type: string;
coordinates: number[];
district: string;
crossId?: string;
factoryCode?: string;
}
export interface ISignalCountdownProps {
flash: boolean;
displayMode: string;
crossId: string;
roadId: string;
mapPoint: number[];
stopLine: number[][];
position: {
left: number;
top: number;
};
rotation: number;
scale: number;
lampStatus: {
uNumber?: number;
uColor?: string;
lNumber?: number;
lColor?: string;
sNumber?: number;
sColor?: string;
rNumber?: number;
rColor?: string;
};
}
export interface IShowSignalControlAreaParams {
areaList: any[];
style?: string;
}
export interface ISignalSubSystem {
subAreaCode: string;
subShape?: number[][][] | string;
nodeSymbol?: any;
roadSymbol?: any;
children?: {
x: number;
y: number;
lat?: number;
lon?: number;
nodeId: string;
nodeName: string;
symbol?: any;
}[];
}
export interface ISignalSystem {
areaCode: string;
areaName: string;
shape: number[][];
lineSymbol?: any;
children: ISignalSubSystem[];
}
export interface IShowSignalSystemParams {
areaList: ISignalSystem[];
}
export interface IShowSubSignalSystemParams {
areaList: ISignalSubSystem[];
}
export interface ISignalCross {
signalId: string;
crossId: string;
name: string;
brand?: string;
isOnline?: boolean;
isMalfunction?: boolean;
x: number;
y: number;
districtId?: string;
subDistrictId?: string;
}
export interface IShowSignalCrossParams {
style: string;
showName: string;
changeStyle?: boolean;
points: ISignalCross[];
}
export interface IDistrictRoad {
id: string;
coordinates: number[][];
districtId: string;
subDistrictId: string;
color?: number[];
}
export interface IFindSignalControlAreaParams {
type: string;
id: string;
needZoom?: boolean;
}
export interface IHighlightSignalControlAreaParams {
areaCode: string;
subAreaCode?: string;
nonHighlightMode?: 'hide' | 'gray';
needZoom?: boolean;
}
export interface INode {
id: string;
longitude: number;
latitude: number;
name: string;
signalId?: string;
coordinates?: number[][];
active?: boolean;
}
export interface IEditSignalControlAreaParams {
crossesInArea: INode[];
addCrossCallback: (params: INode) => void;
removeCrossCallback: (params: {
id: string;
}) => void;
removeAllCrossCallback?: () => void;
odrServer: string;
}
export interface IShowGreenWaveBandParams {
bandId: string;
coordinates: number[][];
nodeList?: INode[];
lineColor?: string | number[];
lineWidth?: number;
arrowColor?: string | number[];
/** 箭头方向,single: 单向,double: 双向,默认为 double */
arrowDirection?: 'single' | 'double';
/** 箭头流动速度,默认为 1,值越大越快 */
animationSpeed?: number;
needZoom?: boolean;
lineOnly?: boolean;
}
export interface IRoadLine {
id: string;
fromNode: string;
toNode: string;
coordinates: number[][];
}
export interface IShowJurisdictionParams {
type: string;
id: string;
}
export interface IShowEdpassDeviceParams {
deviceType: string;
deviceState?: string;
style?: string;
visible: boolean;
zdCode?: string;
ddCode?: string;
}
export interface IStartDrawParams {
geometryType: 'Point' | 'LineString' | 'Polygon' | 'Circle' | 'Rectangle';
callback: (drawResult: any) => void;
style?: any;
}
/**
* 全息流轨迹点数据结构
*/
export interface IHoloTraceData {
crossId: string;
jgsj?: number;
newVehList: any[];
updateVehList: any[];
delVehIdList: string[];
}
export interface IShowRoadFlowParams {
roadSegmentList: {
roadId: string;
flow: number;
avgSpeed: number;
shape: number[][];
}[];
options?: {
needZoom?: boolean;
};
}
export interface IShowRoadsectIndexParams {
roadsects: {
roadId: string;
flowVolume: number;
avgTravelTimeS: number;
}[];
options: {
theme: 'flow' | 'speed' | 'both';
needZoom?: boolean;
};
}
export interface IShowSignalSystemNoShapeParams {
subAreas: {
subareaId: string;
/** 子区颜色,路段和节点使用此颜色;不传则保留默认颜色 */
color?: string;
nodeVOList: {
nodeId: string;
nodeName: string;
latitude: number;
longitude: number;
orderIndex: number;
}[];
}[];
options?: {
needZoom?: boolean;
};
}
export interface IStartGetClickCoordinatesParams {
changeCursor?: boolean;
callback: (mapPoint: number[], screenPoint: number[], event?: any) => void;
}
interface IODPair {
fromId: string;
fromName: string;
toId: string;
toName: string;
fromCoord: [number, number];
toCoord: [number, number];
fromColor?: string | number[];
toColor?: string | number[];
}
export interface IShowOdLinesParams {
odPairs: IODPair[];
options?: {
fromColor?: string | number[];
toColor?: string | number[];
showNodeName?: boolean;
onNodeClick?: (node: {
id: string;
name: string;
coord: [number, number];
count: number;
}) => void;
};
}
export declare type SumoNodeType = 'priority' | 'unregulated' | 'dead_end' | 'traffic_light' | 'default' | 'internal';
export interface ISumoNode {
id: string;
x: number;
y: number;
type: SumoNodeType;
shape?: [number, number][];
incLanes?: string[];
intLanes?: string[];
selected?: boolean;
color?: string;
}
export interface ISumoLaneData {
index: number;
width: number;
shape: [number, number][];
speed: number;
}
export declare type SumoVehicleClass = 'passenger' | 'truck' | 'trailer' | 'bus' | 'coach' | 'bicycle' | 'pedestrian';
export interface ISumoEdge {
id: string;
from: string;
to: string;
numLanes: number;
speed: number;
priority: number;
allow?: SumoVehicleClass[];
lanes?: ISumoLaneData[];
bidirectional?: boolean;
selected?: boolean;
color?: string;
isInternal?: boolean;
}
/** 箭头类型 */
export declare type ArrowType = 'S' | 'L' | 'R' | 'SL' | 'SR' | 'LR' | 'SLR' | 'T' | 'default';
export declare type TurnDirection = 'L' | 'R' | 'S' | 'T';
export interface ISumoConnection {
id: string;
from: string;
to: string;
fromLane?: number;
toLane?: number;
via?: string;
dir?: TurnDirection;
allow?: SumoVehicleClass[];
tl?: string;
linkIndex?: number;
}
export declare type TLType = 'static' | 'actuated' | 'off' | 'manual';
export interface ISumoPhase {
duration: number;
state: string;
minDuration?: number;
maxDuration?: number;
}
export interface ISumoTrafficLightLogic {
id: string;
programID: string;
type: TLType;
offset: number;
phases: ISumoPhase[];
}
export {};