使用npm引入Google Maps JS API绘制路线报UNKNOWN_ERROR如何解决
问题原因
你遇到的UNKNOWN_ERROR本质是请求参数不符合Google Directions API要求,并非服务端真的故障,核心问题出在drivingOptions配置上:当你指定trafficModel参数时,departureTime必须是未来的时间点,你传入的是当前时间new Date(Date.now()),触发了服务端校验失败。
解决方案按优先级排序:
- 最简单的修复方式:直接删除整段
drivingOptions配置。如果你不需要获取包含实时交通预估的路线数据,这个参数完全是多余的,删除后请求即可正常返回。
修改后的请求参数示例:const res = await directionsService.route({ origin: { query: 'Lille' }, destination: { query: 'Biarritz' }, waypoints: [ { location: 'Paris, France' }, { location: 'Bordeaux, France' }, ], travelMode: google.maps.TravelMode.DRIVING, avoidTolls: true, avoidHighways: false, }); - 如果需要保留交通预测功能,把
departureTime改为未来时间即可,比如设置为1小时后:drivingOptions: { departureTime: new Date(Date.now() + 3600 * 1000), trafficModel: 'pessimistic', } - 若修改参数后仍报错,补充检查以下配置:
- 确认Google Cloud控制台中对应API密钥已正确添加你当前测试域名/本地地址到HTTP referrer白名单,没有额外的访问限制
- 确认账号没有欠费、Directions API配额未耗尽
- 可将地点查询替换为经纬度格式,减少地址解析错误概率,比如里尔可以写为
origin: { lat: 50.6292, lng: 3.0573 }
内容的提问来源于stack exchange,提问作者Big_Boulard
相关产品推荐
相关产品推荐

