【问题标题】:Why Google Distance Matrix Api returning invalid request status? (using Flutter)为什么 Google Distance Matrix Api 返回无效的请求状态? (使用颤振)
【发布时间】:2021-04-28 01:43:24
【问题描述】:

我正在尝试调用距离矩阵 API,每次调用它都会返回一个无效请求,这是我调用请求并解析它的代码

输出:

{destination_addresses: [], origin_addresses: [], rows: [], status: INVALID_REQUEST}

从api请求的功能:

  Future<String> getDuration(LatLng l1, List<LatLng> l2) async {

    var destinations = await _getwaypoints(l2);
    String url =
         "https://maps.googleapis.com/maps/api/distancematrix/json? 
     origin=${l1.latitude},${l1.longitude}&destination=$destinations&departure_time=now&key=$apiKey";
    http.Response response = await http.get(url);
    Map values = jsonDecode(response.body);

    return values.toString();

_getwaypoints 函数,我用它来格式化列表以适合请求:

  Future<String> _getwaypoints(List<LatLng> way) async {
String waypointcoords = '';
// Future<String> finalwaypoints;
if (way == null) {
  return null;
} else {
  for (int i = 0; i <= (way.length - 1); i++) {
    var lat = way[i].latitude.toString();
    var lon = way[i].longitude.toString();
    if (i == 0) {
      waypointcoords += '$lat%2C$lon';
    } else {
      waypointcoords += '%7C$lat%2C$lon ';
    }
  }

  waypointcoords.trim();

  return waypointcoords;
}

}

另外,我尝试传递一个起始位置和一个目的地位置,并且输出相同,

为什么返回无效的请求状态,而它仍然识别出它的距离矩阵 API 并返回空的destination_addresses、origin_addresses 和 rows,

是不是我做错了什么?

【问题讨论】:

    标签: flutter google-maps dart google-maps-flutter


    【解决方案1】:

    在请求 URL 中,必须是 originsdestinations,而不是 origindestination

    【讨论】:

    • 非常感谢,我还以为是方向api呢。
    猜你喜欢
    • 2018-03-28
    • 2019-12-11
    • 1970-01-01
    • 2016-06-08
    • 2020-07-23
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多