等时线 API 常见问题解答

如何计算入站“通勤”等时线(前往目的地)与出站等时线(从出发地出发)?

v1 API 支持使用 travelDirection (travel_direction) 参数进行入站和出站计算:

  • FROM(出站):计算在指定时间限制内从起点可到达的区域。from这适用于自送区域或服务覆盖范围等应用场景。

  • TO(入站):计算在指定时间限制内可以从哪些区域前往to起点。这适用于通勤功能或确定中心办公室或交通枢纽周围的集水区等应用。

四种出行方式(DRIVE、TWO_WHEELER、BICYCLE 和 WALK)有何不同?

每种模式都有自己的道路网络访问规则、转弯费用和速度模型:

  • DRIVE:使用公布的速度、自由流速度或实时交通速度 (TRAFFIC_AWARE) 遍历可行驶道路,最长 3,600 秒(60 分钟)。
  • TWO_WHEELER:遍历机动两轮车可通行的道路,在高速道路上的建模速度低于 DRIVE,并可选择 TRAFFIC_AWARE 路线,最长 3,600 秒(60 分钟)。因此,在高速公路上,TWO_WHEELER 等时线大于 BICYCLE,但小于 DRIVE。
  • BICYCLE:穿过自行车可通行的街道、自行车道和路径,并根据道路类型和坡度(不包括高速公路和高速路)调整速度,最长可达 7,200 秒(120 分钟)。
  • WALK:穿过人行道、小径和街道,步行速度根据坡度进行调整(忽略单向车辆限制),最长 7,200 秒(120 分钟)。

Isochrones API 是否包含渡轮或水上交通?

否。Isochrones API 仅遍历道路、桥梁、隧道和路径连接。所有出行方式均不包含轮渡路线和水上交通。仅通过渡轮连接的岛屿或半岛不会包含在从大陆生成的等时线中。

有时,返回的多边形看起来呈块状或具有锯齿状、阶梯状边缘,尤其是在时长较长时。为什么详细程度会发生变化?

Isochrones API 会根据请求的 travel_duration 和 travel_mode 动态调整其空间计算网格的分辨率:

  • 较短时长:使用高度精细的高分辨率网格,因为总面积较小,从而可以获得详细的边界。
  • 较长时长:过渡到更粗略、分辨率更低的网格,以便高效覆盖广阔的地理区域,而不会造成严重的延迟。

如果您需要特定且一致的详细程度(无论时长如何),可以将可选的 polygon_fidelity 设置为 HIGH、MEDIUM 或 LOW。

为什么请求公园、湖泊或大型工业园区内坐标的等时线有时会返回“未找到”错误?

Isochrones API 会根据道路和路径计算行程时间。如果您请求的起点坐标不在可识别的道路上,则 API 必须在开始计算之前将该点“吸附”到最近的兼容路段。

每种出行方式的最大吸附距离约为 200 米或更短。 WALK 和 BICYCLE 使用的距离比 DRIVE 和 TWO_WHEELER 短,DRIVE 和 TWO_WHEELER 会忽略仅限行人通行的路径。

如果您的起点坐标与有效且与出行方式兼容的路段之间的距离超过此距离,则吸附会失败,并且 API 会返回 NOT_FOUND 错误。如需解决此问题,请确保您的坐标靠近公共街道或通道。

为什么我在请求步行或骑行路线时会收到错误提示?

DRIVE 和 TWO_WHEELER 出行方式支持实时路况信息 (TRAFFIC_AWARE)。如果您尝试请求 WALK 或 BICYCLE 的等时线,并将 routingPreference 设置为 TRAFFIC_AWARE,则 API 会返回 400 INVALID_ARGUMENT 错误。

当我在地图上呈现 GeoJSON 响应时,形状显示在错误的位置、失真或无法呈现。是什么原因导致的?

这几乎总是由坐标顺序不匹配引起的。

Isochrones API 遵循 GeoJSON 标准 (RFC 7946),按 [longitude, latitude] 的顺序返回坐标。不过,许多地图 SDK 和自定义几何图形对象都要求坐标顺序为 [latitude, longitude]。

如果地图渲染不正确,请检查地图 SDK 如何处理 GeoJSON:

  • Google Maps JavaScript API:如果您使用的是数据层 (map.data.addGeoJson()),则此顺序由系统原生处理,您无需执行任何操作。
  • 自定义对象或其他 SDK:如果您要手动将响应解析为 LatLng 对象,则必须在渲染之前循环遍历 GeoJSON 载荷中的坐标,并将 [lng, lat] 值转置为 [lat, lng] 对。

为什么我的等时线多边形内部有空心的“孔洞”?我可以改为获取实心形状吗?

空洞表示在时间限制内没有可到达道路的区域。这在拥有大片森林、水体、机场或车辆/行人无法通行的私有房产的区域很常见。

外部 v1 API 不会公开用于自动移除孔洞的参数。如果您的应用需要实心边界(例如,执行点在多边形内的包含检查),您可以:

  • 将 polygon_fidelity 参数设置为 MEDIUM 或 LOW,以鼓励算法对这些内部间隙进行泛化和合并。
  • 使用客户端 GIS 库(例如 Turf.js)解析 GeoJSON,并仅提取第一个坐标环(外壳),舍弃任何后续内环(孔)。

我是否应该为后端空间分析启用 enable_smoothing 选项?

不可以。enable_smoothing 参数纯粹是为了视觉美观而设计的。 它会使底层计算网格的尖角变圆,使形状在地图上看起来更自然。

不建议对精确的空间分析进行平滑处理,因为它会改变顶点并略微移动边界。对于后端计算、数据库查询或点在多边形内测试,请将 enable_smoothing 设置为 false,以确保您使用的是数学上精确计算的边界。