Google Maps SDK — co to jest, mapy Google i API dla programistów

Autor: IT Sectr Opublikowano: 2026-04-30 Czas czytania: 10 min

Google Maps SDK — to zestaw narzędzi od Google do integracji interaktywnych map, geokodowania, tras i wyszukiwania miejsc w aplikacjach mobilnych i webowych. SDK obejmuje Maps SDK dla Android i iOS, Places API do pracy z danymi geograficznymi oraz Directions API do wyznaczania tras. Usługi Google Maps przetwarzają ponad 100 miliardów zapytań dziennie, co czyni Maps SDK jednym z najbardziej wydajnych rozwiązań mapowych. Według Google Maps Platform Documentation, 2025, SDK jest używane w 60% wszystkich aplikacji mobilnych z mapami.

Najważniejsze

  • Google Maps SDK — platforma do integracji map, danych geograficznych i nawigacji w aplikacjach
  • Maps SDK — wyświetlanie interaktywnych map z możliwością dostosowania stylów i warstw
  • Places API — wyszukiwanie miejsc, geokodowanie i uzyskiwanie informacji o lokalizacjach
  • Directions API — wyznaczanie tras dla różnych środków transportu
  • Płatności — opłata za użycie API na podstawie liczby zapytań ($2-10 za 1000 zapytań)

Czym jest Google Maps SDK?

Google Maps SDK — to kompleksowa platforma dla programistów, zapewniająca narzędzia do pracy z danymi geograficznymi w aplikacjach. Platforma obejmuje kilka API: Maps SDK (wyświetlanie map), Routes API (trasy), Places API (wyszukiwanie miejsc i dane geograficzne) oraz Geocoding API (przekształcanie adresów na współrzędne). Każdy SDK integruje się osobno i ma własny model rozliczeń.

W przeciwieństwie do Apple MapKit, Google Maps SDK oferuje szerszy zestaw danych: informacje o 250 milionach miejsc, ruch drogowy w czasie rzeczywistym, panoramy Street View i Indoor Maps dla wnętrz budynków. Według Statista (2025), Google Maps Platform zajmuje 75% rynku SDK mapowych w aplikacjach mobilnych. Kluczową zaletą jest jeden klucz API dla wszystkich usług Google Maps oraz integracja międzyplatformowa (Android, iOS, web).

Klucz API i konfiguracja bezpieczeństwa

Klucz API — obowiązkowy element do pracy z Google Maps SDK. Klucz tworzy się w Google Cloud Console i przypisuje do konkretnego projektu. Dla Android wymagane jest dodatkowo podanie SHA-1 certyfikatu aplikacji, dla iOS — Bundle Identifier. Google zaleca ograniczanie użycia klucza API według adresów IP, HTTP referrerów lub pakietów aplikacji w celu zapobiegania nieautoryzowanemu dostępowi.

Maps SDK dla Android: integracja i możliwości

Maps SDK dla Android — to biblioteka wyświetlająca interaktywne mapy Google wewnątrz aplikacji Android za pomocą MapView lub SupportMapFragment. SDK obsługuje: niestandardowe style map, znaczniki z oknami informacyjnymi, wielokąty i polilinie, warstwy ruchu i transportu, a także zdarzenia dotykowe i gesty (zoom, obracanie, pochylanie). Mapy używają OpenGL do renderowania, zapewniając 60 FPS na nowoczesnych urządzeniach.

Integracja rozpoczyna się od dodania zależności w build.gradle i skonfigurowania klucza API przez AndroidManifest.xml. Google Maps SDK dla Android wymaga Google Play Services na urządzeniu. Jeśli Google Play Services nie ma (np. na urządzeniach Huawei bez usług Google), mapy się nie wyświetlą. W takich przypadkach Google zaleca alternatywne rozwiązania lub WebView z JavaScript Maps API.

kotlin
// AndroidManifest.xml — metadane klucza API
// <meta-data android:name="com.google.android.geo.API_KEY"
//     android:value="YOUR_API_KEY"/>

