Плагин Google Flaps для флаттера показывает только маркеры на симуляторе ios - PullRequest
0 голосов
/ 30 января 2019

Я использую плагин Google Maps для трепетания: https://pub.dartlang.org/packages/google_maps_flutter

Для Android приложение показывает карту и создателей на физическом устройстве и эмуляторе, но на симуляторе iPhone я вижу толькомаркеры на сером экране, как на рисунке.

enter image description here

Я пробовал использовать разные ключи API, похоже, никто не работает.

это код для iOS (я не смог найти AppDelegate.m, поэтому я добавил в 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)
  }
}

в Info.plist:

<key>io.flutter.embedded_views_preview</key>
    <string>YES</string>

и код виджета 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,
      )),
    );
  }
}

Кто-нибудь может мне помочь или объяснить, почему это не работает на симуляторе iOS?

Ответы [ 3 ]

0 голосов
/ 03 февраля 2019

Имейте в виду, этот плагин является предварительным просмотром разработчика в версии 0.2.Многие вещи, вероятно, еще не работают.

0 голосов
/ 25 марта 2019

Когда я столкнулся с этой проблемой, возникли две возможные проблемы.

  1. Убедитесь, что вы включили "Maps SDK для iOS" в консоли API "https://console.cloud.google.com/google/maps-apis/......."

  2. Убедитесь, что ваше имя идентификатора пакета совпадает с именем идентификатора пакета настроек консоли.

0 голосов
/ 30 января 2019

Вы активировали локацию на симуляторе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...