我正在开发一个 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 [];
}
}
这可能是 Cors 政策问题吗? 您可以尝试使用这一行来测试:
const String proxyUrl = 'https://cors-anywhere.herokuapp.com/';