提交室内导览交互与讲解优化
This commit is contained in:
143
static/sgs-map-sdk/index.d.ts
vendored
Normal file
143
static/sgs-map-sdk/index.d.ts
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
declare class EventEmitter<Events extends Record<string, any>> {
|
||||
private events;
|
||||
constructor();
|
||||
on<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void): void;
|
||||
off<K extends keyof Events>(event: K, listener: (payload: Events[K]) => void): void;
|
||||
emit<K extends keyof Events>(event: K, data: Events[K]): void;
|
||||
}
|
||||
|
||||
/** 统一位置描述符 */
|
||||
type SgsMapNode = {
|
||||
type: 'coord';
|
||||
floorId: number;
|
||||
x: number;
|
||||
z: number;
|
||||
y?: number;
|
||||
} | {
|
||||
type: 'poiId';
|
||||
value: number;
|
||||
} | {
|
||||
type: 'nodeName';
|
||||
value: string;
|
||||
};
|
||||
/** 单点吸附详情 */
|
||||
interface SnapDetail {
|
||||
original: {
|
||||
x: number;
|
||||
z: number;
|
||||
};
|
||||
nearest: {
|
||||
x: number;
|
||||
z: number;
|
||||
};
|
||||
distance: number;
|
||||
}
|
||||
/** 寻路结果 */
|
||||
interface RouteResult {
|
||||
success: boolean;
|
||||
distance: number;
|
||||
duration: number;
|
||||
pathPoints: Array<{
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
}>;
|
||||
startSnap: SnapDetail;
|
||||
endSnap: SnapDetail;
|
||||
computeTimeMs: number;
|
||||
polyCount: number;
|
||||
warnings: string[];
|
||||
errorCode?: string;
|
||||
message?: string;
|
||||
}
|
||||
/** 寻路选项 */
|
||||
interface RouteOptions {
|
||||
mode?: 'walk' | 'accessible';
|
||||
}
|
||||
/** SDK 初始化配置 */
|
||||
interface SGSMapSDKOptions {
|
||||
container: string | HTMLElement;
|
||||
sdkUrl?: string;
|
||||
targetOrigin?: string;
|
||||
floorId?: number;
|
||||
timeout?: number;
|
||||
}
|
||||
/** SDK 事件映射 */
|
||||
interface SGSMapEvents {
|
||||
ready: {
|
||||
engineVersion: string;
|
||||
protocolVersion: number;
|
||||
};
|
||||
poiClick: {
|
||||
id: number;
|
||||
name: string;
|
||||
type: string;
|
||||
floorId?: number;
|
||||
description?: string;
|
||||
};
|
||||
floorChanged: {
|
||||
floorId: number;
|
||||
};
|
||||
error: {
|
||||
code: string;
|
||||
message: string;
|
||||
};
|
||||
loadError: {
|
||||
type: string;
|
||||
detail: string;
|
||||
};
|
||||
}
|
||||
/** SDK 错误码 */
|
||||
type SGSErrorCode = 'ERR_TIMEOUT' | 'ERR_NO_PATH' | 'ERR_FLOOR_NOT_FOUND' | 'ERR_NOT_READY' | 'ERR_POI_NOT_FOUND' | 'ERR_NETWORK' | 'ERR_IFRAME_DEAD' | 'ERR_UNAUTHORIZED' | 'ERR_UNSUPPORTED' | 'ERR_FAILED';
|
||||
/** 图钉配置参数 */
|
||||
interface MarkerConfig {
|
||||
id: string;
|
||||
name?: string;
|
||||
iconUrl?: string;
|
||||
anchorNodeName?: string;
|
||||
position?: [number, number, number] | {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
};
|
||||
}
|
||||
|
||||
declare class SGSMapSDK extends EventEmitter<SGSMapEvents> {
|
||||
private container;
|
||||
private sdkUrl;
|
||||
private floorId;
|
||||
private targetOrigin;
|
||||
private iframe;
|
||||
private isReady;
|
||||
private defaultTimeout;
|
||||
private promiseQueue;
|
||||
private _messageListener;
|
||||
constructor(options: SGSMapSDKOptions);
|
||||
private _initIframeBridge;
|
||||
private _generateRequestId;
|
||||
private _postCommand;
|
||||
private _postCommandAsync;
|
||||
getIsReady(): boolean;
|
||||
getCurrentFloor(): number;
|
||||
focusTo(node: SgsMapNode | string): void;
|
||||
changeFloor(floorId: number, timeout?: number): Promise<{
|
||||
success: boolean;
|
||||
floorId: number;
|
||||
}>;
|
||||
addMarker(config: MarkerConfig): void;
|
||||
removeMarker(markerId: string): void;
|
||||
clearMarkers(): void;
|
||||
highlightPolygon(nodeName: string): void;
|
||||
planRoute(from: SgsMapNode | string, to: SgsMapNode | string, options?: any, timeout?: number): Promise<RouteResult>;
|
||||
clearRoute(): void;
|
||||
getState(): Promise<any>;
|
||||
resetView(): void;
|
||||
setViewMode(mode: '2d' | '3d'): void;
|
||||
toggleLayer(types: string[], visible: boolean, timeout?: number): Promise<{
|
||||
success: boolean;
|
||||
visibleTypes: string[];
|
||||
}>;
|
||||
destroy(): void;
|
||||
}
|
||||
|
||||
export { type MarkerConfig, type RouteOptions, type RouteResult, type SGSErrorCode, type SGSMapEvents, type SGSMapSDKOptions, type SgsMapNode, type SnapDetail, SGSMapSDK as default };
|
||||
Reference in New Issue
Block a user