J'utilise le plugin Google Maps pour flutter : https://pub.dartlang.org/packages/google_maps_flutter
Pour Android, l'application montre la carte et les marqueurs sur le dispositif physique et l'émulateur, mais sur le simulateur de l'iPhone, je ne vois que les marqueurs sur un écran gris comme dans l'image.
J'ai essayé avec différentes clés de l'API, mais aucune ne semble fonctionner.
Voici le code pour iOS (je n'ai pas pu trouver l'AppDelegate.m alors j'ai ajouté dans AppDelegate.switf) :
import UIKit
import Flutter
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
GMSServices.provideAPIKey("MY_KEY") // Add this line!
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
dans Info.plist :
<key>io.flutter.embedded_views_preview</key>
<string>YES</string>
et le code du widget Flutter :
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:father_home_flutter/model/constants.dart';
import 'package:father_home_flutter/model/grown_group_list.dart';
import 'package:father_home_flutter/model/grown_group.dart';
import 'package:father_home_flutter/model/list_church_data.dart';
import 'package:father_home_flutter/model/church_data.dart';
class MapScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() => new _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
final List<GrownGroup> listGroups = GrownGroupList.getGrownList();
final List<ChurchData> listChurch = ListChurchData.getListChurch();
GoogleMapController mapController;
final LatLng _center = const LatLng(55.751244, 37.618423);
void _onMapCreated(GoogleMapController controller) {
mapController = controller;
//shows group list on a red marker
for (int i = 0; i < listGroups.length; i++) {
mapController.addMarker(MarkerOptions(
position: listGroups[i].latLng,
infoWindowText: InfoWindowText(
listGroups[i].name + " " + listGroups[i].hour,
listGroups[i].phoneNumber)));
}
//shows church on a blue marker
for (int i = 0; i < listChurch.length; i++) {
mapController.addMarker(MarkerOptions(
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueBlue),
position: listChurch[i].latLng,
infoWindowText:
InfoWindowText(listChurch[i].name, listChurch[i].schedule)));
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
' ',
style: Constants.myTextStyleAppBar,
),
elevation: Constants.myElevationAppBar,
backgroundColor: Constants.myAppBarColor,
iconTheme: Constants.myIconThemeDataAppBar,
),
body: SafeArea(
child: GoogleMap(
onMapCreated: _onMapCreated,
)),
);
}
}
Quelqu'un pourrait-il m'aider ou m'expliquer pourquoi cela ne fonctionne pas sur le simulateur iOS ?