Google Map Distance Matrix默认单位未按起点正确显示问题咨询
Google Maps Distance Matrix 单位返回异常问题解答
官方规则说明:Google Map Distance Matrix接口默认会根据起点所在地区自动适配返回的距离单位。
问题原因
- 单位适配优先级规则问题:接口的单位返回逻辑存在优先级排序,显式指定的
units参数优先级最高,其次是请求携带的region参数、请求来源IP对应的属地规则,最后才是起点所属区域的适配规则。你未指定units参数时,如果请求来源IP位于公制单位使用区域,或接口默认匹配的区域为公制区域,会覆盖起点的美国属地适配逻辑,优先返回公里单位。 - 坐标归属识别误差:你传入的经纬度若刚好处于区域识别边界,接口可能出现归属地判定偏差,触发公制单位返回,该情况出现概率极低。
解决方案
- 强制指定单位参数:最稳定的方案是直接在请求URL中添加
units=imperial参数,强制返回英制单位(英里),修改后的请求如下:https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.56289771529413,-74.32660038907106&destinations=40.86257148047112,-74.77304115053154&units=imperial&key=MY_API_KEY - 补充区域参数:如果需要使用自动适配逻辑,可以在请求中添加
region=us参数,指定请求区域为美国,此时接口会优先匹配美国的英制单位规则,无需显式指定units也会返回英里结果。 - 调整请求头配置:如果调用请求携带了
Accept-Language头,可将其设置为en-US,避免语言对应的属地规则影响单位返回结果。
内容的提问来源于stack exchange,提问作者Sowmyan Soman
相关产品推荐
相关产品推荐

