Google Maps SDK — adalah seperangkat alat dari Google untuk mengintegrasikan peta interaktif, geocoding, rute, dan pencarian tempat ke dalam aplikasi mobile dan web. SDK mencakup Maps SDK untuk Android dan iOS, Places API untuk bekerja dengan data geografis, dan Directions API untuk pembuatan rute. Layanan Google Maps memproses lebih dari 100 miliar permintaan per hari, menjadikan Maps SDK salah satu solusi pemetaan paling performan. Menurut Google Maps Platform Documentation, 2025, SDK digunakan di 60% dari semua aplikasi mobile dengan peta.
Poin utama
Google Maps SDK — adalah platform komprehensif bagi pengembang yang menyediakan alat untuk bekerja dengan data geografis dalam aplikasi. Platform ini mencakup beberapa API: Maps SDK (menampilkan peta), Routes API (rute), Places API (pencarian tempat dan data geografis), dan Geocoding API (konversi alamat ke koordinat). Setiap SDK diintegrasikan secara terpisah dan memiliki model penagihan sendiri.
Tidak seperti Apple MapKit, Google Maps SDK menawarkan kumpulan data yang lebih luas: informasi tentang 250 juta tempat, lalu lintas real-time, panorama Street View, dan Indoor Maps untuk dalam ruangan. Menurut Statista (2025), Google Maps Platform menguasai 75% pasar SDK pemetaan di aplikasi mobile. Keuntungan utama — satu kunci API untuk semua layanan Google Maps dan integrasi lintas platform (Android, iOS, web).
Kunci API — elemen wajib untuk bekerja dengan Google Maps SDK. Kunci dibuat di Google Cloud Console dan ditautkan ke proyek tertentu. Untuk Android, diperlukan SHA-1 sertifikat aplikasi, untuk iOS — Bundle Identifier. Google merekomendasikan membatasi penggunaan kunci API berdasarkan alamat IP, referrer HTTP, atau paket aplikasi untuk mencegah akses tidak sah.
Maps SDK untuk Android — adalah pustaka yang menampilkan peta Google interaktif di dalam aplikasi Android melalui MapView atau SupportMapFragment. SDK mendukung: gaya peta kustom, penanda dengan jendela informasi, poligon dan poligaris, lapisan lalu lintas dan transportasi, serta event sentuhan dan gestur (zoom, rotasi, kemiringan). Peta menggunakan OpenGL untuk rendering, memberikan 60 FPS pada perangkat modern.
Integrasi dimulai dengan menambahkan dependensi di build.gradle dan mengonfigurasi kunci API melalui AndroidManifest.xml. Google Maps SDK untuk Android memerlukan Google Play Services di perangkat. Jika Google Play Services tidak ada (misalnya, pada perangkat Huawei tanpa layanan Google), peta tidak akan ditampilkan. Untuk kasus seperti itu, Google merekomendasikan menggunakan solusi alternatif atau WebView dengan JavaScript Maps API.
// AndroidManifest.xml — metadata kunci API
// <meta-data android:name="com.google.android.geo.API_KEY"
// android:value="YOUR_API_KEY"/>
// Fragmen peta di Activity
class MapActivity : AppCompatActivity(),
OnMapReadyCallback {
private lateinit var map: GoogleMap
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_map)
val mapFragment = supportFragmentManager
.findFragmentById(R.id.map) as SupportMapFragment
mapFragment.getMapAsync(this)
}
override fun onMapReady(googleMap: GoogleMap) {
map = googleMap
val sydney = LatLng(-33.8688, 151.2093)
map.addMarker(MarkerOptions().position(sydney)
.title("Sydney"))
map.moveCamera(CameraUpdateFactory
.newLatLngZoom(sydney, 12f))
}
}Google Maps SDK di Android mendukung Indoor Maps — menampilkan denah bangunan (bandara, pusat perbelanjaan). Untuk mengaktifkannya, cukup setel map.isIndoorEnabled = true. Lapisan lalu lintas (Traffic Layer) menunjukkan kepadatan jalan secara real-time — data diperbarui setiap 2-5 menit. Lapisan transportasi (Transit Layer) menampilkan rute transportasi umum di kota yang didukung.
Maps SDK untuk iOS memberikan kemampuan yang sama dengan versi Android, tetapi disesuaikan untuk platform Apple. Integrasi dilakukan melalui Swift Package Manager atau CocoaPods. Maps SDK untuk iOS menggunakan server Google untuk rendering peta, tetapi dapat bekerja bersama Apple MapKit untuk navigasi native. SDK mendukung iOS 15 dan lebih baru, serta SwiftUI melalui UIViewRepresentable.
Keistimewaan versi iOS — konfigurasi wajib Info.plist dengan menentukan kunci API dan menambahkan skema URL untuk Google Maps. Tidak seperti Android, iOS SDK tidak memerlukan Google Play Services, tetapi memerlukan aplikasi Google Maps terinstal untuk beberapa fungsi (misalnya, membuka peta dalam navigasi). Untuk proyek lintas platform, Google merekomendasikan satu kunci API per proyek, diaktifkan untuk kedua platform.
import GoogleMaps
class MapViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let camera = GMSCameraPosition.camera(
withLatitude: 55.7558,
longitude: 37.6173,
zoom: 10
)
let mapView = GMSMapView.map(
withFrame: view.frame,
camera: camera
)
self.view = mapView
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(
latitude: 55.7558,
longitude: 37.6173
)
marker.title = "Moscow"
marker.map = mapView
}
}Di iOS, Google Maps SDK mendukung gaya kustom melalui file JSON dalam format Google Maps Styling. Gaya memungkinkan mengubah warna jalan, air, taman, dan bangunan sesuai dengan desain aplikasi. Juga didukung Heatmap Layer untuk visualisasi kepadatan data, KML dan GeoJSON untuk mengimpor data geografis dari sumber eksternal.
Places API — adalah layanan Google Maps Platform untuk mendapatkan informasi tentang tempat geografis: alamat, koordinat, peringkat, jam buka, foto, dan ulasan. Places API bekerja dalam dua mode: Place Search (mencari tempat berdasarkan teks atau radius) dan Place Details (mendapatkan informasi detail tentang tempat tertentu berdasarkan Place ID). SDK tersedia untuk Android, iOS, dan sebagai REST API.
Places SDK untuk Android dan iOS memungkinkan menyematkan pelengkapan otomatis alamat (Place Autocomplete) langsung ke kolom teks aplikasi. Ini adalah fungsi kunci untuk aplikasi pengiriman, taksi, dan logistik — pengguna mulai mengetik alamat, dan SDK menawarkan opsi dari database Google Maps. Place Autocomplete mengurangi kesalahan entri alamat sebesar 80% dibandingkan dengan entri manual. Penagihan Places API: $2.83 per 1000 permintaan Place Details, Place Search — $4.71 per 1000.
// Mencari tempat berdasarkan teks di Android
val placesClient = Places.createClient(context)
val request = FindCurrentPlaceRequest.builder(
listOf(Place.Field.NAME, Place.Field.ADDRESS)
).build()
placesClient.findCurrentPlace(request)
.addOnSuccessListener { response ->
for (placeLikelihood in response.placeLikelihoods) {
Log.d("Places", "${placeLikelihood.place.name} - ${placeLikelihood.likelihood}")
}
}Geocoding API — geocoding terbalik (koordinat → alamat) dan langsung (alamat → koordinat). Digunakan untuk mengonversi alamat yang dimasukkan pengguna menjadi koordinat untuk ditampilkan di peta. Geocoding API ditagih secara terpisah: $4.71 per 1000 permintaan. Google menyediakan 200 permintaan gratis per hari per akun untuk pengujian.
Directions API — layanan untuk menghitung rute antara dua atau lebih titik dengan mempertimbangkan moda transportasi (mobil, pejalan kaki, sepeda, transportasi umum). API mengembalikan beberapa rute alternatif dengan menyertakan jarak, waktu perjalanan, petunjuk langkah demi langkah, dan poligaris untuk menggambar rute di peta. Directions API tersedia sebagai REST API dan melalui SDK klien.
Fungsionalitas yang diperluas — Routes API (API baru, direkomendasikan oleh Google sejak 2024). Routes API menawarkan penentuan rute yang ditingkatkan dengan mempertimbangkan lalu lintas real-time, jejak ekologis (eco-friendly routing), dan analisis prediktif waktu kedatangan. Menurut Google, Routes API 20% lebih akurat dalam menghitung waktu perjalanan di kondisi perkotaan dibandingkan Directions API klasik. Routes API ditagih: $5.00 per 1000 permintaan.
// Permintaan rute melalui Routes API
val client = OkHttpClient()
val requestBody = """
{
"origin": {"location": {"latLng": {"latitude": 55.75, "longitude": 37.61}}},
"destination": {"location": {"latLng": {"latitude": 55.79, "longitude": 37.79}}},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE"
}
""".trimIndent()
val request = Request.Builder()
.url("https://routes.googleapis.com/directions/v2:computeRoutes")
.header("X-Goog-Api-Key", apiKey)
.header("Content-Type", "application/json")
.post(requestBody.toRequestBody())
.build()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
Log.d("Route", response.body?.string() ?: "")
}
})Directions API mendukung hingga 25 titik perantara (waypoints) untuk satu rute. Titik perantara dapat ditentukan sebagai koordinat atau Place ID. Untuk mengoptimalkan urutan titik (masalah penjual keliling), gunakan parameter optimize:true. Penagihan: Directions API — $4.71 per 1000 permintaan (hingga 10 titik), setiap titik tambahan menambah 50% ke biaya permintaan.
Google Maps SDK menyediakan kemampuan kustomisasi yang luas: mengubah skema warna peta melalui gaya JSON, menambahkan penanda kustom (termasuk yang dianimasikan), jendela informasi (InfoWindow) dengan konten arbitrer, dan melapisi lapisan grafis (GroundOverlay, Circle, Polygon). Kustomisasi memungkinkan menyesuaikan peta dengan merek aplikasi dan meningkatkan pengalaman pengguna.
Gaya peta dilakukan melalui Google Maps Styling Wizard atau file JSON dalam format Map Style. Warna jalan (featureType: road), air (water), taman (poi.park), bangunan (building), dan elemen lainnya dapat diubah. Untuk peta dalam tema gelap aplikasi, gunakan gaya malam dengan latar belakang gelap dan warna redup. Google Maps mendukung hingga 100 aturan gaya dalam satu file JSON.
| Elemen kustomisasi | Metode/Kelas | Deskripsi |
|---|---|---|
| Penanda | MarkerOptions.icon(BitmapDescriptor) | Ikon penanda kustom dari sumber daya atau URL |
| Poligaris | PolylineOptions.color(width) | Garis untuk menampilkan rute dengan warna kustom |
| Poligon | PolygonOptions.fillColor(strokeColor) | Mengisi area dengan transparansi dan garis tepi |
| InfoWindow | GoogleMap.setInfoWindowAdapter | Konten kustom jendela informasi (View apa pun) |
| GroundOverlay | GroundOverlayOptions.image(BitmapDescriptor) | Gambar yang ditempatkan di atas area peta |
Clustering — menggabungkan penanda ke dalam kluster saat jumlah titik banyak di peta. Google Maps SDK untuk Android dan iOS menyertakan utilitas pengelompokan bawaan (com.google.maps.android:android-maps-utils). Clustering mencegah peta terlalu penuh dengan penanda pada zoom di bawah level tertentu. Saat di-zoom, kluster secara otomatis terurai menjadi penanda individu. Menurut Google, pengelompokan meningkatkan performa peta sebesar 40% pada 1000+ penanda.
Contoh lengkap menampilkan peta dengan penanda kustom, poligaris rute, dan jendela informasi. Aplikasi menampilkan peta Moskow dengan titik minat dan rute menuju ke sana dari pusat kota. Kode mendemonstrasikan kemampuan dasar Google Maps SDK: menambahkan penanda, menggambar poligaris, memindahkan kamera, dan menangani klik.
class MapDemoActivity : AppCompatActivity(), OnMapReadyCallback {
override fun onMapReady(map: GoogleMap) {
val kremlin = LatLng(55.7513, 37.6189)
val gorkyPark = LatLng(55.7311, 37.6116)
map.addMarker(MarkerOptions()
.position(kremlin)
.title("Kremlin")
.icon(BitmapDescriptorFactory.defaultMarker(
BitmapDescriptorFactory.HUE_RED)))
map.addPolyline(PolylineOptions()
.add(kremlin, gorkyPark)
.width(5f)
.color(Color.parseColor("#2196F3")))
map.moveCamera(CameraUpdateFactory
.newLatLngZoom(kremlin, 13f))
map.setOnInfoWindowClickListener { marker ->
Toast.makeText(this,
"${marker.title} clicked",
Toast.LENGTH_SHORT).show()
}
}
}Rekomendasi performa: gunakan pemuatan penanda asinkron melalui ClusterManager saat jumlah titik lebih dari 200, batasi jumlah poligaris yang terlihat (Google merekomendasikan tidak lebih dari 100 secara bersamaan), gunakan Lite Mode untuk peta yang tidak memerlukan fungsionalitas penuh (gulir tanpa mengubah zoom). Lite Mode mengurangi konsumsi memori sebesar 50% dan mempercepat pemuatan peta 2 kali lipat.
Google Maps Platform menggunakan model pembayaran Pay-as-you-go dengan batas kredit gratis bulanan $200. Setiap API ditagih secara terpisah: Maps SDK — $2.83 per 1000 muat peta, Places API — $4.71 per 1000 permintaan, Directions API — $4.71 per 1000 rute. Routes API (direkomendasikan) — $5.00 per 1000 permintaan. Batas gratis $200 biasanya mencakup hingga 70.000 muat peta per bulan.
Untuk proyek dengan beban tinggi, Google menawarkan diskon untuk volume mulai dari 500.000 permintaan per bulan. Google Maps SDK tidak ditagih untuk menampilkan peta dasar tanpa interaksi — biaya hanya dikenakan untuk pemuatan (map load). Setiap kali pengguna membuka layar dengan peta, itu dihitung sebagai satu pemuatan. Optimasi: caching ubin peta mengurangi jumlah pemuatan saat dibuka kembali.
Batas: 300 permintaan per menit untuk Places API (dapat ditingkatkan hingga 3000 melalui kuota di Cloud Console). Untuk Directions API — 100 permintaan per menit. Melebihi batas mengembalikan error OVER_QUERY_LIMIT. Google merekomendasikan menggunakan penundaan eksponensial (exponential backoff) untuk permintaan berulang. Pemantauan penggunaan tersedia di Google Cloud Console dengan penundaan hingga 5 menit.
Pertanyaan yang sering diajukan
Google Maps SDK ditagih berdasarkan model pay-as-you-go: $2.83 per 1000 muat peta. Setiap bulan Google menyediakan kredit gratis $200 yang mencakup hingga 70.000 muatan. Places API dan Directions API ditagih secara terpisah. Untuk proyek kecil dengan audiens hingga 10.000 pengguna, biaya biasanya $10-50 per bulan.
Ya, Google Maps SDK mendukung peta offline melalui caching ubin. SDK secara otomatis menyimpan cache hingga 1000 ubin (sekitar area 10x10 km). Untuk dukungan offline penuh, gunakan Google Maps Offline API untuk Android, yang memungkinkan mengunduh peta seluruh wilayah. Peta offline tidak mendukung lalu lintas, rute, dan Places API.
Google Maps SDK menawarkan kumpulan data yang lebih luas: 250 juta tempat, lalu lintas real-time, Street View, Indoor Maps. Apple MapKit gratis, tetapi memiliki lebih sedikit data di luar AS dan Eropa. Google SDK memerlukan kunci API dan pembayaran, Apple MapKit tidak. Untuk proyek lintas platform, Google Maps SDK lebih disukai karena satu kunci API di kedua platform.
Kunci API dibuat di Google Cloud Console melalui bagian APIs & Services → Credentials. Untuk aktivasi, kunci harus ditautkan ke akun pembayaran, tetapi Google menyediakan kredit gratis $200 setiap bulan. Kunci dapat dibatasi berdasarkan IP, referrer HTTP, atau paket Android / iOS Bundle ID. Untuk pengujian, tidak perlu memasukkan data kartu bank.
Ya, Google Maps SDK mendukung pengelompokan melalui pustaka android-maps-utils (Android) dan Google-Maps-iOS-Utils (iOS). ClusterManager secara otomatis menggabungkan penanda yang berdekatan ke dalam kluster dengan indikator numerik. Saat di-zoom, kluster terurai menjadi penanda individu. Pengelompokan wajib dilakukan pada 200+ penanda untuk menjaga performa peta.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga