@idm-plugin/vessel
Version:
idm plugin for vessel
219 lines (218 loc) • 6.02 kB
TypeScript
/**
* AIS记录
*/
export interface AISRecord {
mmsi?: number;
name?: string;
imo?: number;
callSign?: string;
lat?: number;
lng?: number;
length?: number;
width?: number;
draught?: number;
sog?: number;
cog?: number;
hdg?: number;
rot?: number;
eta?: string;
destination?: string;
positionTime?: number;
status?: number;
labelCn?: string;
labelEn?: string;
method?: string;
vendor?: string;
deleted?: boolean;
utc?: string;
vesselType?: string;
flag?: string;
clasz?: string;
build?: string;
dwt?: number;
grt?: number;
net?: number;
meteo?: string;
type?: string;
}
export interface VesselRecord {
mmsi?: number;
name?: string;
imo?: number;
callSign?: string;
length?: number;
breadth?: number;
draught?: number;
deadweight?: number;
vendor?: string;
score?: number;
type?: string;
}
export interface AuthToken {
accessToken: string;
tokenType?: string;
expiresIn?: number;
scope?: string;
jti?: string;
issuedAt?: string;
}
export declare class AISImpl {
/**
* 解析AIS状态码
* @param status
*/
parseStatus(status: number): {
labelCn: string;
labelEn: string;
};
}
export declare class MyVesselImpl extends AISImpl {
private readonly clientId;
private readonly clientSecret;
private token;
constructor(clientId: string, clientSecret: string);
authToken(options?: {
requestId?: string;
}): Promise<void>;
checkToken(options?: {
requestId?: string;
}): Promise<AuthToken | undefined>;
/**
* 模糊查询
* @param kw
* @param options
*/
suggest(kw: string, options?: {
requestId?: string;
ps?: number;
}): Promise<any>;
/**
* imo/mmsi 精确查询
* @param imo
* @param options
*/
search(imo: number, options?: {
requestId?: string;
ps?: number;
}): Promise<{
mmsi?: undefined;
imo?: undefined;
callSign?: undefined;
name?: undefined;
nameCn?: undefined;
type?: undefined;
flagName?: undefined;
clasz?: undefined;
dateOfBuild?: undefined;
deadweight?: undefined;
grossTonnage?: undefined;
netTonnage?: undefined;
teu?: undefined;
length?: undefined;
breadth?: undefined;
height?: undefined;
draught?: undefined;
speed?: undefined;
passengerCapacity?: undefined;
vendor?: undefined;
raw?: undefined;
} | {
mmsi: any;
imo: number | null;
callSign: any;
name: any;
nameCn: any;
type: any;
flagName: any;
clasz: any;
dateOfBuild: any;
deadweight: any;
grossTonnage: any;
netTonnage: any;
teu: any;
length: any;
breadth: any;
height: any;
draught: any;
speed: any;
passengerCapacity: any;
vendor: string;
raw: any;
}>;
archives(mmsi: any, options?: {
requestId?: string;
}): Promise<any>;
realTimePosition(mmsi: number, options?: {
requestId?: string;
}): Promise<AISRecord>;
/**
* @param from 始发点坐标 { lng, lat }
* @param to 目的点坐标 { lng, lat }
* @param crossMonths 规划月份 [1,...,12]
* @param excludeNodes 排除关键节点, [node.code]
* @param excludeSeas 排除水域, [sea.code]
* @param options { requiretId: '请求ID', useAIModel: '启用AI算法', withECA: '是否计算低硫区航行距离', withSpecial: '是否计算穿越的特战区列表和海盗区列表', draught: '最大吃水' }
*/
calculateRoute(from: {
lng?: number;
lat?: number;
code?: string;
}, to: {
lng?: number;
lat?: number;
code?: string;
}, crossMonths: number[], excludeNodes: string[], excludeSeas: string[], options?: {
requestId?: string;
useAIModel?: boolean;
withECA?: boolean;
withSpecial?: boolean;
draught?: number;
}): Promise<any>;
trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
requestId?: string;
}): Promise<AISRecord[]>;
private trajectoryIn30Day;
}
export declare class HifleetImpl extends AISImpl {
private readonly token;
constructor(token: string);
realTimePosition(mmsi: number, options?: {
requestId?: string;
}): Promise<AISRecord>;
search(kw: string, options?: {
requestId?: string;
}): Promise<VesselRecord>;
suggest(kw: string, options?: {
requestId?: string;
}): Promise<VesselRecord>;
trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
requestId?: string;
}): Promise<AISRecord[]>;
}
export declare class ShipxyImpl extends AISImpl {
private readonly token;
constructor(token: string);
realTimePosition(mmsi: number, options?: {
requestId?: string;
}): Promise<AISRecord>;
trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
requestId?: string;
}): Promise<AISRecord[]>;
}
export declare class MyShipImpl extends AISImpl {
private readonly token;
constructor(token: string);
getShipId(mmsi: any, options?: {
requestId?: string;
}): Promise<string>;
getShipInfo(shipId: string, options?: {
requestId?: string;
}): Promise<AISRecord>;
realTimePosition(mmsi: number, options?: {
requestId?: string;
}): Promise<AISRecord>;
trajectory(mmsi: number, startTime: string, endTime: string, offset: number, scale?: boolean, options?: {
requestId?: string;
}): Promise<AISRecord[]>;
private trajectoryIn30Day;
}