Flutter Web - 本地主机请求maps.googleapis.com

问题描述 投票:0回答:1

我正在开发一个 flutter 项目,遇到了一个问题,无法向 google 地图方向 API 发出网络请求。 https://maps.googleapis.com/maps/api/directions

我已经尝试设置网络限制并添加本地主机。 当这不起作用时,我将其设置为“none”,看看这是否会产生影响,但没有运气。 不幸的是,我使用 DIO 得到的回复并不是很有帮助。 下面是错误消息和代码示例。

"The connection errored: The XMLHttpRequest onError callback was called. This typically indicates an error on the network layer. This indicates an error which most likely cannot be solved by the library."

Future<List<LatLng>> fetchRouteCoordinates(LatLng start, LatLng end) async {
    try {
      const String baseUrl =
          'https://maps.googleapis.com/maps/api/directions/json';
      const String apiKey =
          '<API Key>'; // Replace with your Google Maps API key

      // final url = Uri.parse(
      //     '$baseUrl?origin=${start.latitude},${start.longitude}&destination=${end.latitude},${end.longitude}&key=$apiKey');

      final response = await Dio(BaseOptions()).get(
          '$baseUrl?origin=${start.latitude},${start.longitude}&destination=${end.latitude},${end.longitude}&key=$apiKey');

      if (response.statusCode == 200) {
        final data = jsonDecode(response.data);
        final polyline = data['routes'][0]['overview_polyline']['points'];
        return decodePolyline(polyline);
      } else {
        throw Exception('Failed to load directions');
      }
    } catch (e) {
      log.e(e);
      return [];
    }
  }
flutter google-maps dio google-directions-api
1个回答
0
投票

这可能是 Cors 政策问题吗? 您可以尝试使用这一行来测试:

const String proxyUrl = 'https://cors-anywhere.herokuapp.com/';
© www.soinside.com 2019 - 2024. All rights reserved.