// Fragment mapy w 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 na Android obsługuje Indoor Maps — wyświetlanie planów budynków (lotniska, centra handlowe). Aby włączyć, wystarczy ustawić map.isIndoorEnabled = true. Warstwa ruchu (Traffic Layer) pokazuje natężenie ruchu w czasie rzeczywistym — dane aktualizowane co 2-5 minut. Warstwa transportu (Transit Layer) wyświetla trasy komunikacji miejskiej w obsługiwanych miastach.

Maps SDK dla iOS: konfiguracja i użycie

Maps SDK dla iOS zapewnia te same możliwości co wersja Android, ale dostosowane do platformy Apple. Integracja odbywa się przez Swift Package Manager lub CocoaPods. Maps SDK dla iOS używa serwerów Google do renderowania map, ale może współpracować z Apple MapKit dla natywnej nawigacji. SDK obsługuje iOS 15 i nowsze, a także SwiftUI przez UIViewRepresentable.

Specyfiką wersji iOS jest obowiązkowa konfiguracja Info.plist z podaniem klucza API i dodaniem schematu URL dla Google Maps. W przeciwieństwie do Android, iOS SDK nie wymaga Google Play Services, ale wymaga zainstalowanej aplikacji Google Maps dla niektórych funkcji (np. otwieranie map w nawigacji). Dla projektów międzyplatformowych Google zaleca jeden klucz API na projekt, aktywowany dla obu platform.

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

Na iOS Google Maps SDK obsługuje niestandardowe style przez plik JSON w formacie Google Maps Styling. Style pozwalają zmieniać kolory dróg, wody, parków i budynków zgodnie z projektem aplikacji. Obsługiwane są również Heatmap Layer do wizualizacji gęstości danych, KML i GeoJSON do importowania danych geograficznych z zewnętrznych źródeł.

Places API: wyszukiwanie miejsc i geokodowanie

Places API — to usługa Google Maps Platform do uzyskiwania informacji o miejscach geograficznych: adresy, współrzędne, oceny, godziny otwarcia, zdjęcia i opinie. Places API działa w dwóch trybach: Place Search (wyszukiwanie miejsc według tekstu lub promienia) i Place Details (uzyskiwanie szczegółowych informacji o konkretnym miejscu według Place ID). SDK jest dostępny dla Android, iOS i jako REST API.

Places SDK dla Android i iOS pozwala wbudować autouzupełnianie adresów (Place Autocomplete) bezpośrednio w pola tekstowe aplikacji. To kluczowa funkcja dla aplikacji dostawy, taksówek i logistyki — użytkownik zaczyna wpisywać adres, a SDK proponuje opcje z bazy Google Maps. Place Autocomplete zmniejsza liczbę błędów wprowadzania adresu o 80% w porównaniu z ręcznym wpisywaniem. Rozliczenia Places API: $2.83 za 1000 zapytań Place Details, Place Search — $4.71 za 1000.

kotlin
// Wyszukiwanie miejsca po tekście na 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: autouzupełnianie adresów

Geocoding API — odwrotne geokodowanie (współrzędne → adres) i bezpośrednie (adres → współrzędne). Służy do przekształcania adresu wprowadzonego przez użytkownika na współrzędne do wyświetlenia na mapie. Geocoding API jest rozliczane osobno: $4.71 za 1000 zapytań. Google udostępnia 200 darmowych zapytań dziennie na konto do testowania.

Directions API: wyznaczanie tras

Directions API — usługa do obliczania tras między dwoma lub więcej punktami z uwzględnieniem środka transportu (samochód, pieszo, rower, transport publiczny). API zwraca kilka alternatywnych tras z podaniem odległości, czasu podróży, instrukcji krok po kroku i polilinii do narysowania trasy na mapie. Directions API jest dostępne jako REST API oraz przez SDK klienckie.

Rozszerzoną funkcjonalnością jest Routes API (nowe API, zalecane przez Google od 2024 roku). Routes API oferuje ulepszone wyznaczanie tras z uwzględnieniem ruchu w czasie rzeczywistym, śladu ekologicznego (eco-friendly routing) i predykcyjnej analizy czasu przybycia. Według Google, Routes API jest o 20% dokładniejsze w obliczaniu czasu podróży w warunkach miejskich w porównaniu z klasycznym Directions API. Routes API jest rozliczane: $5.00 za 1000 zapytań.

