用于颤振的 GoogleMaps 插件仅显示 ios 模拟器上的标记
Posted
技术标签:
【中文标题】用于颤振的 GoogleMaps 插件仅显示 ios 模拟器上的标记【英文标题】:GoogleMaps plugin for flutter shows only the markers on ios simulator 【发布时间】:2019-06-23 20:08:20 【问题描述】:我正在使用谷歌地图插件进行颤振:https://pub.dartlang.org/packages/google_maps_flutter
对于 android,应用程序在物理设备和模拟器上显示地图和制造商,但在 iPhone 的模拟器上,我只能看到灰屏上的标记。
我正在尝试使用 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 模拟器上不起作用?
【问题讨论】:
【参考方案1】:当我遇到这个问题时有两个可能的问题。
确保您已在您的 api 控制台“https://console.cloud.google.com/google/maps-apis/.......”中启用“Maps SDK for iOS”
确保您的包 ID 名称与您的控制台设置包 ID 名称匹配。
【讨论】:
这已为我解决了!【参考方案2】:你激活模拟器上的位置了吗?
【讨论】:
是的,已激活,我尝试在 Debug - Location 中进行更改,并尝试了所有选项,但地图仍然是灰色的。【参考方案3】:请记住,此插件是 0.2 版的开发者预览版。许多事情可能还没有奏效。
【讨论】:
以上是关于用于颤振的 GoogleMaps 插件仅显示 ios 模拟器上的标记的主要内容,如果未能解决你的问题,请参考以下文章
使用 PhoneGap 和 googlemaps 插件更新位置跟踪的标记位置
颤振| Android Gradle插件仅支持Kotlin Gradle插件版本1.3.0及更高版本