flutter - HTTP 请求失败,状态码:403,https://maps.googleapis.com/maps/api/staticmap?
问题描述
大家早上好,当我在模拟器屏幕上单击“当前位置”时出现此错误
EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following NetworkImageLoadException was thrown resolving an image codec:
HTTP request failed, statusCode: 403,
https://maps.googleapis.com/maps/api/staticmap?
center=&37.4219983,-122.084&zoom=16&size=600x300&maptype=roadmap&markers=color:red%7Clabel:C%7C37.4219983,-122.084&key=GOOGLE_API_KEY 抛出异常时,这是堆栈:#0 NetworkImage._loadAsync 包:flutter/…/painting/_network_image_io.dart:100 #1 NetworkImage.load 包:flutter/…/painting/_network_image_io.dart:51 #2 ImageProvider.resolveStreamForKey。package:flutter/…/painting/image_provider.dart:505 #3 ImageCache.putIfAbsent package:flutter/…/painting/image_cache.dart:360 #4 ImageProvider.resolveStreamForKey package:flutter/…/painting/image_provider.dart:503 # 5 ScrollAwareImageProvider.resolveStreamForKey 包:flutter/…/widgets/scroll_aware_image_provider.dart:108 #6 ImageProvider.resolve。包:flutter/…/painting/image_provider.dart:334 #7 ImageProvider._createErrorHandlerAndKey.. package:flutter/…/painting/image_provider.dart:464 #8 SynchronousFuture.then package:flutter/…/foundation/synchronous_future.dart:43 #9 ImageProvider._createErrorHandlerAndKey. package:flutter/…/painting/image_provider.dart:461 #13 ImageProvider._createErrorHandlerAndKey package:flutter/…/painting/image_provider.dart:453 #14 ImageProvider.resolve package:flutter/…/painting/image_provider.dart:331 # 15 _ImageState._resolveImage 包:flutter/…/widgets/image.dart:1116 #16 _ImageState.didChangeDependencies 包:flutter/…/widgets/image.dart:1069 #17 StatefulElement._firstBuild 包:flutter/…/widgets/framework。 dart:4705 #18 ComponentElement.mount 包:flutter/…/widgets/framework.dart:4520 #19 Element.inflateWidget 包:flutter/…/widgets/framework。
这是我的“LocationHelper”代码
const GOOGLE_API_KEY = "I entered my API KEY here";
class LocationHelper {
static String generateLocationPreviewImage({double latitude, double longitude}) {
return "https://maps.googleapis.com/maps/api/staticmap?center=&$latitude,$longitude&zoom=13&size=600x300&maptype=roadmap&markers=color:red%7Clabel:C%7C$latitude,$longitude&key=$GOOGLE_API_KEY";
}
}
这是我使用它的地方
import 'package:flutter/material.dart';
import 'package:location/location.dart';
import '../helpers/location_helper.dart';
class LocationInput extends StatefulWidget {
@override
_LocationInputState createState() => _LocationInputState();
}
class _LocationInputState extends State<LocationInput> {
String _previewImageUrl;
Future<void> _getCurrentUserLocation () async {
final locData = await Location().getLocation();
final staticMapImageUrl = LocationHelper.generateLocationPreviewImage(
latitude: locData.latitude,
longitude: locData.longitude,
);
setState(() {
_previewImageUrl = staticMapImageUrl;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Container(
alignment: Alignment.center,
height: 200,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
border: Border.all(
width: 1,
color: Colors.grey,
),
),
child: _previewImageUrl == null
? Text(
"No location found",
textAlign: TextAlign.center,
)
: Image.network(_previewImageUrl,
fit: BoxFit.cover, width: double.infinity),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton.icon(
label: Text(
"Current Location",
),
textColor: Theme.of(context).primaryColor,
icon: Icon(Icons.location_on),
onPressed: _getCurrentUserLocation ,
),
FlatButton.icon(
label: Text(
"Select on Map",
),
textColor: Theme.of(context).primaryColor,
icon: Icon(Icons.map),
onPressed: () {},
),
],
),
],
);
}
}
解决方案
推荐阅读
- javascript - Angular 在不同的组件中显示搜索结果
- ios - 领域文件作为 UIDocument
- python - YDL 在我的简单不和谐机器人中不起作用
- java - Spring Cloud 如何排除 BootstrapConfiguration
- php - 类数据库关闭连接
- javascript - 正则表达式边界 JS
- ruby - 在 Ruby 中,当初始化一个只包含 nil 的新类时,为什么我将一个字符串铲入其中后仍然返回 nil?
- r - 找出差异最大的 2 个变量并将它们组合成一个变量
- docker - 使用 Docker Desktop 运行 WSL 时,Docker 卷位于何处?
- apostrophe-cms - 如何编辑 url 以注销 ApostropheCMS