S苏哈出行开发者文档

驾车路线规划

使用 sdk.Driving 查询汽车路线。若需要跟随设备持续引导,使用驾车导航,不要把本页预览结果直接传给导航控制器。

完整调用片段

先安装当前交付的 npm 包,页面提供有高度的 map 容器,并引入 SDK 样式。本片段按 ESM 运行;普通网页可将导入和 load(...) 替换为 SukhaSDK.load(...)。

import {load} from '@sukha/maps';
const sdk = await load({key:'YOUR_WEB_KEY', serviceBaseUrl:'https://map.sukha.cn',
  datasetId:'shan', language:'zh-CN'});
const map = new sdk.Map('map', {center:[100.02228,21.67623], zoom:15});
const driving = new sdk.Driving({map, policy:sdk.DrivingPolicy.LEAST_TIME});
let alive = true;
async function planDriving(origin, destination) {
  try {
    const result = await driving.search(origin, destination, {waypoints:[]});
    if (!alive) return;
    const route = result.routes[0];
    if (!route) { console.log('暂无可用驾车路线'); return; }
    console.log('驾车距离(米)', route.distance, '预计耗时(秒)', route.time);
    return route;
  } catch (error) { if (alive) console.error(error.code, error.message, error.requestId); }
}
// 预览演示坐标;实际产品将选定的起终点传入。
void planDriving([100.02228,21.67623], [100.024,21.678]);
window.addEventListener('pagehide', () => {
  alive = false; driving.destroy(); map.destroy();
}, {once:true});

策略、途经点和避让

选项 当前支持
DrivingPolicy.LEAST_TIME 时间优先,对应服务策略 TIME
DrivingPolicy.LEAST_DISTANCE 距离优先,对应 DISTANCE
search(origin,destination,{waypoints}) 最多 16 个途经点
setAvoidPolygons(areas) 最多 3 个区域,每个 3–16 个顶点;传空数组清除
setAvoidRoad(name) 道路名称最多 200 字符;传空字符串清除

设置非空道路避让会清除区域避让;设置非空区域避让会清除道路避让。以上为 JS 接口的限制,与 Android 参数上限不完全相同。服务不支持约束时显示错误,不静默退化。

请求参数和返回值均为当前公开坐标模式;米和秒只在显示时换算。需要自行绘制时,可不传 map,使用返回的 route.path 创建公开 Polyline。

规划总览与错误处理 · 步行规划 · 驾车导航