腾讯地图_步行路线规划
<h3>接口描述</h3>
<ul>
<li>可根据起终点坐标检索符合条件的步行路线规划方案,基于步行路线规划。</li>
</ul>
<h3>请求地址</h3>
<p><code>https://api.jumdata.com/ttmap/route/walk</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>起点位置坐标 <br/>格式:纬度在前,经度在后,半角逗号分隔。<br/>注:系统将吸附就近道路作为起点,最大20公里内若无道路,则会算路失败<br/> 譬如:39.915285,116.403857</td>
</tr>
<tr>
<td>destinations</td>
<td>String</td>
<td>是</td>
<td>终点位置坐标 <br/>格式:lat,lng<br/>注:直线距离过长或过短会算路失败,最短距离不小于10米,最长距离不超过300公里</td>
</tr>
<tr>
<td>destinationPoi</td>
<td>String</td>
<td>否</td>
<td>终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优。<br/>该参数优先级高于to(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用to(坐标)作为终点</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 = &quot;xyzxy2121zxyz&quot;;
String timestamp = &quot;1555378976238&quot;;
String appSecret = &quot;efcefcef1121cefcefc1212121&quot;;
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>正确返回</h3>
<pre><code>{
&quot;code&quot;: 200, // 详见code返回码说明
&quot;msg&quot;: &quot;成功&quot;, // code对应的描述
&quot;charge&quot;: true, // 计费标志
&quot;taskNo&quot;: &quot;69564903663951243279&quot;, // 本次唯一请求号
&quot;data&quot;: {
&quot;routes&quot;: [ //路线方案
{
&quot;distance&quot;: 38940,//方案整体距离,单位:米
&quot;steps&quot;: [ //路线步骤
{
&quot;road_name&quot;: &quot;东华门大街&quot;,//阶段路线路名
&quot;distance&quot;: 238, //阶段路线距离,单位:米
&quot;act_desc&quot;: &quot;直行&quot;, //阶段路线末尾动作
&quot;polyline_idx&quot;: [ //阶段路线坐标点串在方案路线坐标点串的位置
0,
25
],
&quot;type&quot;: 0,//阶段路线的步行设施类型(type),包含:0普通道路,1过街天桥,2地下通道,3人行横道
&quot;dir_desc&quot;: &quot;东&quot;, //阶段路线方向
&quot;instruction&quot;: &quot;从起点朝东,沿东华门大街行进238米,直行进入东安门大街&quot;, //阶段路线描述
&quot;road_class&quot;: 6
}
],
&quot;mode&quot;: &quot;WALKING&quot;, //方案交通方式,固定值:“WALKING”
&quot;duration&quot;: 590,//方案估算时间,单位:分钟
&quot;polyline&quot;: [ //方案路线坐标点串(该点串经过压缩,解压请参考:polyline 坐标解压)
39.915238,
116.403875
],
&quot;direction&quot;: &quot;南&quot; //方案整体方向
}
]
}
}</code></pre>
<h3>错误返回</h3>
<pre><code>{
&quot;msg&quot;: &quot;起点经纬度不能为空&quot;,
&quot;code&quot;: 400 // 详见code返回码说明
}</code></pre>
<h3>阶段路线末尾动作(act_desc)列表</h3>
<p>左转
右转
偏左转
偏右转
左后转
右后转
左转掉头
直行
空</p>
<h3>阶段路线方向(dir_desc)列表</h3>
<p>东
东北
北
西北
西
西南
南
东南
“” 空(为空时,代表导航段有转弯且方向发生变化)</p>
<h3>polyline 坐标解压</h3>
<hr />
<p>polyline为数值型一维数组,格式为:<br />
[坐标1纬度 , 坐标1经度 , 坐标2纬度 , 坐标2经度 , 坐标3纬度 , 坐标3经度…],<br />
第一个坐标为原始未被压缩过的,之后的使用前向差分进行压缩,解压方法如下: </p>
<pre><code>var coors=[50.243916,127.496637,-345,-1828,19867,-26154];
for (var i = 2; i &lt; coors.length ; i++)
{coors[i] = coors[i-2] + coors[i]/1000000}</code></pre>
<h3>polyline_idx说明</h3>
<hr />
<p>下图为polyline的数组结构,路线全程的坐标点串都在polyline中, "polyline_idx"表达的是路段点串在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>