R包gmapsdistance运行需启用哪类Google Maps API
所需API说明
你当前的报错根源是仅开通了Google Geocoding API,缺少gmapsdistance包计算路线距离必需的核心API权限,不同使用场景需要开通的具体API如下:
- 单起点单终点路线查询(即你当前测试的华盛顿到纽约驾车场景):必须开通 Directions API
Geocoding API仅负责把文本格式的地址解析为经纬度坐标,本身不提供路线距离、通行时长的计算能力,这部分能力完全由Directions API提供,也是你当前收到未授权报错对应的缺失接口。 - 多起点/多终点批量距离矩阵计算:除上述API外,还需要开通 Distance Matrix API
如果调用时传入的origin或destination是包含多个地点的向量,需要批量计算多组起终点的距离数据,包会调用Distance Matrix API完成计算,必须提前开通。 - 步行、骑行、公共交通等其他出行模式不需要额外开通专属API,对应数据都可以通过Directions API/Distance Matrix API返回。
配置注意事项
- 开通对应API后,如果你的API Key设置了调用范围限制(强烈建议设置,避免密钥泄露后产生超额费用),需要把新开通的Directions API、Distance Matrix API都加入该密钥的允许调用列表,否则依然会返回未授权错误。
- API权限开通后存在1-2分钟的生效延迟,不需要立刻重复发起调用,等待片刻后直接运行原有代码即可。
- 你当前的测试代码属于单起点单终点的驾车查询场景,在已开通Geocoding API的基础上,加开Directions API即可正常运行,不需要修改现有代码。
API生效后直接执行原有代码即可返回正常结果:
library(gmapsdistance) set.api.key("MY_KEY") results = gmapsdistance(origin = "Washington+DC", destination = "New+York+City+NY", mode = "driving")
内容的提问来源于stack exchange,提问作者DiamondJoe12
相关产品推荐
相关产品推荐

