tianditu-types
Version:
150 lines (124 loc) • 4.85 kB
TypeScript
declare namespace T {
class DrivingRoute {
/** 创建一个驾车导航实例,用于获取驾车路线规划方案 */
constructor(map: Map, opts: DrivingRouteOptions);
/** 发起检索 */
search(start: LngLat, end: LngLat): void;
/** 返回最近一次检索的结果 */
getResults(): DrivingRouteResult;
/** 清除最近一次检索的结果 */
clearResults(): void;
/** 设置路线规划策略,参数为策略常量 */
setPolicy(policy: number): void;
/** 设置检索结束后的回调函数 */
setSearchCompleteCallback(fun: Exclude<DrivingRouteOptions["onSearchComplete"], undefined>): void;
}
interface DrivingRouteOptions {
/**
* 驾车策略参数
* TMAP_DRIVING_POLICY_LEAST_TIME = 0 最少时间
* TMAP_DRIVING_POLICY_LEAST_DISTANCE = 1 最短距离
* TMAP_DRIVING_POLICY_AVOID_HIGHWAYS = 2 避开高速
* TMAP_DRIVING_POLICY_WALK = 3 步行
*/
policy: number;
/** 检索结束后的回调函数 */
onSearchComplete?: (result: DrivingRouteResult) => void;
}
interface DrivingRouteResult {
/** 起点"lng,lat" */
start: string;
/** 终点"lng,lat" */
end: string;
results: {
mid: string;
/** 起点"lng,lat" */
orig: string;
/** 终点"lng,lat" */
dest: string;
/** 完整路径 */
routes: {
/** 路径条数 */
count: string;
time: string;
item: {
/** 路径id */
id: string;
/** 路径导航文本描述 */
strguide: string;
signage: null;
/** 当前道路名称 */
streetName: string;
/** 下个道路名称 */
nextStreetName: string;
tollStatus: number;
/** 节点经纬度"lng,lat" */
turnlatlon: string;
}[];
};
/** 简略路径 */
simple: {
item: {
id: "0";
strguide: "从清华东路出发,行驶到学院路,进入新街口南大街。";
streetNames: "清华东路";
lastStreetName: "学院路";
linkStreetName: "新街口南大街";
signage: null;
tollStatus: 0;
turnlatlon: "116.33297,39.99922";
streetLatLon: "116.33297,39.99922;116.33303,39.99922;116.33303,39.99922;116.33339,39.99922;116.33339,39.99922;116.33372,39.99922;116.33372,39.99922;116.33484,39.99926;116.33484,39.99926;116.3353,39.99929;116.3353,39.99929;116.33705,39.99935;116.33705,39.99935;116.33805,39.99937;116.33805,39.99937;116.33912,39.99939;116.33912,39.99939;116.34087,39.99946;116.34087,39.99946;116.34142,39.99949;116.34142,39.99949;116.34158,39.99949;116.34158,39.99949;116.34206,39.99949;116.34206,39.99949;116.34222,39.99949;116.34222,39.99949;116.34256,39.99951;116.34256,39.99951;116.34283,39.99951;116.34283,39.99951;116.34302,39.99951;116.34302,39.99951;116.34351,39.99951;116.34351,39.99951;116.34384,39.99951;116.34384,39.99951;116.34432,39.99951;116.34432,39.99951;116.34486,39.99953;116.34486,39.99953;116.34528,39.99955;116.34528,39.99955;116.34568,39.99956;116.34568,39.99956;116.34602,39.99957;116.34602,39.99957;116.34628,39.99957;";
streetDistance: 1134;
segmentNumber: 0;
}[];
};
/** */
distance: 17.5;
duration: 1259;
/** "lng,lat;lng,lat;..." */
routelatlon: string;
};
/** 返回起点 */
getStart(): LngLat;
/** 返回终点 */
getEnd(): LngLat;
/** 返回方案个数 */
getNumPlans(): number;
/** 返回索引指定的方案。索引0表示第一条方案 */
getPlan(i: number): DrivingRoutePlan;
}
interface DrivingRoutePlan {
/** 返回该方案包含的线路的个数 */
getNumRoutes(): number;
/** 返回方案中索引指定的线路信息。索引0表示第一条线路 */
getRoute(i: number): Route;
/** 返回方案总距离,单位为公里 */
getDistance(): number;
/** 返回方案总时间,单位为秒 */
getDuration(): number;
/** 返回途径点 */
getWayPois(): LngLat[];
/** 返回路线的经纬度 */
getPath(): LngLat[];
}
interface Route {
/** 返回该段路线包含的关键点个数 */
getNumSteps(): number;
/** 返回索引指定的关键点。索引0表示第一个关键点 */
getStep(i: number): Step;
/** 返回该段路线距离 */
getDistance(): number;
/** 返回该段路线在方案中的索引位置 */
getIndex(): number;
/** 返回该段路线的坐标 */
getPath(): LngLat[];
}
interface Step {
/** 返回关键点地理坐标 */
getPosition(): LngLat;
/** 返回本关键点在路线中的位置索引 */
getIndex(): number;
/** 返回关键点描述文本 */
getDescription(): string;
}
}