我开始用flutter开发,我想使用google_maps_flutter包。
我正在阅读中级文章,以便将地图添加到我的应用(https://medium.com/flutter-io/google-maps-and-flutter-cfb330f9a245)。
我在AppDelegate.m中添加了此代码
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import "GoogleMaps/GoogleMaps.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GMSServices provideAPIKey:@"******"];
[GeneratedPluginRegistrant registerWithRegistry:self];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end
并将其发送到Info.plist
<key>io.flutter.embedded_views_preview</key>
<true/>
这是小部件代码:
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
GoogleMapController mapController;
final LatLng _center = const LatLng(45.521563, -122.677433);
void _onMapCreated(GoogleMapController controller) {
mapController = controller;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Maps Sample App'),
backgroundColor: Colors.green[700],
),
body: GoogleMap(
onMapCreated: _onMapCreated,
options: GoogleMapOptions(
cameraPosition: CameraPosition(
target: _center,
zoom: 11.0,
),
),
),
),
);
}
}
作为帖子中的示例,但不幸的是,我得到了一个带有google maps小部件的屏幕,但未显示地图。像这样:https://i.imgur.com/HGam5ac.jpg(我无法上传图片,因为信誉低,很抱歉:()。
sdk是否有问题?还是代码中需要更改?
谢谢您的帮助!
答案 0 :(得分:0)
我遇到了同样的问题,并花了一些时间来解决它。
请注意,建议不要取消限制API密钥,这应该是一个临时解决方案。
首先,如果您尚未在Google Cloud Platform帐户中启用计费功能,则无法使用Google Maps API。
我通过确保不限制我的API密钥来解决此问题。 我删除了以前的API密钥并创建了一个新的API密钥,但是这次我没有限制该API密钥。
此后正确加载了地图。
如果您打算使用地理定位服务,可能会有助于将以下代码添加到ios/Runner/Info.plist
文件中
<key>NSLocationWhenInUseUsageDescription</key>
<string>Reason for requesting location permission</string>
如果您不知道如何创建API密钥,请点击此链接Get API Key.
这是我的API密钥配置的样子
这就是我的应用程序中的地图页面的样子