kotlin
// Żądanie trasy przez 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 obsługuje do 25 punktów pośrednich (waypoints) dla jednej trasy. Punkty pośrednie mogą być podane jako współrzędne lub Place ID. Aby zoptymalizować kolejność punktów (problem komiwojażera), użyj parametru optimize:true. Rozliczenia: Directions API — $4.71 za 1000 zapytań (do 10 punktów), każdy dodatkowy punkt dodaje 50% do kosztu zapytania.

Dostosowywanie map: style, znaczniki i okna informacyjne

Google Maps SDK zapewnia szerokie możliwości dostosowywania: zmiana schematu kolorów mapy przez style JSON, dodawanie niestandardowych znaczników (w tym animowanych), okien informacyjnych (InfoWindow) z dowolną zawartością i nakładanie warstw graficznych (GroundOverlay, Circle, Polygon). Dostosowywanie pozwala dopasować mapę do marki aplikacji i poprawić doświadczenia użytkownika.

Stylizacja map odbywa się przez Google Maps Styling Wizard lub plik JSON w formacie Map Style. Można zmieniać kolory dróg (featureType: road), wody (water), parków (poi.park), budynków (building) i innych elementów. Dla map w ciemnym motywie aplikacji użyj nocnego stylu z ciemnym tłem i stonowanymi kolorami. Google Maps obsługuje do 100 reguł stylistycznych w jednym pliku JSON.

Element dostosowaniaMetoda/KlasaOpis
ZnacznikiMarkerOptions.icon(BitmapDescriptor)Niestandardowa ikona znacznika z zasobów lub URL
PoliliniePolylineOptions.color(width)Linie do wyświetlania tras z niestandardowym kolorem
WielokątyPolygonOptions.fillColor(strokeColor)Wypełnienie obszaru z przezroczystością i obrysem
InfoWindowGoogleMap.setInfoWindowAdapterNiestandardowa zawartość okna informacyjnego (dowolny View)
GroundOverlayGroundOverlayOptions.image(BitmapDescriptor)Obraz nałożony na obszar mapy

Clustering: klastrowanie znaczników dla wydajności

Clustering — łączenie znaczników w klastry przy dużej liczbie punktów na mapie. Google Maps SDK dla Android i iOS zawiera wbudowane narzędzie do klastrowania (com.google.maps.android:android-maps-utils). Clustering zapobiega przepełnieniu mapy znacznikami przy powiększeniach poniżej pewnego poziomu. Po powiększeniu klaster automatycznie rozdziela się na pojedyncze znaczniki. Według Google, klastrowanie poprawia wydajność mapy o 40% przy 1000+ znacznikach.

Przykład kodu: mapa ze znacznikami w Kotlin

Pełny przykład wyświetlania mapy z niestandardowym znacznikiem, polilinią trasy i oknem informacyjnym. Aplikacja pokazuje mapę Moskwy z punktem zainteresowania i trasą do niego z centrum miasta. Kod demonstruje podstawowe możliwości Google Maps SDK: dodawanie znacznika, rysowanie polilinii, przesuwanie kamery i obsługę kliknięć.

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("Kreml")
            .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()
        }
    }
}

Zalecenia dotyczące wydajności: używaj asynchronicznego ładowania znaczników przez ClusterManager przy liczbie punktów powyżej 200, ogranicz liczbę widocznych polilinii (Google zaleca nie więcej niż 100 jednocześnie), używaj Lite Mode dla map, które nie wymagają pełnej funkcjonalności (przewijanie bez zmiany powiększenia). Lite Mode zmniejsza zużycie pamięci o 50% i przyspiesza ładowanie mapy 2 razy.

Cennik i limity Google Maps Platform

Google Maps Platform używa modelu płatności Pay-as-you-go z miesięcznym darmowym limitem $200 kredytów. Każde API jest rozliczane osobno: Maps SDK — $2.83 za 1000 załadowań mapy, Places API — $4.71 za 1000 zapytań, Directions API — $4.71 za 1000 tras. Routes API (zalecane) — $5.00 za 1000 zapytań. Darmowy limit $200 zazwyczaj pokrywa do 70 000 załadowań map miesięcznie.

Dla projektów o wysokim obciążeniu Google oferuje zniżki przy wolumenie od 500 000 zapytań miesięcznie. Google Maps SDK nie jest rozliczany za wyświetlanie podstawowej mapy bez interakcji — opłata pobierana jest tylko za załadowanie (map load). Za każdym razem, gdy użytkownik otwiera ekran z mapą, liczy się to jako jedno załadowanie. Optymalizacja: buforowanie kafelków mapy zmniejsza liczbę załadowań przy ponownym otwarciu.

Limity: 300 zapytań na minutę dla Places API (można zwiększyć do 3000 przez limit w Cloud Console). Dla Directions API — 100 zapytań na minutę. Przekroczenie limitu zwraca błąd OVER_QUERY_LIMIT. Google zaleca stosowanie wykładniczego opóźnienia (exponential backoff) dla ponownych zapytań. Monitorowanie użycia jest dostępne w Google Cloud Console z opóźnieniem do 5 minut.

Często zadawane pytania

Ile kosztuje użycie Google Maps SDK w aplikacji mobilnej?

Google Maps SDK jest rozliczany według modelu pay-as-you-go: $2.83 za 1000 załadowań mapy. Każdego miesiąca Google udostępnia $200 darmowych kredytów, które pokrywają do 70 000 załadowań. Places API i Directions API są rozliczane osobno. Dla małych projektów z publicznością do 10 000 użytkowników koszty zwykle wynoszą $10-50 miesięcznie.

Czy można używać Google Maps SDK bez internetu?

Tak, Google Maps SDK obsługuje mapy offline przez buforowanie kafelków. SDK automatycznie buforuje do 1000 kafelków (około 10x10 km obszaru). Dla pełnego wsparcia offline użyj Google Maps Offline API dla Android, które pozwala pobrać mapę całego regionu. Mapy offline nie obsługują ruchu, tras ani Places API.

Czym Google Maps SDK różni się od MapKit Apple?

Google Maps SDK oferuje szerszy zestaw danych: 250 mln miejsc, ruch w czasie rzeczywistym, Street View, Indoor Maps. Apple MapKit jest darmowy, ale ma mniej danych poza USA i Europą. Google SDK wymaga klucza API i płatności, Apple MapKit — nie. Dla projektów międzyplatformowych Google Maps SDK jest preferowany ze względu na jeden klucz API na obie platformy.

Jak uzyskać darmowy klucz API dla Google Maps?

Klucz API tworzy się w Google Cloud Console w sekcji APIs & Services → Credentials. Aby go aktywować, należy przypisać klucz do konta płatniczego, ale Google udostępnia $200 darmowych kredytów miesięcznie. Klucz można ograniczyć według IP, HTTP referrera lub pakietu Android / iOS Bundle ID. Do testowania nie jest wymagane podawanie danych karty bankowej.

Czy Google Maps SDK obsługuje klastrowanie znaczników?

Tak, Google Maps SDK obsługuje klastrowanie przez bibliotekę android-maps-utils (Android) i Google-Maps-iOS-Utils (iOS). ClusterManager automatycznie łączy bliskie znaczniki w klaster z wskaźnikiem numerycznym. Po powiększeniu klaster rozdziela się na pojedyncze znaczniki. Klastrowanie jest obowiązkowe przy 200+ znacznikach dla zachowania wydajności mapy.

Podsumowanie

  • Google Maps SDK — platforma do integracji map, danych geograficznych i nawigacji w aplikacjach mobilnych
  • Maps SDK dla Android i iOS wyświetla interaktywne mapy z obsługą stylów, znaczników i warstw
  • Places API — wyszukiwanie miejsc, autouzupełnianie adresów i geokodowanie dla aplikacji z danymi geograficznymi
  • Directions API / Routes API — wyznaczanie tras z uwzględnieniem ruchu i do 25 punktów pośrednich
  • Dostosowywanie obejmuje style JSON, niestandardowe znaczniki, InfoWindow, klastrowanie i GroundOverlay
  • Cennik — pay-as-you-go od $2.83 za 1000 załadowań z darmowym limitem $200 miesięcznie
  • Klucz API jest obowiązkowy, przypisywany do projektu w Google Cloud Console i ograniczany według platformy

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również