Как интегрировать с гугл картами в флаттер? - PullRequest
0 голосов
/ 16 января 2019

Я начал разрабатывать с флаттером и хочу использовать пакет 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? или в коде есть что изменить?

Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 18 мая 2019

Я столкнулся с той же проблемой и потратил некоторое время на ее выяснение.

Обратите внимание, что не рекомендуется ограничивать ваш ключ API и должно быть временным решением.

Прежде всего, вы не можете использовать API Карт Google, если вы не включили биллинг в своей учетной записи Google Cloud Platform.

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

После этого карта загружается правильно.

Если вы собираетесь использовать службы геолокации, это может помочь добавить в ваш файл ios/Runner/Info.plist код, указанный ниже

<key>NSLocationWhenInUseUsageDescription</key>
<string>Reason for requesting location permission</string>

Если вы не знаете, как создать ключи API, перейдите по этой ссылке Получить ключ API.

Вот так выглядит моя конфигурация ключа API

enter image description here

А вот так выглядит моя страница карт в моем приложении

enter image description here

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