Google Maps SDK — is een set tools van Google voor het integreren van interactieve kaarten, geocodering, routes en plaatszoekopdrachten in mobiele en web-apps. De SDK omvat Maps SDK voor Android en iOS, Places API voor het werken met geodata en Directions API voor routeplanning. Google Maps-diensten verwerken meer dan 100 miljard verzoeken per dag, wat Maps SDK een van de meest performante kaartoplossingen maakt. Volgens Google Maps Platform Documentation, 2025 wordt de SDK gebruikt in 60% van alle mobiele apps met kaarten.
Belangrijkste punten
Google Maps SDK — is een uitgebreid platform voor ontwikkelaars dat tools biedt voor het werken met geografische gegevens in apps. Het platform omvat meerdere API's: Maps SDK (kaartweergave), Routes API (routes), Places API (plaatszoekopdrachten en geodata) en Geocoding API (adres-naar-coördinaten conversie). Elke SDK wordt afzonderlijk geïntegreerd en heeft zijn eigen facturatiemodel.
In tegenstelling tot Apple MapKit biedt Google Maps SDK een bredere dataset: informatie over 250 miljoen plaatsen, realtime verkeer, Street View-panorama's en Indoor Maps voor gebouwen. Volgens Statista (2025) heeft Google Maps Platform 75% van de markt voor kaart-SDK's in mobiele apps. Het belangrijkste voordeel is één API-sleutel voor alle Google Maps-diensten en cross-platform integratie (Android, iOS, web).
API-sleutel — een verplicht onderdeel voor het werken met Google Maps SDK. De sleutel wordt aangemaakt in Google Cloud Console en gekoppeld aan een specifiek project. Voor Android moet SHA-1 van het app-certificaat worden opgegeven, voor iOS — Bundle Identifier. Google raadt aan het gebruik van de API-sleutel te beperken op basis van IP-adressen, HTTP-referrers of app-pakketten om ongeautoriseerde toegang te voorkomen.
Maps SDK voor Android — is een bibliotheek die interactieve Google Maps weergeeft in een Android-app via MapView of SupportMapFragment. De SDK ondersteunt: aangepaste kaartstijlen, markers met informatievensters, polygonen en polylijnen, verkeers- en vervoerslagen, evenals aanraakgebeurtenissen en gebaren (zoomen, draaien, kantelen). Kaarten gebruiken OpenGL voor rendering en leveren 60 FPS op moderne apparaten.
Integratie begint met het toevoegen van een afhankelijkheid in build.gradle en het configureren van de API-sleutel via AndroidManifest.xml. Google Maps SDK voor Android vereist Google Play Services op het apparaat. Als Google Play Services ontbreekt (bijv. op Huawei-apparaten zonder Google-diensten), worden kaarten niet weergegeven. Voor dergelijke gevallen raadt Google aan alternatieve oplossingen of WebView met JavaScript Maps API te gebruiken.
// AndroidManifest.xml — metadata van API-sleutel
// <meta-data android:name="com.google.android.geo.API_KEY"
// android:value="YOUR_API_KEY"/>
// Kaartfragment in 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 op Android ondersteunt Indoor Maps — weergave van plattegronden van gebouwen (luchthavens, winkelcentra). Om dit in te schakelen, stelt u map.isIndoorEnabled = true in. De verkeerslaag (Traffic Layer) toont de drukte op wegen in realtime — gegevens worden elke 2-5 minuten bijgewerkt. De vervoerslaag (Transit Layer) toont routes van het openbaar vervoer in ondersteunde steden.
Maps SDK voor iOS biedt dezelfde mogelijkheden als de Android-versie, maar aangepast voor het Apple-platform. Integratie gebeurt via Swift Package Manager of CocoaPods. Maps SDK voor iOS gebruikt Google-servers voor het renderen van kaarten, maar kan samenwerken met Apple MapKit voor native navigatie. De SDK ondersteunt iOS 15 en hoger, evenals SwiftUI via UIViewRepresentable.
Een bijzonderheid van de iOS-versie is de verplichte configuratie van Info.plist met de API-sleutel en het toevoegen van een URL-schema voor Google Maps. In tegenstelling tot Android vereist de iOS SDK geen Google Play Services, maar wel een geïnstalleerde Google Maps-app voor sommige functies (bijv. kaarten openen in navigatie). Voor cross-platform projecten raadt Google één API-sleutel per project aan, geactiveerd voor beide platformen.
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
}
}Op iOS ondersteunt Google Maps SDK aangepaste stijlen via een JSON-bestand in Google Maps Styling-formaat. Stijlen maken het mogelijk kleuren van wegen, water, parken en gebouwen aan te passen aan het app-ontwerp. Ook worden Heatmap Layer voor datadichtheidsvisualisatie, KML en GeoJSON voor het importeren van geografische gegevens uit externe bronnen ondersteund.
Places API — is de Google Maps Platform-service voor het verkrijgen van informatie over geografische locaties: adressen, coördinaten, beoordelingen, openingstijden, foto's en recensies. Places API werkt in twee modi: Place Search (zoeken naar plaatsen op tekst of straal) en Place Details (gedetailleerde informatie over een specifieke plaats op basis van Place ID). De SDK is beschikbaar voor Android, iOS en als REST API.
Places SDK voor Android en iOS maakt het mogelijk adresaanvulling (Place Autocomplete) direct in tekstvelden van de app in te bouwen. Dit is een belangrijke functie voor bezorg-, taxi- en logistieke apps — de gebruiker begint een adres te typen en de SDK stelt opties voor uit de Google Maps-database. Place Autocomplete vermindert het aantal adresinvoerfouten met 80% vergeleken met handmatige invoer. Facturatie Places API: $2.83 per 1000 Place Details-verzoeken, Place Search — $4.71 per 1000.
// Plaats zoeken op tekst op 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 — omgekeerd geocoderen (coördinaten → adres) en direct (adres → coördinaten). Wordt gebruikt om een door de gebruiker ingevoerd adres om te zetten in coördinaten voor weergave op de kaart. Geocoding API wordt apart gefactureerd: $4.71 per 1000 verzoeken. Google biedt 200 gratis verzoeken per dag per account voor testen.
Directions API — service voor het berekenen van routes tussen twee of meer punten, rekening houdend met het vervoersmiddel (auto, te voet, fiets, openbaar vervoer). De API retourneert meerdere alternatieve routes met vermelding van afstand, reistijd, stapsgewijze instructies en een polylijn voor het tekenen van de route op de kaart. Directions API is beschikbaar als REST API en via client-SDK's.
Uitgebreide functionaliteit — Routes API (nieuwe API, aanbevolen door Google sinds 2024). Routes API biedt verbeterde routering met realtime verkeer, ecologische voetafdruk (eco-friendly routing) en voorspellende analyse van aankomsttijd. Volgens Google berekent Routes API de reistijd in stedelijke omstandigheden 20% nauwkeuriger dan de klassieke Directions API. Routes API wordt gefactureerd: $5.00 per 1000 verzoeken.
// Routeaanvraag via 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 ondersteunt tot 25 tussenpunten (waypoints) voor één route. Tussenpunten kunnen worden opgegeven als coördinaten of Place ID. Gebruik de parameter optimize:true om de volgorde van punten te optimaliseren (handelsreizigersprobleem). Facturatie: Directions API — $4.71 per 1000 verzoeken (tot 10 punten), elk extra punt voegt 50% toe aan de kosten van het verzoek.
Google Maps SDK biedt uitgebreide aanpassingsmogelijkheden: wijzigen van het kleurenschema van de kaart via JSON-stijlen, toevoegen van aangepaste markers (inclusief geanimeerde), informatievensters (InfoWindow) met willekeurige inhoud en grafische lagen (GroundOverlay, Circle, Polygon). Aanpassing maakt het mogelijk de kaart aan te passen aan het merk van de app en de gebruikerservaring te verbeteren.
Kaartstijlen worden toegepast via Google Maps Styling Wizard of een JSON-bestand in Map Style-formaat. U kunt kleuren van wegen (featureType: road), water (water), parken (poi.park), gebouwen (building) en andere elementen wijzigen. Voor kaarten in de donkere modus van de app gebruikt u een nachtstijl met donkere achtergrond en gedempte kleuren. Google Maps ondersteunt tot 100 stijlregels in één JSON-bestand.
| Aanpassingselement | Methode/Klasse | Beschrijving |
|---|---|---|
| Markers | MarkerOptions.icon(BitmapDescriptor) | Aangepast markerpictogram uit bronnen of URL |
| Polylijnen | PolylineOptions.color(width) | Lijnen voor routeweergave met aangepaste kleur |
| Polygonen | PolygonOptions.fillColor(strokeColor) | Gebiedsvulling met transparantie en omtrek |
| InfoWindow | GoogleMap.setInfoWindowAdapter | Aangepaste inhoud van het informatievenster (elke View) |
| GroundOverlay | GroundOverlayOptions.image(BitmapDescriptor) | Afbeelding over een kaartgebied gelegd |
Clustering — het samenvoegen van markers in clusters bij een groot aantal punten op de kaart. Google Maps SDK voor Android en iOS bevat een ingebouwd clusteringhulpprogramma (com.google.maps.android:android-maps-utils). Clustering voorkomt dat de kaart overvol raakt met markers bij zoomniveaus onder een bepaalde drempel. Bij inzoomen wordt het cluster automatisch opgesplitst in afzonderlijke markers. Volgens Google verbetert clustering de kaartprestaties met 40% bij 1000+ markers.
Een volledig voorbeeld van het weergeven van een kaart met een aangepaste marker, routepolylijn en informatievenster. De app toont een kaart van Moskou met een interesse punt en een route ernaartoe vanuit het stadscentrum. De code demonstreert de basismogelijkheden van Google Maps SDK: marker toevoegen, polylijn tekenen, camera verplaatsen en klikken afhandelen.
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()
}
}
}Prestatieaanbevelingen: gebruik asynchroon laden van markers via ClusterManager bij meer dan 200 punten, beperk het aantal zichtbare polylijnen (Google raadt niet meer dan 100 tegelijk aan), gebruik Lite Mode voor kaarten die geen volledige functionaliteit vereisen (scrollen zonder zoomwijziging). Lite Mode vermindert het geheugengebruik met 50% en versnelt het laden van de kaart met 2 keer.
Google Maps Platform gebruikt een Pay-as-you-go-betalingsmodel met een maandelijkse gratis limiet van $200 credits. Elke API wordt apart gefactureerd: Maps SDK — $2.83 per 1000 kaartladingen, Places API — $4.71 per 1000 verzoeken, Directions API — $4.71 per 1000 routes. Routes API (aanbevolen) — $5.00 per 1000 verzoeken. De gratis limiet van $200 dekt doorgaans tot 70.000 kaartladingen per maand.
Voor projecten met hoge belasting biedt Google kortingen bij een volume vanaf 500.000 verzoeken per maand. Google Maps SDK wordt niet gefactureerd voor het weergeven van de basiskaart zonder interactie — betaling wordt alleen in rekening gebracht voor het laden (map load). Elke keer dat een gebruiker het scherm met de kaart opent, telt dit als één lading. Optimalisatie: het cachen van kaarttegels vermindert het aantal ladingen bij heropenen.
Limieten: 300 verzoeken per minuut voor Places API (kan worden verhoogd tot 3000 via quotum in Cloud Console). Voor Directions API — 100 verzoeken per minuut. Overschrijding van de limiet retourneert de fout OVER_QUERY_LIMIT. Google raadt aan exponentiële vertraging (exponential backoff) te gebruiken voor herhaalde verzoeken. Gebruiksmonitoring is beschikbaar in Google Cloud Console met een vertraging van maximaal 5 minuten.
Veelgestelde vragen
Google Maps SDK wordt gefactureerd volgens het pay-as-you-go-model: $2.83 per 1000 kaartladingen. Elke maand biedt Google $200 gratis credits die tot 70.000 ladingen dekken. Places API en Directions API worden apart gefactureerd. Voor kleine projecten met een publiek tot 10.000 gebruikers bedragen de kosten doorgaans $10-50 per maand.
Ja, Google Maps SDK ondersteunt offline kaarten via het cachen van tegels. De SDK cached automatisch tot 1000 tegels (ongeveer 10x10 km gebied). Voor volledige offline ondersteuning gebruikt u Google Maps Offline API voor Android, waarmee u een kaart van een hele regio kunt downloaden. Offline kaarten ondersteunen geen verkeer, routes en Places API.
Google Maps SDK biedt een bredere dataset: 250 miljoen plaatsen, realtime verkeer, Street View, Indoor Maps. Apple MapKit is gratis, maar heeft minder gegevens buiten de VS en Europa. Google SDK vereist een API-sleutel en betaling, Apple MapKit niet. Voor cross-platform projecten heeft Google Maps SDK de voorkeur vanwege één API-sleutel op beide platformen.
De API-sleutel wordt aangemaakt in Google Cloud Console via APIs & Services → Credentials. Voor activering moet de sleutel aan een betaalaccount worden gekoppeld, maar Google biedt maandelijks $200 gratis credits. De sleutel kan worden beperkt op IP, HTTP-referrer of Android-pakket / iOS Bundle ID. Voor testen is het niet nodig bankkaartgegevens in te voeren.
Ja, Google Maps SDK ondersteunt clustering via de bibliotheek android-maps-utils (Android) en Google-Maps-iOS-Utils (iOS). ClusterManager voegt automatisch dichtbijgelegen markers samen in een cluster met een numerieke indicator. Bij inzoomen wordt het cluster opgesplitst in afzonderlijke markers. Clustering is verplicht bij 200+ markers om de kaartprestaties te behouden.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook