您需要可以信赖的实时导航数据:事故、道路封闭、拥堵和带有 ETA 的实用路线。在本指南结束时,您将查询 Waze 的警报和交通拥堵,检索两个坐标之间的驾驶方向,并使用 Zyla API Hub 上的 Waze 数据 API 将这些结果发送到您的应用中。
您可以使用 Waze 数据 API 构建的内容
Waze 数据 API 提供了两个核心导航功能:
- 在地理矩形内的实时警报和拥堵(事故、道路封闭、危险、交通拥堵、警察等)。
- 两个坐标之间的驾驶方向,包括沿每条路线的警报和“is_fastest”及收费/HOV 指示器等标志。
团队使用此功能为驾驶员应用、调度仪表板、操作工具和安全覆盖提供支持。您将获得一个帐户、一个 API 密钥,以及通过 Zyla API Hub 的订阅 + 配额模型,该平台托管超过 10,000 个公共 API。Waze 数据 API 列表为首次 Zyla 用户提供 7 天试用或 50 次请求;请查看 API 页面以获取当前访问选项和定价。
在 Zyla API Hub 上开始
- 打开 Waze 数据 API 页面并开始您的试用: 开始 Waze 数据 API 的 7 天试用。
- 点击订阅或开始免费试用(可用时)以获取您的 API 密钥。
- 使用 Authorization: Bearer YOUR_API_KEY 的请求头向下面的确切 Hub URL 发送请求。
如果您稍后探索其他类别,您可以在 Zyla API Hub 的计划中跨 API 重用相同的密钥。
端点:警报和拥堵
获取边界框内的实时警报和拥堵,指定左下角和右上角的纬度、经度对。适用于地图覆盖、驾驶员警告或地理围栏通知。
- 方法:GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams
- 所需参数:
- bottom_left (string): 51.2800,-0.5100
- top_right (string): 51.5000,-0.0800
- 可选参数:
- max_alerts (string)
- max_jams (string)
cURL
curl -s -X GET "https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams?bottom_left=51.2800%2C-0.5100&top_right=51.5000%2C-0.0800&max_alerts=100&max_jams=0" \
-H "Authorization: Bearer YOUR_API_KEY"
官方示例响应
{
"status": "OK",
"request_id": "86b7f40f-b386-4aee-af95-274974d93184",
"parameters": {
"bottom_left": [
"51.2800",
"-0.5100"
],
"top_right": [
"51.5000",
"-0.0800"
],
"max_alerts": 100,
"max_jams": 0
},
"data": {
"alerts": [
{
"alert_id": "alert-1851823848/7b5e52cb-9549-4955-a117-ce19dd01fe9b",
"type": "HAZARD",
"subtype": "HAZARD_ON_ROAD_CONSTRUCTION",
"reported_by": "Causeway one.network",
"description": ".",
"image": null,
"publish_datetime_utc": "2026-07-22T08:30:00.000Z",
"country": "GB",
"city": "Mole Valley",
"street": null,
"latitude": 51.281508,
"longitude": -0.369863,
"num_thumbs_up": 7,
"alert_reliability": 0,
"alert_confidence": 0,
"near_by": null,
"provider": "Elgin (Road works)",
"provider_id": "151505923",
"comments": [],
"num_comments": 0
},
{
"alert_id": "alert-1191763163/60f6957d-0668-49d6-b43f-710177584187",
"type": "HAZARD",
"subtype": "HAZARD_ON_ROAD_CONSTRUCTION",
"reported_by": "Causeway one.network",
"description": ".",
"image": null,
"publish_datetime_utc": "2026-05-15T13:00:00.000Z",
"country": "GB",
"city": "Mole Valley",
"street": "Durleston Park Dr",
"latitude": 51.280691,
"longitude": -0.365612,
"num_thumbs_up": 39,
"alert_reliability": 0,
"alert_confidence": 0,
"near_by": null,
"provider": "Elgin (Road works)",
"provider_id": "149944301",
"comments": [],
"num_comments": 0
},
{
"alert_id": "alert-1618880859/60722796-8030-486e-913c-4e683837b754",
"type": "ROAD_CLOSED",
"subtype": null,
"reported_by": "ClosureMonitor",
"description": "因道路施工关闭,直至 7 月 31 日。参考 #151583431",
"image": null,
"publish_…
您实际使用的关键字段:
- data.alerts[].type 和 subtype:用于 UI 标签和过滤的危险/拥堵/封闭分类。
- latitude 和 longitude:在地图上绘制或计算与路线/停靠点的接近度。
- publish_datetime_utc:时间戳为 UTC ISO-8601;存储为 UTC,仅在客户端显示时转换。
- city、street、description:填充通知文本或操作员仪表板。
- num_thumbs_up:用于分类的简单信心代理。
Python 示例:过滤施工危险和道路封闭
import requests
API_KEY = "YOUR_API_KEY"
url = "https://zylalabs.com/api/4814/waze-data-api/6003/alerts-and-jams"
params = {
"bottom_left": "51.2800,-0.5100",
"top_right": "51.5000,-0.0800",
"max_alerts": "100",
"max_jams": "0",
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, headers=headers, params=params, timeout=20)
resp.raise_for_status()
payload = resp.json()
alerts = (payload.get("data") or {}).get("alerts") or []
construction_or_closed = []
for a in alerts:
a_type = a.get("type")
a_sub = a.get("subtype")
if a_type == "ROAD_CLOSED" or a_sub == "HAZARD_ON_ROAD_CONSTRUCTION":
construction_or_closed.append({
"id": a.get("alert_id"),
"type": a_type,
"subtype": a_sub,
"when_utc": a.get("publish_datetime_utc"),
"lat": a.get("latitude"),
"lon": a.get("longitude"),
"street": a.get("street"),
"city": a.get("city"),
"desc": a.get("description"),
})
print(f"总警报数:{len(alerts)}(施工/关闭:{len(construction_or_closed)})")
for row in construction_or_closed[:5]:
print(row)
注意:
- 坐标作为逗号分隔的字符串传递。cURL 示例中的 URL 编码逗号由 requests 库自动处理。
- 单位:坐标以度为单位;时间戳为 UTC;此端点未记录分页—使用边界框和可选的 max_alerts/max_jams 进行流量控制。
- 缓存失效:这些警报本质上是实时的;如果您在服务器层中缓存,请保持关键安全类别的 TTL 短。
端点:驾驶方向
检索两个坐标之间的路线选项及每条路线上的警报。这对于显示替代方案、计算 ETA 和提供行程前的危险预览非常理想。API 支持设置所需的到达时间,但此处未详细说明参数—请查看 API 页面以获取最新选项。
- 方法:GET
- URL: https://zylalabs.com/api/4814/waze-data-api/6004/driving-directions
- 所需参数:
- source_coordinates (string): 32.0852999,34.78176759999999
- destination_coordinates (string): 32.7940463,34.989571
cURL
响应中可以期待的内容
响应包括一个或多个具有以下属性的路线:
- route_name:适合 UI 的标签。
- length_meters 和 duration_seconds:用于距离/ETA 显示和排序。
- is_fastest、is_toll、is_hov:路线选择逻辑。
- alerts:沿路线的警报标记数组(类型、子类型、坐标)。
示例字段如下:
实用提示:
- duration_seconds 以秒为单位;转换为分钟以供用户显示,并保留原始秒数以进行 ETA 计算。
- length_meters 以米为单位;对于英里或公里,客户端转换以避免四舍五入问题。
- 如果您需要路线几何,检查类似 route_coordinates 的字段;在上面的示例中,它存在但为空—请查看 API 页面以获取当前行为和标志。
您本周可以发布的高信号导航用例
- 地理围栏驾驶员警报:每 N 秒/分钟查询您的服务区域的警报和拥堵,并在 X 米内推送 ROAD_CLOSED 或 HAZARD_ON_ROAD_CONSTRUCTION 类型的通知。
- 调度仪表板覆盖:在区域边界框内绘制所有 data.alerts 标记;按类型着色(例如,ROAD_CLOSED 为红色,HAZARD 为琥珀色)。
- 分配前的路线审核:调用驾驶方向以获取候选的接送;拒绝 is_toll=true 的非最快路线,除非工作允许收费。
- ETA 感知客户消息:使用 duration_seconds 设置期望,并在 is_fastest 较小的情况下显示前两个替代方案。
- 操作监控:通过 num_thumbs_up 和子类型过滤跟踪施工危险的峰值,以优先考虑与现场团队的沟通。
节省时间的实施细节
- 坐标顺序:所有显示的参数使用纬度、经度的顺序,作为逗号分隔的字符串。
- 边界框:在设备上轮询时使用围绕驾驶员的小矩形,或按区域使用更大的框进行服务器端聚合。
- 时间戳:publish_datetime_utc 为 UTC;在整个后端存储为 UTC,仅在客户端呈现时本地化。
- 错误处理:检查状态和 request_id 以便于观察;记录 request_id 以与您的监控相关联。
- 吞吐量:市场使用订阅 + 配额模型,而不是按调用付费。对于首次 Zyla 用户,第一个 API 提供 7 天试用或 50 次请求。没有免费计划。有关当前配额和限制,请参见 API 页面。
通过 MCP 从 AI 代理调用 API
如果您使用与 MCP 兼容的客户端(Claude Code、Cursor、Windsurf 等),请将它们指向 Zyla MCP 端点,并在 URL 中提供您的密钥:
配置完成后,您的代理可以使用 Authorization: Bearer YOUR_API_KEY 头调用相同的 Waze 数据 API Hub URL。这对于自动生成集成代码、起草获取函数或在开发过程中运行快速测试调用非常有帮助。
端到端示例流程
- 在行程创建时,调用驾驶方向,提供 source_coordinates 和 destination_coordinates。选择 is_fastest 为 true 的路线;存储 duration_seconds 以获取 ETA。
- 在行程中,轮询驾驶员周围的小边界框的警报和拥堵。如果您在前方 300 米内收到 type=ROAD_CLOSED,请重新请求驾驶方向并建议重新路线。
- 在您的仪表板中,使用相同的警报和拥堵端点可视化所有活动区域的当前警报,按子类型和 publish_datetime_utc 在您的时效阈值内进行过滤。
故障排除清单
- 401/403 响应:验证 Authorization: Bearer YOUR_API_KEY 并确保您的订阅处于活动状态。
- 空警报数组:确认您的边界框确实与道路网络相交,并且 max_alerts/max_jams 不过于严格。
- 客户端地图缓慢:通过过滤到一部分类型来减少符号密度,或在更高的缩放级别聚合标记。
- ETA 感觉过时:当警报和拥堵显示与您的路径相关的附近 JAM 或 ROAD_CLOSED 时,重新查询驾驶方向。
常见问题
我应该多久轮询一次警报和拥堵?
这取决于您的用例和配额。对于安全关键的覆盖,保持短时间间隔,但与您的限制保持平衡;对于仪表板,较长的间隔可能足够。开始时小规模,测量流量,然后调整。
length_meters 和 duration_seconds 使用什么单位?
分别为米和秒。根据需要在客户端转换为英里/公里和分钟。
我可以请求期望的到达时间的路线吗?
驾驶方向端点支持设置所需的到达时间,但此处未详细说明参数。请查看 API 页面以获取当前选项。
我如何仅过滤施工或封闭?
检查 data.alerts[].type 和 subtype,例如,type=ROAD_CLOSED 或 subtype=HAZARD_ON_ROAD_CONSTRUCTION。
这是按调用付费吗?
不。Zyla 使用订阅 + 配额模型。对于首次 Zyla 用户,第一个 API 提供 7 天试用或 50 次请求。有关当前详细信息,请参见列表。
准备将实时 Waze 导航数据添加到您的产品中吗?创建您的帐户,获取您的密钥,并开始使用 Waze 数据 API 构建: 开始 Waze 数据 API 的 7 天试用。