HTTP请求失败,状态代码:403,https://maps.googleapis.com/maps/api/stati



大家早上好,当我点击";当前位置";在我的模拟器屏幕上

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&缩放=16&尺寸=600x300&maptype=路线图&标记=颜色:红色%7标记:C%7C37.4219983,-122.084&密钥=GOOGLE_API_key当抛出异常时,这是堆栈:#0网络映像_loadAsync软件包:flutter/…/paining/network_image_io.dart:100#1网络图像加载软件包:flutter/…/paining/network_image_io.dart:51#2 ImageProvider.resolveStreamForKey。包装:flutter/…/painting/image_provider。dart:505#3 ImageCache.putIfAbsent软件包:flutter/…/绘画/image_cache.dart:360#4 ImageProvider.resolveStreamForKey包装: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图像提供商_createErrorHandlerAndKey。。包装:flutter/…/painting/image_provider。dart:464#8同步未来.then软件包:flutter/…/foundation/synchronousfuture.dart:43#9图像提供商_createErrorHandlerAndKey。包装:flutter/…/painting/image_provider。dart:461#13图像提供商_createErrorHandlerAndKey包装:flutter/…/painting/image_provider。dart:453#14 ImageProvider.resolve包装:flutter/…/painting/image_provider。dart:331#15图像状态_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。dart:3490#20元素更新儿童软件包:flutter/…/widgets/framework。dart:3255#21 SingleChildRenderObjectElement.update软件包:flutter/…/widgets/framework。dart:5881#22元素更新儿童软件包:flutter/…/widgets/framework。dart:3245#23 SingleChildRenderObjectElement.update软件包:flutter/…/widgets/framework。dart:5881#24元素更新儿童软件包:flutter/…/widgets/framework。dart:3245#25 SingleChildRenderObjectElement.update软件包:flutter/…/widgets/framework。dart:5881#26 Element.updateChild软件包:flutter/…/widgets/framework。dart:3245#27 SingleChildRenderObjectElement.update软件包:flutter/…/widgets/framework。dart:5881#28元素更新儿童

这是我的";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: () {},
),
],
),
],
);
}
}

HTTP错误403表示身份验证问题。查看控制台中是否启用了谷歌静态地图。否则,很可能您使用了不正确的API密钥。

最新更新