聚美智数


腾讯地图_公交路线规划

<h3>接口描述</h3> <ul> <li>基于公共汽车、地铁、火车等公共交通工具,计算起到终点的路线换乘方案,同时提供少换乘、少步行等偏好设置,支持一次返回多条方案以供用户选择。</li> </ul> <h3>请求地址</h3> <p><code>https://api.jumdata.com/ttmap/route/public-transit</code></p> <h3>请求方式</h3> <ul> <li>GET/POST</li> </ul> <h3>请求格式</h3> <ul> <li>x-www-form-urlencoded</li> </ul> <h3>请求参数</h3> <table> <thead> <tr> <th>名称</th> <th>类型</th> <th>必须</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>appId</td> <td>String</td> <td>是</td> <td>服务商分配的唯一标识</td> </tr> <tr> <td>timestamp</td> <td>Long</td> <td>是</td> <td>当前时间的毫秒数</td> </tr> <tr> <td>sign</td> <td>String</td> <td>是</td> <td>签名,见签名算法说明</td> </tr> <tr> <td>origins</td> <td>String</td> <td>是</td> <td>起点位置坐标 &lt;br/&gt;格式:纬度在前,经度在后,半角逗号分隔。&lt;br/&gt;注:系统将吸附就近道路作为起点,最大20公里内若无道路,则会算路失败&lt;br/&gt; 譬如:39.915285,116.403857</td> </tr> <tr> <td>originPoi</td> <td>String</td> <td>否</td> <td>起点POI ID,该参数优先级高于origins(坐标)譬如:4077524088693206111</td> </tr> <tr> <td>destinations</td> <td>String</td> <td>是</td> <td>终点位置坐标 &lt;br/&gt;格式:lat,lng&lt;br/&gt;注:直线距离过长或过短会算路失败,最短距离不小于10米,最长距离不超过500公里&lt;br/&gt; 譬如:39.915285,116.803857</td> </tr> <tr> <td>destinationPoi</td> <td>String</td> <td>否</td> <td>终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优。&lt;br/&gt;该参数优先级高于to(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用destinations(坐标)作为终点</td> </tr> <tr> <td>departureTime</td> <td>String</td> <td>否</td> <td>出发时间,用于过滤掉非运营时段的线路,格式为Unix时间戳,默认使用当前时间 譬如:1509357129</td> </tr> <tr> <td>policy</td> <td>String</td> <td>否</td> <td>路线计算偏好&lt;br/&gt; 1) 排序策略,以下四选一:&lt;br/&gt;LEAST_TIME:时间短(默认)&lt;br/&gt;LEAST_TRANSFER:少换乘&lt;br/&gt;LEAST_WALKING:少步行&lt;br/&gt;RECOMMEND:推荐策略,结合步行、换乘、耗时等多方面综合排序结果(与腾讯地图APP默认策略一致)&lt;br/&gt;2) 额外限制条件&lt;br/&gt;NO_SUBWAY:不坐地铁&lt;br/&gt;ONLY_SUBWAY:只坐地铁 &lt;br/&gt; SUBWAY_FIRST:地铁优先&lt;br/&gt;3) 排序策略与额外条件可同时使用,如:&lt;br/&gt;LEAST_TRANSFER,NO_SUBWAY</td> </tr> <tr> <td>output</td> <td>String</td> <td>否</td> <td>返回格式:支持JSON/JSONP,默认:JSON</td> </tr> <tr> <td>callback</td> <td>String</td> <td>否</td> <td>JSONP方式回调函数</td> </tr> </tbody> </table> <h3>签名算法</h3> <pre><code>sign = sha256(appId + appSecret + timestamp)</code></pre> <p>用服务商分配的 <strong>appId</strong>、服务商分配的 <strong>appSecret</strong>,当前时间毫秒数 <strong>timestamp</strong>,按上述顺序拼接成字符串,再进行 <strong>sha256</strong> 哈希得到。如下:</p> <pre><code class="language-java">String appId = &amp;quot;xyzxy2121zxyz&amp;quot;; String timestamp = &amp;quot;1555378976238&amp;quot;; String appSecret = &amp;quot;efcefcef1121cefcefc1212121&amp;quot;; String str = appId + appSecret + timestamp; String sign = sha256(str);</code></pre> <h3>正确返回</h3> <pre><code>{ &amp;quot;code&amp;quot;: 200, // 详见code返回码说明 &amp;quot;msg&amp;quot;: &amp;quot;成功&amp;quot;, // code对应的描述 &amp;quot;charge&amp;quot;: true, // 计费标志 &amp;quot;taskNo&amp;quot;: &amp;quot;69564903663951243279&amp;quot;, // 本次唯一请求号 &amp;quot;data&amp;quot;: { &amp;quot;routes&amp;quot;: [ { &amp;quot;distance&amp;quot;: 48127,//本段step距离,单位:米 &amp;quot;duration_1m&amp;quot;: 115, &amp;quot;steps&amp;quot;: [ { &amp;quot;distance&amp;quot;: 733,//本段step距离,单位:米 &amp;quot;steps&amp;quot;: [ { &amp;quot;road_name&amp;quot;: &amp;quot;东华门大街&amp;quot;, //本段路名 &amp;quot;distance&amp;quot;: 238,//本段路线距离,单位:米 &amp;quot;act_desc&amp;quot;: &amp;quot;直行&amp;quot;,//本段末尾动作:如:左转调头 &amp;quot;polyline_idx&amp;quot;: [ //本路段点串在polyline中的数组下标位置,格式:“polyline_idx”:[起始下标位置,结束下标位置]详细使用见下文《polyline_idx说明》 0, 25 ], &amp;quot;dir_desc&amp;quot;: &amp;quot;东&amp;quot;, //本段主要方向描述 &amp;quot;instruction&amp;quot;: &amp;quot;从起点朝东,沿东华门大街行进238米,直行进入东安门大街&amp;quot; //诱导描述,如 “沿东华门大街向西行驶74米” } ], &amp;quot;mode&amp;quot;: &amp;quot;WALKING&amp;quot;,//交通方式,固定值:“WALKING”,通过本参数判断数据结构类型 &amp;quot;duration&amp;quot;: 10,//估算时间,单位:分钟 &amp;quot;polyline&amp;quot;: [ //路线坐标点串,可用于在地图中绘制路线 39.915238, 116.40387 ], &amp;quot;direction&amp;quot;: &amp;quot;东&amp;quot; //方案整体方向描述,如:“南” }, { &amp;quot;mode&amp;quot;: &amp;quot;TRANSIT&amp;quot;, &amp;quot;lines&amp;quot;: [ //lines线路信息,因为起点到终点,可能存在多条线路可选,所以lines为数组, { &amp;quot;distance&amp;quot;: 2308,//路线距离,单位:米 &amp;quot;destination&amp;quot;: { //终点站,用于表明乘坐方向,环线线路为下一站 &amp;quot;title&amp;quot;: &amp;quot;朱辛庄&amp;quot;, //终点站名 &amp;quot;id&amp;quot;: &amp;quot;9930463473912863522&amp;quot; //站点唯一标识 }, &amp;quot;end_time&amp;quot;: &amp;quot;23:01&amp;quot;, &amp;quot;station_count&amp;quot;: 2,//经停站数 &amp;quot;stations&amp;quot;: [ //途经站列表 { &amp;quot;title&amp;quot;: &amp;quot;中国美术馆&amp;quot;,//站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.410836,//经度 &amp;quot;lat&amp;quot;: 39.923708 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;17429846541789871495&amp;quot; // 站点唯一标识 } ], &amp;quot;title&amp;quot;: &amp;quot;地铁8号线&amp;quot;,//线路名称 &amp;quot;geton&amp;quot;: { //上车站 &amp;quot;title&amp;quot;: &amp;quot;金鱼胡同&amp;quot;,//站点名称 &amp;quot;exit&amp;quot;: { //出入口 &amp;quot;title&amp;quot;: &amp;quot;C西南口&amp;quot;,//出入口名称 &amp;quot;id&amp;quot;: &amp;quot;2199031508491&amp;quot; //唯一标识 }, &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.411276, &amp;quot;lat&amp;quot;: 39.916316 }, &amp;quot;id&amp;quot;: &amp;quot;2199031508070&amp;quot;//站点唯一标识 }, &amp;quot;vehicle&amp;quot;: &amp;quot;SUBWAY&amp;quot;,//交通工具:公交车(BUS) &amp;quot;running_status&amp;quot;: 300,//线路运营状态,取值范围:300:正常301:可能错过末班车302:首班车还未发出303:停运 &amp;quot;duration&amp;quot;: 7,//路线估算时间,单位:分钟 &amp;quot;start_time&amp;quot;: &amp;quot;05:06&amp;quot;,//首班车时间 &amp;quot;getoff&amp;quot;: {//下车站 &amp;quot;title&amp;quot;: &amp;quot;南锣鼓巷&amp;quot;, //站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.404026, &amp;quot;lat&amp;quot;: 39.9338 }, &amp;quot;id&amp;quot;: &amp;quot;2185101318406156001&amp;quot;//站点唯一标识 }, &amp;quot;price&amp;quot;: -1,//预估费用,单位:分,返回-1时为缺少票价信息 &amp;quot;id&amp;quot;: &amp;quot;6498459369252258424&amp;quot;,//线路唯一标识 &amp;quot;polyline&amp;quot;: [ //线路坐标点串,可用于在地图中绘制路线 39.916314, 116.411276 ] } ] }, { &amp;quot;mode&amp;quot;: &amp;quot;TRANSIT&amp;quot;, &amp;quot;lines&amp;quot;: [ //lines线路信息,因为起点到终点,可能存在多条线路可选,所以lines为数组, { &amp;quot;distance&amp;quot;: 12315,//路线距离,单位:米 &amp;quot;destination&amp;quot;: { //公交终点站(用于指示方向) &amp;quot;title&amp;quot;: &amp;quot;燕郊总站&amp;quot;,//终点站名 &amp;quot;id&amp;quot;: &amp;quot;2199033576492&amp;quot; //站点唯一标识 }, &amp;quot;end_time&amp;quot;: &amp;quot;21:10&amp;quot;,//末班车时间 &amp;quot;station_count&amp;quot;: 8,//经停站数 &amp;quot;stations&amp;quot;: [ //经停站列表 { &amp;quot;title&amp;quot;: &amp;quot;东夏园路口北&amp;quot;, //站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.736044, //经度 &amp;quot;lat&amp;quot;: 39.904057 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;7228496891947728866&amp;quot; //站点唯一标识 } ], &amp;quot;title&amp;quot;: &amp;quot;894路&amp;quot;,//线路名称 &amp;quot;geton&amp;quot;: { //上车站 &amp;quot;title&amp;quot;: &amp;quot;地铁潞城站&amp;quot;,//站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.746267,//经度 &amp;quot;lat&amp;quot;: 39.902838 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;17668525134213997010&amp;quot; //站点唯一标识 }, &amp;quot;vehicle&amp;quot;: &amp;quot;BUS&amp;quot;,//交通工具:公交车(BUS) &amp;quot;running_status&amp;quot;: 300,//线路运营状态,取值范围:300:正常301:可能错过末班车302:首班车还未发出 303:停运 &amp;quot;duration&amp;quot;: 34,//路线估算时间,单位:分钟 &amp;quot;start_time&amp;quot;: &amp;quot;06:35&amp;quot;,//首班车时间 &amp;quot;getoff&amp;quot;: { //下车站 &amp;quot;title&amp;quot;: &amp;quot;西城子北&amp;quot;, //站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.800722,//经度 &amp;quot;lat&amp;quot;: 39.912064 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;2199033576481&amp;quot; //站点唯一标识 }, &amp;quot;price&amp;quot;: 300,//预估费用,单位:分,返回-1时为缺少票价信息 &amp;quot;id&amp;quot;: &amp;quot;15537671715386659962&amp;quot;,//线路唯一标识 &amp;quot;polyline&amp;quot;: [ //线路坐标点串,可用于在地图中绘制路线 39.902841, 116.746269 ] } ] }, { &amp;quot;mode&amp;quot;: &amp;quot;TRANSIT&amp;quot;, &amp;quot;lines&amp;quot;: [ //lines线路信息,因为起点到终点,可能存在多条线路可选,所以lines为数组, { &amp;quot;distance&amp;quot;: 12315,//路线距离,单位:米 &amp;quot;destination&amp;quot;: { //目的地站点 &amp;quot;title&amp;quot;: &amp;quot;燕郊总站&amp;quot;,//站名 &amp;quot;id&amp;quot;: &amp;quot;2199033576492&amp;quot; //站点唯一标识,目前火车站点始终为&amp;quot;0&amp;quot; }, &amp;quot;arrival_time&amp;quot;: &amp;quot;21:10&amp;quot;,//到达时间 &amp;quot;station_count&amp;quot;: 8,//经停站数 &amp;quot;days_count&amp;quot;: 1,//耗时天数,1为当天到达,2为隔天到达,以此类推 &amp;quot;stations&amp;quot;: [ //途经站列表 { &amp;quot;title&amp;quot;: &amp;quot;东夏园路口北&amp;quot;, //站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.736044, //经度 &amp;quot;lat&amp;quot;: 39.904057 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;7228496891947728866&amp;quot; //站点唯一标识 } ], &amp;quot;title&amp;quot;: &amp;quot;894路&amp;quot;,//线路名称 &amp;quot;geton&amp;quot;: { //上车站 &amp;quot;title&amp;quot;: &amp;quot;地铁潞城站&amp;quot;,//站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.746267,//经度 &amp;quot;lat&amp;quot;: 39.902838 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;17668525134213997010&amp;quot; //站点唯一标识,目前火车站点始终为&amp;quot;0&amp;quot; }, &amp;quot;vehicle&amp;quot;: &amp;quot;RAIL&amp;quot;,//交通工具:铁路(RAIL) &amp;quot;running_status&amp;quot;: 300,//线路运营状态,取值范围:300:正常301:可能错过末班车302:首班车还未发出 303:停运 &amp;quot;duration&amp;quot;: 34,//路线估算时间,单位:分钟 &amp;quot;departure_time&amp;quot;: &amp;quot;06:35&amp;quot;,//发车时间 &amp;quot;getoff&amp;quot;: { //下车站 &amp;quot;title&amp;quot;: &amp;quot;西城子北&amp;quot;, //站点名称 &amp;quot;location&amp;quot;: { //站点经纬度坐标 &amp;quot;lng&amp;quot;: 116.800722,//经度 &amp;quot;lat&amp;quot;: 39.912064 //纬度 }, &amp;quot;id&amp;quot;: &amp;quot;2199033576481&amp;quot; //站点唯一标识,目前火车站点始终为&amp;quot;0&amp;quot; }, &amp;quot;price&amp;quot;: 300,//预估费用,单位:分,返回-1时为缺少票价信息 &amp;quot;id&amp;quot;: &amp;quot;15537671715386659962&amp;quot;,//线路唯一标识 &amp;quot;polyline&amp;quot;: [ //线路坐标点串,可用于在地图中绘制路线 39.902841, 116.746269 ] } ] } ] } ] } } </code></pre> <h3>错误返回</h3> <pre><code>{ &amp;quot;msg&amp;quot;: &amp;quot;起点经纬度不能为空&amp;quot;, &amp;quot;code&amp;quot;: 400 // 详见code返回码说明 }</code></pre> <h3>polyline 坐标解压</h3> <hr /> <p>polyline为数值型一维数组,格式为: [坐标1纬度 , 坐标1经度 , 坐标2纬度 , 坐标2经度 , 坐标3纬度 , 坐标3经度…], 第一个坐标为原始未被压缩过的,之后的使用前向差分进行压缩,解压方法如下:</p> <pre><code>var coors=[50.243916,127.496637,-345,-1828,19867,-26154]; for (var i = 2; i &amp;lt; coors.length ; i++) {coors[i] = coors[i-2] + coors[i]/1000000}</code></pre> <h3>polyline_idx说明</h3> <hr /> <p>下图为polyline的数组结构,路线全程的坐标点串都在polyline中, &quot;polyline_idx&quot;表达的是路段点串在polyline中的数组下标位置(而非坐标个数位置)的开始到结束序号,举个例子,假设某路段(steps)在polyline中是第4到第6个坐标,则polyline_idx为 “polyline_idx”:[6,11] <img src="http://p.qpic.cn/lbsconsole/0/f0595563c7fc14b40f7e3cf2c5d6dfcf/0" alt="" /></p> <h3>返回字段说明</h3> <table> <thead> <tr> <th>字段名</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>code</td> <td>返回码,详见code返回码说明(非http返回状态码)</td> </tr> <tr> <td>msg</td> <td>code对应的描述</td> </tr> <tr> <td>charge</td> <td>计费标志</td> </tr> <tr> <td>taskNo</td> <td>本次请求号</td> </tr> <tr> <td>data</td> <td>返回具体结果,object类型,详见成功返回样例</td> </tr> </tbody> </table> <h4>code返回码说明</h4> <table> <thead> <tr> <th>code</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>200</td> <td>成功 (计费)</td> </tr> <tr> <td>201</td> <td>查无数据</td> </tr> <tr> <td>400</td> <td>参数错误</td> </tr> <tr> <td>404</td> <td>接口地址不正确</td> </tr> <tr> <td>500</td> <td>系统维护,请稍候再试</td> </tr> <tr> <td>601</td> <td>接口未开通</td> </tr> <tr> <td>602</td> <td>账号停用</td> </tr> <tr> <td>603</td> <td>余额不足请充值</td> </tr> <tr> <td>604</td> <td>接口停用</td> </tr> <tr> <td>701</td> <td>IP地址信息不存在</td> </tr> <tr> <td>702</td> <td>{ip}为内网IP地址</td> </tr> <tr> <td>999</td> <td>其他,以实际返回为准</td> </tr> </tbody> </table>

页面列表

ITEM_HTML