image

22 Nov 2025

9K

35K

Integrasi Google Maps di Flutter: Panduan Lengkap untuk Mengembangkan Aplikasi Berbasis Lokasi

Integrasi peta interaktif adalah fitur krusial bagi banyak aplikasi modern, mulai dari navigasi, pengiriman, hingga layanan berbasis lokasi. Google Maps menawarkan solusi peta yang kaya fitur dan andal. Dengan Flutter, mengintegrasikan Google Maps ke dalam aplikasi Anda menjadi proses yang relatif mudah dan efisien. Artikel ini akan memandu Anda melalui langkah-langkah penting untuk mengintegrasikan Google Maps ke aplikasi Flutter Anda.

1. Persiapan Awal

Sebelum kita mulai menulis kode, ada beberapa persiapan penting yang perlu dilakukan:

  • Dapatkan Kunci API Google Maps: Ini adalah langkah paling fundamental.
    • Kunjungi Google Cloud Console.
    • Buat proyek baru atau pilih proyek yang sudah ada.
    • Aktifkan API yang diperlukan: Maps SDK for Android dan Maps SDK for iOS.
    • Buat Kunci API (API Key) dan pastikan untuk membatasi penggunaannya (misalnya, hanya untuk aplikasi Android/iOS Anda) demi keamanan.
  • Tambahkan Dependensi `google_maps_flutter`: Buka file pubspec.yaml di proyek Flutter Anda dan tambahkan dependensi berikut di bawah dependencies::

    google_maps_flutter: ^2.x.x (Ganti 2.x.x dengan versi terbaru yang tersedia)

    Setelah menambahkan, jalankan flutter pub get.

2. Konfigurasi Platform Spesifik

Kunci API Google Maps perlu dikonfigurasi secara terpisah untuk platform Android dan iOS.

Untuk Android:

Buka file android/app/src/main/AndroidManifest.xml. Tambahkan tag <meta-data> di dalam tag <application>, dengan mengganti YOUR_API_KEY dengan kunci API Google Maps Anda:

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

Pastikan juga minSdkVersion di android/app/build.gradle adalah 20 atau lebih tinggi.

Untuk iOS:

Buka file ios/Runner/AppDelegate.swift atau ios/Runner/AppDelegate.m.

Jika menggunakan Swift (AppDelegate.swift):

import UIKit
import Flutter
import GoogleMaps // Tambahkan ini

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

Jika menggunakan Objective-C (AppDelegate.m):

#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import <GoogleMaps/GoogleMaps.h> // Tambahkan ini

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GMSServices provideAPIKey:@"YOUR_API_KEY"]; // Tambahkan ini
  [GeneratedPluginRegistrant registerWithRegistry:self];
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

@end

Selain itu, tambahkan deskripsi penggunaan lokasi ke file ios/Runner/Info.plist jika Anda berencana untuk mengakses lokasi pengguna:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Aplikasi ini membutuhkan akses lokasi Anda untuk menampilkan posisi Anda di peta.</string>

3. Menggunakan Widget `GoogleMap`

Setelah konfigurasi selesai, Anda dapat mulai menambahkan peta ke aplikasi Flutter Anda. Widget utama yang akan Anda gunakan adalah GoogleMap.

Berikut adalah contoh dasar bagaimana Anda bisa menampilkan peta:

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

class MapScreen extends StatefulWidget {
  const MapScreen({Key? key}) : super(key: key);

  @override
  State<MapScreen> createState() => _MapScreenState();
}

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

  final LatLng _center = const LatLng(-6.200000, 106.816666); // Contoh: Jakarta

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Google Maps di Flutter'),
      ),
      body: GoogleMap(
        onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(
          target: _center,
          zoom: 11.0,
        ),
      ),
    );
  }
}

Dalam contoh di atas:

  • `_center`: Menentukan koordinat geografis awal (lintang dan bujur) di mana peta akan berpusat.
  • `_onMapCreated`: Sebuah callback yang dipanggil ketika peta selesai dibuat. Ini memberi Anda objek GoogleMapController yang dapat digunakan untuk mengontrol peta secara terprogram (misalnya, menggerakkan kamera, menambah marker).
  • `initialCameraPosition`: Menentukan posisi kamera awal peta, termasuk target (titik pusat) dan zoom (tingkat perbesaran).

4. Fitur-fitur Lanjutan

google_maps_flutter menyediakan banyak fitur untuk membuat peta Anda lebih interaktif dan informatif:

  • Menambahkan Marker: Anda dapat menampilkan pin atau marker pada lokasi tertentu di peta. Gunakan properti markers yang menerima Set<Marker>. Setiap Marker dapat memiliki markerId, position, infoWindow, dan icon kustom.
  • Menggambar Poligon, Poliline, dan Lingkaran: Untuk menggambarkan area, rute, atau radius tertentu, Anda bisa menggunakan properti polygons, polylines, dan circles. Masing-masing menerima Set dari objek yang sesuai.
  • Kontrol Kamera: Gunakan GoogleMapController untuk menggerakkan kamera peta ke lokasi baru, mengatur zoom, atau menganimasikan transisi.
  • Mendengarkan Gestur: Peta dapat mendeteksi berbagai gestur pengguna seperti onTap, onLongPress, atau onCameraMove, memungkinkan Anda untuk menambahkan interaktivitas khusus.
  • Styling Peta Kustom: Anda dapat mengubah tampilan peta (misalnya, warna jalan, bangunan, titik minat) menggunakan properti mapStyle yang menerima string JSON.

Kesimpulan

Integrasi Google Maps di Flutter adalah proses yang mudah berkat plugin google_maps_flutter yang kuat. Dengan mengikuti langkah-langkah persiapan dan konfigurasi platform yang benar, Anda dapat dengan cepat menambahkan peta interaktif ke aplikasi Anda. Fleksibilitas widget GoogleMap dan fitur-fitur lanjutan yang ditawarkannya memungkinkan Anda untuk membangun pengalaman berbasis lokasi yang kaya dan fungsional. Mulailah eksplorasi Anda dan buat aplikasi Flutter Anda menjadi lebih interaktif dan informatif!

Related Articles

Dec 19, 2025

Flutter & Firebase Auth: Seamless Social Media Login

Flutter & Firebase Auth: Seamless Social Media Login In today's digital landscape, user authentication is a critical component of almost every application. Pro

Dec 19, 2025

Building a Widget List with Sticky

Building a Widget List with Sticky Header in Flutter Creating dynamic and engaging user interfaces is crucial for modern applications. One common UI pattern th

Dec 19, 2025

Mastering Transform Scale & Rotate Animations in Flutter

Mastering Transform Scale & Rotate Animations in Flutter Flutter's powerful animation framework allows developers to create visually stunning and highly intera