概要

本接口提供排线调度规划能力,支持多个仓库、多辆车,有若干货品要配送到多个配送点的调度规划需求,系统结合配送距离、时效、车辆装载能力等约束条件,综合计算配送方案与配送顺序,使其配送成本、用时尽量最优。本服务也可应用于如:线下多目的地巡店、上门服务类等相似场景。

本服务属于高级付费服务,如需试用请提交商务合作开通服务试用。

本套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]

1. 实时排线计算

实时计算返回排线结果,支持仓库(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 //卸货停留时间,单位 分钟
          }
          //其它省略.....
        ]
      }
      //其它车辆排线方案省略.....
    ]
  }
}

2. 异步排线计算(大点位)

支持>200个点的计算,提交接口所需参数(车辆、仓库、配送目的地等),提交成功后,任务会在后台运行。通过任务查询接口可获悉计算进度,计算完成后,查询任务详情获取计算结果。

2.1 创建排线任务

接口地址

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"   
    }
}


2.2 计算任务查询

接口请求

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失败
            }
        ]
    }
}

2.3 任务详情查询

通过本接口查询排线计算结果

接口请求

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

返回值:

实时排线计算接口返回值相同

3. 可视化工具

https://lbs.qq.com/scheduler-tool.html
注:使用本工具需要提前申请或购买本套接口的使用权限,配置授权key方可使用

本页内容