Google Maps SDK — what it is, Google Maps and API for development

Author: IT Sectr Published: 2026-04-30 Reading time: 10 min

Google Maps SDK is a set of tools from Google for integrating interactive maps, geocoding, routes, and place search into mobile and web applications. The SDK includes Maps SDK for Android and iOS, Places API for working with geodata, and Directions API for route building. Google Maps services process over 100 billion requests per day, making Maps SDK one of the most performant mapping solutions. According to Google Maps Platform Documentation, 2025, the SDK is used in 60% of all mobile apps with maps.

Key Takeaways

  • Google Maps SDK — a platform for integrating maps, geodata, and navigation into applications
  • Maps SDK — displaying interactive maps with customizable styles and layers
  • Places API — place search, geocoding, and obtaining information about establishments
  • Directions API — route building for different transport types
  • Billing — pay per API usage based on the number of requests ($2-10 per 1000 requests)

What is Google Maps SDK?

Google Maps SDK is a comprehensive platform for developers providing tools for working with geographic data in applications. The platform includes several APIs: Maps SDK (map display), Routes API (routes), Places API (place search and geodata), and Geocoding API (address-to-coordinate conversion). Each SDK integrates separately and has its own billing model.

Unlike Apple MapKit, Google Maps SDK offers a broader set of data: information about 250 million places, real-time traffic, Street View panoramas, and Indoor Maps for buildings. According to Statista (2025), Google Maps Platform holds 75% of the mapping SDK market in mobile applications. The key advantage is a single API key for all Google Maps services and cross-platform integration (Android, iOS, web).

API Key and Security Setup

API key is a mandatory element for working with Google Maps SDK. The key is created in Google Cloud Console and tied to a specific project. For Android, you additionally need to specify the app SHA-1 certificate, for iOS — the Bundle Identifier. Google recommends restricting API key usage by IP addresses, HTTP referrers, or app packages to prevent unauthorized access.

Maps SDK for Android: Integration and Features

Maps SDK for Android is a library that displays interactive Google Maps inside an Android application via MapView or SupportMapFragment. The SDK supports: custom map styles, markers with info windows, polygons and polylines, traffic and transit layers, as well as touch events and gestures (zoom, rotation, tilt). Maps use OpenGL for rendering, delivering 60 FPS on modern devices.

Integration starts with adding the dependency in build.gradle and configuring the API key through AndroidManifest.xml. Google Maps SDK for Android requires Google Play Services on the device. If Google Play Services is missing (e.g., on Huawei devices without Google services), maps will not display. For such cases, Google recommends using alternative solutions or WebView with JavaScript Maps API.

kotlin
// AndroidManifest.xml — API key metadata
// 
//     android:value="YOUR_API_KEY"/>

// Map fragment 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 on Android supports Indoor Maps — displaying building floor plans (airports, shopping malls). Simply set map.isIndoorEnabled = true to enable it. The Traffic Layer shows real-time road congestion — data updates every 2-5 minutes. The Transit Layer displays public transport routes in supported cities.

Maps SDK for iOS: Setup and Usage

Maps SDK for iOS provides the same features as the Android version but adapted for the Apple platform. Integration is done via Swift Package Manager or CocoaPods. Maps SDK for iOS uses Google servers for map rendering but can work alongside Apple MapKit for native navigation. The SDK supports iOS 15 and above, as well as SwiftUI via UIViewRepresentable.

A specific feature of the iOS version is the mandatory Info.plist configuration with the API key and adding the URL scheme for Google Maps. Unlike Android, the iOS SDK does not require Google Play Services but does require the Google Maps app for some features (e.g., opening maps in navigation). For cross-platform projects, Google recommends a single API key per project, activated for both platforms.

swift
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
    }
}

On iOS, Google Maps SDK supports custom styles via a JSON file in Google Maps Styling format. Styles allow changing the colors of roads, water, parks, and buildings according to the app design. Also supported are Heatmap Layer for data density visualization, KML and GeoJSON for importing geographic data from external sources.

Places API: Place Search and Geocoding

Places API is a Google Maps Platform service for obtaining information about geographic places: addresses, coordinates, ratings, opening hours, photos, and reviews. Places API operates in two modes: Place Search (search by text or radius) and Place Details (detailed information about a specific place by Place ID). The SDK is available for Android, iOS, and as a REST API.

Places SDK for Android and iOS allows embedding address autocomplete (Place Autocomplete) directly into the app text fields. This is a key feature for delivery, taxi, and logistics apps — the user starts typing an address, and the SDK suggests options from the Google Maps database. Place Autocomplete reduces address input errors by 80% compared to manual entry. Places API billing: $2.83 per 1000 Place Details requests, Place Search — $4.71 per 1000.

kotlin
// Search place by text on 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}")
        }
    }

Place Autocomplete

Geocoding API — reverse geocoding (coordinates to address) and forward geocoding (address to coordinates). Used to convert a user-entered address into coordinates for display on the map. Geocoding API is billed separately: $4.71 per 1000 requests. Google provides 200 free requests per day per account for testing.

Directions API: Route Building

Directions API is a service for calculating routes between two or more points considering the transport mode (car, walking, cycling, public transit). The API returns multiple alternative routes with distance, travel time, step-by-step instructions, and a polyline for drawing the route on the map. Directions API is available as a REST API and through client SDKs.

Extended functionality — Routes API (new API recommended by Google since 2024). Routes API offers improved routing with real-time traffic, eco-friendly routing, and predictive arrival time analysis. According to Google, Routes API calculates travel time 20% more accurately in urban conditions compared to the classic Directions API. Routes API is billed at $5.00 per 1000 requests.

