本接口提供排线调度规划能力,支持多个仓库、多辆车,有若干货品要配送到多个配送点的调度规划需求,系统结合配送距离、时效、车辆装载能力等约束条件,综合计算配送方案与配送顺序,使其配送成本、用时尽量最优。本服务也可应用于如:线下多目的地巡店、上门服务类等相似场景。
本服务属于高级付费服务,如需试用请提交商务合作开通服务试用。
本套API包含以下接口:
1.【实时模式】实时计算返回结果,支持仓库+配送点共200个点以内(>200可点可通过异步模式计算)
请求地址:/ws/scheduler/v1/sync
2.【异步模式】支持>200个点的计算(即:大点位排线服务),使用步骤为
a.[创建排线任务] 提交接口所需参数(车辆、仓库、配送点地等),提交成功后,任务会在后台运行
请求地址:/ws/scheduler/v1/async/create
b.通过 [计算任务查询] 获悉运行状态
请求地址:/ws/scheduler/v1/async/list?key=[Key]
c.当运行状态完成时,可通过[查询任务详情]获取计算结果
请求地址:/ws/scheduler/v1/async/info?task_id=task_ad5bdb6…&key=[Key]
实时计算返回排线结果,支持仓库(depot)+配送点(job)总计200个以内的排线计算
https://apis.map.qq.com/ws/scheduler/v1/sync
请求方法(Method):POST方法
Contant-Type:application/json
{
//开发者key,在lbs.qq.com自助创建,并提交到腾讯位置服务,开放本接口权限方可使用
"key":"XXXXX-XXXXX-XXXXX...",
//【仓库】限制:job和depot总个数<=200个
"depot":[{
"id":"depot_0000001", //[必填]id唯一标识
"location":{
"lat":39.165234, //[必填]纬度
"lng":116.45278924, //[必填]经度
}
//装卸货时间(时间窗),数据中的两项分别为收货时间窗开始时间和结束时间,
//[选填]用距离当天0点的分钟数表达,如09:30为570(9*60+30),缺省则不限制
"time_window":[570,1080],
"stay_duration":12 //[选填]装卸货停留用时:分钟,缺省为0
}
//其它省略...
],
//【车辆/运力】
//车辆类型:支持trucking(货车),driving(小客车),bicycling(自行车),walking(步行)
"vehicle_type":"trucking",
//[选填]货车车型信息:用于计算路线时使用,仅在车辆类型为货车时有效,缺省则不考虑
"vehicle_model":{
"size":3, //车型 1: 微型车 2: 轻型车(默认) 3: 中型车 4: 重型车
"width":2.2, //车宽,单位米,支持小数
"height":4, //车高,单位米,支持小数
"weight":12, //车辆总重,单位吨,支持小数
"length":8, //车长,单位米,支持小数
"axle_weight":2.7, //轴重,单位:吨
"axle_count":2 //轴数,单位个
},
//[必填]车辆信息,至少设置1项(辆)
"vehicle":[{
"id":"vehicle_00003", //车辆ID
"depot_id":"depot_0000001", //所属仓库ID,默认车辆从仓库出发
//装载量:容积、重量、标准品数量
"capacity":{
"count":20, //标准品个数
},
//[选填]完成任务后,返回指定服务点job,或仓库depot,不设置则不考虑
"return_to":{
"type":"job", //可选值"job":返回指定job配送点,"id"为配送点ID
//可选值"depot":返回仓库,"id"即为仓库ID
"id":"job_12" //仓库或服务点ID(取决于type)
},
"start_time":570,//车辆开始工作时间,用距离当天0点的分钟数表达,如09:30为570(9*60+30)
"end_time":1080, //车辆结束工作时间,用距离当天0点的分钟数表达,如18:00为1080(18*60)
}
//其它省略...
],
//【工作任务】(即:配送点、上门服务点、门店、网点等)
//[必填]限制:job和depot总个数<=200个
"job"[{
"id":"job_0000001", //id唯一标识
"location":{
"lat":39.165234, //纬度
"lng":116.45278924 //经度
},
//货品需求量(订单):体积、重量、标准品数量
"demand"{
"count":20, //标准品个数
},
//收货时间(时间窗),数据中的两项分别为收货时间窗开始时间和结束时间,
"time_window":[570,1080],//用距离当天0点的分钟数表达,如09:30为570(9*60+30)
"stay_duration":12 //收货停留用时:分钟
}
//其它省略...
]
}
{
"status": 0, //状态码,0为正常,其它为异常,详情可参考message
"message": "Success", //状态信息
"request_id": "81012f0292a945e4aacd8d5022cefe97", //请求唯一标识
"result": {
"solution": [{ //排线方案,每个数组项就是一辆车的排线方案
"vehicle_id": "vehicle_1", //车辆唯一标识
"distance": 99080, //路线总距离,单位:米
"duration": 260, //该路线车辆总耗时(包括路程耗时、因时间窗导致的等待耗时、服务耗时),单位:分钟
"stay_duration": 80, //所有途经点总停留时间
"demand": 4, //总装载量
"stops": [ //排线顺序,数组顺序即为配送顺序
{//第1站
"type": "depot", //类型,depot仓库,job配送点(本例为仓库出发)
"id": "depot_1", //地点唯一标识,type为depot时为仓库ID,为job时为配送点ID
"location": { //仓库坐标
"lat": 23.244897, //纬度
"lng": 113.247151 //经度
},
"arrive_time": 533, //预估到达时间,用距离当天0点的分钟数表达,如09:30为9*60+30=570
"departure_time": 533, //离开时间,用距离当天0点的分钟数表达,如09:30为9*60+30=570
//装卸货时间(时间窗),数据中的两项分别为收货时间窗开始时间和结束时间,用距离当天0点的分钟数表达
"time_window": [0,1440]
},
{//第2站
"type": "job", //类型,depot仓库,job配送点(本例为到达其中一个配送点)
"id": "job_1", //地点唯一标识,type为depot时为仓库ID,为job时为配送点ID
"location": { //配送点坐标
"lat": 23.179373, //纬度
"lng": 113.267173 //经度
},
"arrive_time": 571, //预估到达时间,用距离当天0点的分钟数表达,如09:30为9*60+30=570
"departure_time": 591, //离开时间,用距离当天0点的分钟数表达,如09:30为9*60+30=570
//装卸货时间(时间窗),数据中的两项分别为收货时间窗开始时间和结束时间,用距离当天0点的分钟数表达
"time_window": [510,720],
"distance": 11213, //上一地点到本配送点的距离,单位:米
"duration": 37, //上一地点到本配送点的预估用时,单位:分钟
"demand": 1, //卸货量
"stay_duration": 20 //卸货停留时间,单位 分钟
}
//其它省略.....
]
}
//其它车辆排线方案省略.....
]
}
}
支持>200个点的计算,提交接口所需参数(车辆、仓库、配送目的地等),提交成功后,任务会在后台运行。通过任务查询接口可获悉计算进度,计算完成后,查询任务详情获取计算结果。
https://apis.map.qq.com/ws/scheduler/v1/async/create
请求方法(Method):POST方法
Contant-Type:application/json
与实时排线计算接口参数相同
{
"status": 0, //状态码,0为正常,其它为异常,详情可参考message
"message": "Success", //状态信息
"request_id": "4124728190474059033", //请求唯一标识
"result": {
//任务创建成功,返回任务ID,可通过该标识,查询排线计算结果
"task_id": "task_4124728190473"
}
}
https://apis.map.qq.com/ws/scheduler/v1/async/list
请求方法(Method):HTTP/GET方法
| 参数 | 必填 | 类型 | 说明 | 示例 |
|---|---|---|---|---|
| key | 是 | string | 开发key,您可在控制台Key管理界面自行创建,且需要开启WebServiceAPI功能,并具备本接口的访问权限 | key=XXXXX-XXXX |
| page_size | 否 | number | 每页条目数,最大限制为20条,默认为10条 | page_size=10 |
| page_index | 否 | number | 第x页,默认第1页 | page_index=2 |
| start_time | 否 | string | 时间范围,开始时间,若填写start_time,必填end_time | start_time=2026-01-01 00:00 |
| end_time | 否 | string | 时间范围,结束时间,若填写end_time,必填start_time | end_time=2026-01-01 00:00 |
{
"status": 0,//状态码,0为正常,其它为异常,详情可参考message
"message": "Success", //状态信息
"request_id": "8f0d7a34fe1841c6a2f", //任务ID
"result": {
"total": 1, //总任务数
"page_index": 1, //当前页
"page_size": 10, //总页数
"list": [//排线计算任务列表,按创建时间倒序排序(最新的任务在前)
{
"task_id": "task_4124728190474dbba934084505903333",
"create_time": "2026-03-15 12:18:52", //任务创建时间
"finish_time": "2026-03-15 12:18:58", //运行完成时间
"task_status": 1 //任务执行状态:0新任务运行中(未完成),1完成,-1失败
}
]
}
}
通过本接口查询排线计算结果
https://apis.map.qq.com/ws/scheduler/v1/async/info
请求方法(Method):HTTP/GET方法
请求参数:
| 参数 | 必填 | 类型 | 说明 | 示例 |
|---|---|---|---|---|
| key | 是 | string | 开发key,您可在控制台Key管理界面自行创建,且需要开启WebServiceAPI功能,并具备本接口的访问权限 | key=XXXXX-XXXX |
| task_id | 是 | string | 查询指定task_id | task_id=4124728190 |
与实时排线计算接口返回值相同
https://lbs.qq.com/scheduler-tool.html
注:使用本工具需要提前申请或购买本套接口的使用权限,配置授权key方可使用
有帮助
没帮助