2 votes

Le plugin GoogleMaps pour flutter ne montre que les marqueurs sur le simulateur ios

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.

enter image description here

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 ?

3voto

AhabLives Points 1058

Deux problèmes possibles lorsque j'ai rencontré ce problème.

  1. Assurez-vous que vous avez activé "Maps SDK for iOS" dans votre console api " https://console.cloud.google.com/google/maps-apis/ ......."

  2. Assurez-vous que le nom d'identification de votre bundle correspond au nom d'identification du bundle de vos paramètres de console.

0voto

Loan Points 149

Avez-vous activé l'emplacement sur le simulateur ?

0voto

Randal Schwartz Points 9756

Gardez à l'esprit que ce plugin est un aperçu de développeur à la version 0.2. De nombreuses choses ne fonctionnent probablement pas encore.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X