kotlin
// Route request 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 supports up to 25 waypoints for a single route. Waypoints can be specified as coordinates or Place IDs. To optimize the order of points (traveling salesman problem), use the optimize:true parameter. Pricing: Directions API — $4.71 per 1000 requests (up to 10 points), each additional point adds 50% to the request cost.

Map Customization: Styles, Markers, and Info Windows

Google Maps SDK provides extensive customization options: changing the map color scheme via JSON styles, adding custom markers (including animated ones), info windows (InfoWindow) with custom content, and overlaying graphic layers (GroundOverlay, Circle, Polygon). Customization allows adapting the map to the app brand and improving user experience.

Map Styling is done via Google Maps Styling Wizard or a JSON file in Map Style format. You can change colors of roads (featureType: road), water (water), parks (poi.park), buildings (building), and other elements. For maps in dark theme apps, use a night style with dark background and muted colors. Google Maps supports up to 100 style rules in a single JSON file.

Customization ElementMethod/ClassDescription
MarkersMarkerOptions.icon(BitmapDescriptor)Custom marker icon from resources or URL
PolylinesPolylineOptions.color(width)Lines for displaying routes with custom color
PolygonsPolygonOptions.fillColor(strokeColor)Area fill with transparency and stroke
InfoWindowGoogleMap.setInfoWindowAdapterCustom info window content (any View)
GroundOverlayGroundOverlayOptions.image(BitmapDescriptor)Image overlaid on the map area

Clustering for Performance

Clustering — combining markers into clusters when there are a large number of points on the map. Google Maps SDK for Android and iOS includes a built-in clustering utility (com.google.maps.android:android-maps-utils). Clustering prevents map overcrowding with markers at zoom levels below a certain threshold. On zoom, the cluster automatically splits into individual markers. According to Google, clustering improves map performance by 40% with 1000+ markers.

Code Example: Map with Markers in Kotlin

A complete example of displaying a map with a custom marker, route polyline, and info window. The app shows a map of Moscow with a point of interest and a route to it from the city center. The code demonstrates the main Google Maps SDK features: adding a marker, drawing a polyline, moving the camera, and handling clicks.

kotlin
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()
        }
    }
}

Performance recommendations: use async marker loading via ClusterManager when there are more than 200 points, limit the number of visible polylines (Google recommends no more than 100 simultaneously), use Lite Mode for maps that do not require full functionality (scrolling without zoom changes). Lite Mode reduces memory consumption by 50% and speeds up map loading by 2 times.

Google Maps Platform Pricing and Limits

Google Maps Platform uses a pay-as-you-go model with a monthly free limit of $200 credit. Each API is billed separately: Maps SDK — $2.83 per 1000 map loads, Places API — $4.71 per 1000 requests, Directions API — $4.71 per 1000 routes. Routes API (recommended) — $5.00 per 1000 requests. The free $200 limit typically covers up to 70,000 map loads per month.

For high-traffic projects, Google offers discounts for volumes of 500,000+ requests per month. Google Maps SDK is not charged for displaying a basic map without interaction — the fee is only for map load. Each time a user opens a screen with a map, it counts as one load. Optimization: map tile caching reduces the number of loads on repeat openings.

Limits: 300 requests per minute for Places API (can be increased to 3000 via quota in Cloud Console). For Directions API — 100 requests per minute. Exceeding the limit returns the OVER_QUERY_LIMIT error. Google recommends using exponential backoff for retry requests. Usage monitoring is available in Google Cloud Console with up to 5 minutes delay.

Frequently Asked Questions

How much does it cost to use Google Maps SDK in a mobile app?

Google Maps SDK is billed on a pay-as-you-go model: $2.83 per 1000 map loads. Each month Google provides $200 in free credits, which cover up to 70,000 map loads. Places API and Directions API are billed separately. For small projects with an audience of up to 10,000 users, costs typically range from $10-50 per month.

Can Google Maps SDK be used without an internet connection?

Yes, Google Maps SDK supports offline maps through tile caching. The SDK automatically caches up to 1000 tiles (approximately 10x10 km area). For full offline support, use Google Maps Offline API for Android, which allows downloading a map of an entire region. Offline maps do not support traffic, routes, or Places API.

How does Google Maps SDK differ from Apple MapKit?

Google Maps SDK offers a broader set of data: 250 million places, real-time traffic, Street View, Indoor Maps. Apple MapKit is free but has less data outside the US and Europe. Google SDK requires an API key and payment, Apple MapKit does not. For cross-platform projects, Google Maps SDK is preferable with a single API for both platforms.

How to get a free API key for Google Maps?

The API key is created in Google Cloud Console under APIs and Services, Credentials. You need to link the key to a billing account to activate it, but Google provides $200 in free credits monthly. The key can be restricted by IP, HTTP referrer, or Android package/iOS Bundle ID. No credit card is required for testing.

Does Google Maps SDK support marker clustering?

Yes, Google Maps SDK supports clustering via the android-maps-utils library (Android) and Google-Maps-iOS-Utils (iOS). ClusterManager automatically groups nearby markers into a cluster with a numeric indicator. On zoom, the cluster splits into individual markers. Clustering is mandatory with 200+ markers to maintain map performance.

Summary

  • Google Maps SDK — a platform for integrating maps, geodata, and navigation into mobile applications
  • Maps SDK for Android and iOS displays interactive maps with support for styles, markers, and layers
  • Places API — place search, address autocomplete, and geocoding for geodata applications
  • Directions API / Routes API — route building with traffic consideration and up to 25 waypoints
  • Customization includes JSON styles, custom markers, InfoWindow, clustering, and GroundOverlay
  • Pricing — pay-as-you-go from $2.83 per 1000 map loads with a free limit of $200 per month
  • API key is mandatory, tied to a project in Google Cloud Console, and restricted by platform

We will develop a mobile application turnkey

IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.

Discuss the project

Read also