カテゴリ: Flutterの機能拡張 更新日: 2025/11/02

FlutterでGoogle Mapsを表示する方法!API連携ステップを初心者向けに解説

282
FlutterでGoogle Mapsを表示する方法!API連携ステップ

先生と生徒の会話形式で理解しよう

生徒

「Flutterアプリに地図を表示したいんですけど、Google Mapsを使う方法ってありますか?」

先生

「はい、Flutterではgoogle_maps_flutterという公式パッケージを使えば、簡単にGoogleマップを表示できますよ。」

生徒

「APIキーとかも必要ですか?手順を一から知りたいです。」

先生

「もちろん、FlutterでGoogle Mapsを表示するためには、Google Cloud PlatformでAPIキーを取得し、それをFlutterプロジェクトに設定する必要があります。それでは、詳しくステップを追って説明していきましょう。」

1. FlutterでGoogle Mapsを使うための準備

1. FlutterでGoogle Mapsを使うための準備
1. FlutterでGoogle Mapsを使うための準備

FlutterでGoogle Mapsを表示するには、google_maps_flutterパッケージを使います。まずはpubspec.yamlに依存関係を追加しましょう。


dependencies:
  google_maps_flutter: ^2.5.0

Flutter公式のGoogle Mapsプラグインは、iOS・Androidの両方に対応しており、ピン(マーカー)を立てたり、地図を移動させたりする機能が提供されています。

2. Google CloudでAPIキーを取得しよう

2. Google CloudでAPIキーを取得しよう
2. Google CloudでAPIキーを取得しよう

FlutterでGoogle Mapsを使うには、Google Cloud ConsoleでAPIキーを取得し、「Maps SDK for Android」と「Maps SDK for iOS」を有効化する必要があります。

  • Google Cloud Consoleにアクセス
  • 新しいプロジェクトを作成
  • 「APIとサービス」から「ライブラリ」を選択
  • 「Maps SDK for Android」「Maps SDK for iOS」を有効化
  • 「認証情報」からAPIキーを作成し、コピー

このAPIキーをFlutterアプリに設定することで、Google Mapsが正しく表示されるようになります。

3. AndroidとiOSでの設定方法

3. AndroidとiOSでの設定方法
3. AndroidとiOSでの設定方法

FlutterでGoogle Mapsを表示するには、AndroidとiOSのネイティブ設定も必要です。

Androidの設定

android/app/src/main/AndroidManifest.xmlに以下を追加します。


<meta-data android:name="com.google.android.geo.API_KEY"
    android:value="YOUR_API_KEY"/>

iOSの設定

ios/Runner/AppDelegate.swiftにAPIキーを設定します。


import UIKit
import Flutter
import GoogleMaps

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GMSServices.provideAPIKey("YOUR_API_KEY")
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

また、Info.plistにもパーミッション設定を追加してください。


<key>io.flutter.embedded_views_preview</key>
<true/>

Flutterを「実務レベル」で使えるようになりたい人や、 iPhone / Android両対応アプリ開発の流れをまとめて学びたい人には、 定番の実践書がこちらです。

Flutter実践開発をAmazonで見る

※ Amazon広告リンク

4. FlutterコードでGoogle Mapsを表示する

4. FlutterコードでGoogle Mapsを表示する
4. FlutterコードでGoogle Mapsを表示する

いよいよFlutterアプリ上でGoogle Mapsを表示するコードです。以下は基本的な地図の表示例です。


import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class MapScreen extends StatefulWidget {
  @override
  _MapScreenState createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  late GoogleMapController mapController;

  final LatLng _center = const LatLng(35.681236, 139.767125); // 東京駅の緯度経度

  void _onMapCreated(GoogleMapController controller) {
    mapController = controller;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Google Map サンプル'),
      ),
      body: GoogleMap(
        onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: _center,
          zoom: 15.0,
        ),
      ),
    );
  }
}

このコードでは東京駅を中心に地図が表示されるように設定しています。

5. よくあるトラブルと対処法

5. よくあるトラブルと対処法
5. よくあるトラブルと対処法

FlutterでGoogle Mapsを表示する際、表示されない・真っ白になるといったトラブルがよくあります。以下のチェックポイントを確認しましょう。

  • APIキーを正しく設定しているか
  • Maps SDKが有効になっているか
  • AndroidManifestやAppDelegateにキーが正しく書かれているか
  • エミュレータではなく、実機でテストしているか(エミュレータでは動作が不安定なことがあります)

それでも表示されない場合は、Flutterのキャッシュをクリアして再ビルドすることも有効です。


flutter clean
flutter pub get
flutter run

6. Google Mapsの応用:マーカー・現在地の表示

6. Google Mapsの応用:マーカー・現在地の表示
6. Google Mapsの応用:マーカー・現在地の表示

基本の地図表示ができたら、次はピン(マーカー)の追加や現在地の表示も取り入れてみましょう。マーカーの追加は以下のように行います。


Set<Marker> _markers = {
  Marker(
    markerId: MarkerId('tokyo'),
    position: LatLng(35.681236, 139.767125),
    infoWindow: InfoWindow(title: '東京駅'),
  ),
};

地図ウィジェットにmarkers: _markersを追加することで、マップ上にピンを立てることができます。

Flutterの機能拡張の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク