tianditu-types
Version:
145 lines (121 loc) • 3.87 kB
TypeScript
declare namespace T {
class TransitRoute {
/** 创建一个公交导航实例,用于获取公交路线规划方案*/
constructor(map: Map, opts: TransitRouteOptions);
/** 发起检索 */
search(start: LngLat, end: LngLat): void;
/** 返回最近一次检索的结果 */
getResults(): TransitRouteResult;
/** 清除最近一次检索的结果 */
clearResults(): void;
/** 设置路线规划策略,参数为策略常量 */
setPolicy(policy: TransitRouteOptions["policy"]): void;
/** 设置检索结束后的回调函数 */
setSearchCompleteCallback(fun: Exclude<TransitRouteOptions["onSearchComplete"], undefined>): void;
/** 返回状态码 */
getStatus(): TransitRouteResult["resultCode"];
}
interface TransitRouteOptions {
/**
* 公交导航的策略参数。
* TMAP_TRANSIT_POLICY_LEAST_TIME = 1表示最少时间
* TMAP_TRANSIT_POLICY_LEAST_TRANSFER = 2表示最少换乘
* TMAP_TRANSIT_POLICY_LEAST_WALKING = 4表示最少步行
* TMAP_TRANSIT_POLICY_AVOID_SUBWAYS = 8表示不乘地铁
*/
policy: number;
/** 检索结束后的回调函数 */
onSearchComplete?: (result: TransitRouteResult) => void;
}
interface TransitRouteResult {
/** 是否包含地铁 */
hasSubway: boolean;
/**
* 返回状态码。状态码如下:
* 0表示正常返回线路;
* 1表示找不到起点;
* 2表示找不到终点;
* 3表示规划不出线路;
* 4表示起终点距离200米以内,不返回线路;
* 5表示起终点距离500米内,返回线路;
* 6表示输入参数错误
*/
resultCode: number;
results: {
lineType: TransitRouteOptions["policy"];
lines: {
/** 方案线路名称 */
lineName: string;
segments: {
segmentType: number;
segmentLine: SegmentLine;
stationStart: Station;
stationEnd: Station;
}[];
}[];
};
/** 返回方案个数 */
getNumPlans(): number;
/** 返回索引指定的方案。索引0表示第一条方案 */
getPlan(i: number): TransitRoutePlan;
}
interface TransitRoutePlan {
Distance: number;
Duration: number;
LineName: string;
LineType: number;
NumSegments: number;
/** 返回单个方案的详细信息段数 */
getNumSegments(): number;
/** 返回索引指定的详细信息。索引0表示第一条方案 */
getDetails(i: number): TransitRouteLine;
/** 返回方案描述文本 */
getLineName(): string[];
/** 返回方案总距离 */
getDistance(): number;
/** 返回方案总时间 */
getDuration(): number;
/** 返回公交导航的策略参数 */
getLineType(): number;
}
interface TransitRouteLine {
/**
* 返回线路类型
* 1表示步行;
* 2表示公交;
* 3表示地铁;
* 4表示地铁站内换乘
*/
getSegmentType(): number;
/** 返回起站点信息 */
getStationStart(): Station;
/** 返回终站点信息 */
getStationEnd(): Station;
/** 返回线路内容 */
getSegmentLine(): SegmentLine;
}
interface Station {
/** 起终站点坐标 "lng,lat" */
lonlat: string;
/** 起终站点名称 */
name: string;
/** 起终站点id */
uuid: string;
}
type SegmentLine = {
/** 此段线路需要经过的站点数 */
segmentStationCount: number;
/** 此段线路需要的时间 */
segmentTime: number;
/** 此段线路的距离 */
segmentDistance: number;
/** 此段线路的完整线路名 */
direction: string;
/** 此段线路的坐标 "lng,lat;lng,lat;lng,lat" */
linePoint: string;
/** 线路名称 */
lineName: string;
/** 此段线路id */
byuuid: string;
}[];
}