Google Maps SDK — je sada nástrojů od Google pro integraci interaktivních map, geokódování, tras a vyhledávání míst do mobilních a webových aplikací. SDK zahrnuje Maps SDK pro Android a iOS, Places API pro práci s geodaty a Directions API pro vytváření tras. Služby Google Maps zpracovávají více než 100 miliard požadavků denně, což činí Maps SDK jedním z nejvýkonnějších mapových řešení. Podle Google Maps Platform Documentation, 2025 se SDK používá v 60 % všech mobilních aplikací s mapami.
Hlavní body
Google Maps SDK — je komplexní platforma pro vývojáře poskytující nástroje pro práci s geografickými daty v aplikacích. Platforma zahrnuje několik API: Maps SDK (zobrazení map), Routes API (trasy), Places API (vyhledávání míst a geodata) a Geocoding API (převod adres na souřadnice). Každé SDK se integruje samostatně a má svůj vlastní model fakturace.
Na rozdíl od Apple MapKit nabízí Google Maps SDK širší sadu dat: informace o 250 milionech míst, dopravu v reálném čase, panoramata Street View a Indoor Maps pro vnitřní prostory. Podle Statista (2025) vlastní Google Maps Platform 75 % trhu mapových SDK v mobilních aplikacích. Klíčovou výhodou je jediný API klíč pro všechny služby Google Maps a multiplatformní integrace (Android, iOS, web).
API klíč — povinný prvek pro práci s Google Maps SDK. Klíč se vytváří v Google Cloud Console a váže se ke konkrétnímu projektu. Pro Android je třeba uvést SHA-1 certifikátu aplikace, pro iOS — Bundle Identifier. Google doporučuje omezit použití API klíče podle IP adres, HTTP referrerů nebo balíčků aplikací pro zabránění neoprávněnému přístupu.
Maps SDK pro Android — je knihovna, která zobrazuje interaktivní Google Mapy uvnitř Android aplikace prostřednictvím MapView nebo SupportMapFragment. SDK podporuje: vlastní styly map, značky s informačními okny, mnohoúhelníky a polygonální čáry, vrstvy dopravy a přepravy, stejně jako dotykové události a gesta (zoom, otáčení, naklánění). Mapy používají OpenGL pro vykreslování a poskytují 60 FPS na moderních zařízeních.
Integrace začíná přidáním závislosti v build.gradle a konfigurací API klíče přes AndroidManifest.xml. Google Maps SDK pro Android vyžaduje Google Play Services na zařízení. Pokud Google Play Services chybí (např. na zařízeních Huawei bez služeb Google), mapy se nezobrazí. Pro takové případy Google doporučuje alternativní řešení nebo WebView s JavaScript Maps API.
// AndroidManifest.xml — metadata API klíče
// <meta-data android:name="com.google.android.geo.API_KEY"
// android:value="YOUR_API_KEY"/>
// Fragment mapy v 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 Androidu podporuje Indoor Maps — zobrazení půdorysů budov (letiště, obchodní centra). Pro aktivaci stačí nastavit map.isIndoorEnabled = true. Vrstva dopravy (Traffic Layer) ukazuje zatížení silnic v reálném čase — data se aktualizují každé 2-5 minut. Vrstva přepravy (Transit Layer) zobrazuje trasy veřejné dopravy v podporovaných městech.
Maps SDK pro iOS poskytuje stejné možnosti jako verze pro Android, ale přizpůsobené platformě Apple. Integrace se provádí přes Swift Package Manager nebo CocoaPods. Maps SDK pro iOS používá servery Google pro vykreslování map, ale může spolupracovat s Apple MapKit pro nativní navigaci. SDK podporuje iOS 15 a novější, stejně jako SwiftUI přes UIViewRepresentable.
Zvláštností iOS verze je povinná konfigurace Info.plist s uvedením API klíče a přidáním URL schématu pro Google Maps. Na rozdíl od Androidu, iOS SDK nevyžaduje Google Play Services, ale vyžaduje nainstalovanou aplikaci Google Maps pro některé funkce (např. otevření map v navigaci). Pro multiplatformní projekty Google doporučuje jediný API klíč na projekt, aktivovaný pro obě platformy.
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 podporuje vlastní styly přes JSON soubor ve formátu Google Maps Styling. Styly umožňují měnit barvy silnic, vody, parků a budov podle designu aplikace. Podporovány jsou také Heatmap Layer pro vizualizaci hustoty dat, KML a GeoJSON pro import geografických dat z externích zdrojů.
Places API — je služba Google Maps Platform pro získávání informací o geografických místech: adresy, souřadnice, hodnocení, otevírací doba, fotografie a recenze. Places API pracuje ve dvou režimech: Place Search (vyhledávání míst podle textu nebo poloměru) a Place Details (získání podrobných informací o konkrétním místě podle Place ID). SDK je k dispozici pro Android, iOS a jako REST API.
Places SDK pro Android a iOS umožňuje vložit automatické doplňování adres (Place Autocomplete) přímo do textových polí aplikace. To je klíčová funkce pro doručovací, taxislužby a logistické aplikace — uživatel začne psát adresu a SDK nabízí možnosti z databáze Google Maps. Place Autocomplete snižuje počet chyb při zadávání adresy o 80 % ve srovnání s ručním zadáváním. Fakturace Places API: $2.83 za 1000 požadavků Place Details, Place Search — $4.71 za 1000.
// Vyhledání místa podle textu na Androidu
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 — zpětné geokódování (souřadnice → adresa) a přímé (adresa → souřadnice). Používá se pro převod adresy zadané uživatelem na souřadnice pro zobrazení na mapě. Geocoding API se fakturuje samostatně: $4.71 za 1000 požadavků. Google poskytuje 200 bezplatných požadavků denně na účet pro testování.
Directions API — služba pro výpočet tras mezi dvěma nebo více body s ohledem na druh dopravy (auto, pěšky, kolo, veřejná doprava). API vrací několik alternativních tras s uvedením vzdálenosti, času jízdy, podrobných pokynů a polygonální čáry pro vykreslení trasy na mapě. Directions API je k dispozici jako REST API a přes klientská SDK.
Rozšířená funkcionalita — Routes API (nové API, doporučované Googlem od roku 2024). Routes API nabízí vylepšené směrování s ohledem na dopravu v reálném čase, ekologickou stopu (eco-friendly routing) a prediktivní analýzu času příjezdu. Podle Google je Routes API o 20 % přesnější při výpočtu času jízdy v městských podmínkách ve srovnání s klasickým Directions API. Routes API se fakturuje: $5.00 za 1000 požadavků.
// Požadavek na trasu přes 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 podporuje až 25 mezilehlých bodů (waypoints) pro jednu trasu. Mezilehlé body mohou být zadány jako souřadnice nebo Place ID. Pro optimalizaci pořadí bodů (problém obchodního cestujícího) použijte parametr optimize:true. Fakturace: Directions API — $4.71 za 1000 požadavků (do 10 bodů), každý další bod přidává 50 % k ceně požadavku.
Google Maps SDK poskytuje rozsáhlé možnosti přizpůsobení: změna barevného schématu mapy přes JSON styly, přidání vlastních značek (včetně animovaných), informačních oken (InfoWindow) s libovolným obsahem a vrstvení grafických vrstev (GroundOverlay, Circle, Polygon). Přizpůsobení umožňuje přizpůsobit mapu značce aplikace a zlepšit uživatelský zážitek.
Styly map se provádějí přes Google Maps Styling Wizard nebo JSON soubor ve formátu Map Style. Lze měnit barvy silnic (featureType: road), vody (water), parků (poi.park), budov (building) a dalších prvků. Pro mapy v tmavém režimu aplikace použijte noční styl s tmavým pozadím a tlumenými barvami. Google Maps podporuje až 100 stylových pravidel v jednom JSON souboru.
| Prvek přizpůsobení | Metoda/Třída | Popis |
|---|---|---|
| Značky | MarkerOptions.icon(BitmapDescriptor) | Vlastní ikona značky ze zdrojů nebo URL |
| Polygonální čáry | PolylineOptions.color(width) | Čáry pro zobrazení tras s vlastní barvou |
| Mnohoúhelníky | PolygonOptions.fillColor(strokeColor) | Vyplnění oblasti s průhledností a obrysem |
| InfoWindow | GoogleMap.setInfoWindowAdapter | Vlastní obsah informačního okna (libovolný View) |
| GroundOverlay | GroundOverlayOptions.image(BitmapDescriptor) | Obrázek umístěný na oblast mapy |
Clustering — spojování značek do shluků při velkém počtu bodů na mapě. Google Maps SDK pro Android a iOS obsahuje vestavěný nástroj pro shlukování (com.google.maps.android:android-maps-utils). Clustering zabraňuje přeplnění mapy značkami při zoomu pod určitou úroveň. Při zoomu se shluk automaticky rozdělí na jednotlivé značky. Podle Google shlukování zlepšuje výkon mapy o 40 % při 1000+ značkách.
Úplný příklad zobrazení mapy s vlastní značkou, polygonální čárou trasy a informačním oknem. Aplikace zobrazuje mapu Moskvy s bodem zájmu a trasou k němu z centra města. Kód demonstruje základní možnosti Google Maps SDK: přidání značky, kreslení polygonální čáry, pohyb kamery a zpracování kliknutí.
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()
}
}
}Doporučení pro výkon: používejte asynchronní načítání značek přes ClusterManager při počtu bodů nad 200, omezte počet viditelných polygonálních čar (Google doporučuje ne více než 100 současně), používejte Lite Mode pro mapy, které nevyžadují plnou funkcionalitu (posouvání bez změny zoomu). Lite Mode snižuje spotřebu paměti o 50 % a zrychluje načítání mapy 2krát.
Google Maps Platform používá platební model Pay-as-you-go s měsíčním bezplatným limitem $200 kreditů. Každé API se fakturuje samostatně: Maps SDK — $2.83 za 1000 načtení mapy, Places API — $4.71 za 1000 požadavků, Directions API — $4.71 za 1000 tras. Routes API (doporučované) — $5.00 za 1000 požadavků. Bezplatný limit $200 obvykle pokryje až 70 000 načtení map měsíčně.
Pro projekty s vysokým zatížením Google nabízí slevy při objemu od 500 000 požadavků měsíčně. Google Maps SDK se nefakturuje za zobrazení základní mapy bez interakce — poplatek se účtuje pouze za načtení (map load). Pokaždé, když uživatel otevře obrazovku s mapou, počítá se to jako jedno načtení. Optimalizace: ukládání dlaždic mapy do mezipaměti snižuje počet načtení při opětovném otevření.
Limity: 300 požadavků za minutu pro Places API (lze zvýšit na 3000 přes kvótu v Cloud Console). Pro Directions API — 100 požadavků za minutu. Překročení limitu vrací chybu OVER_QUERY_LIMIT. Google doporučuje použít exponenciální zpoždění (exponential backoff) pro opakované požadavky. Monitorování použití je k dispozici v Google Cloud Console se zpožděním až 5 minut.
Často kladené otázky
Google Maps SDK se fakturuje podle modelu pay-as-you-go: $2.83 za 1000 načtení mapy. Každý měsíc Google poskytuje $200 bezplatných kreditů, které pokrývají až 70 000 načtení. Places API a Directions API se fakturují samostatně. Pro malé projekty s publikem do 10 000 uživatelů činí náklady obvykle $10-50 měsíčně.
Ano, Google Maps SDK podporuje offline mapy prostřednictvím ukládání dlaždic do mezipaměti. SDK automaticky ukládá do mezipaměti až 1000 dlaždic (přibližně 10x10 km oblast). Pro plnou offline podporu použijte Google Maps Offline API pro Android, které umožňuje stáhnout mapu celého regionu. Offline mapy nepodporují dopravu, trasy a Places API.
Google Maps SDK nabízí širší sadu dat: 250 milionů míst, dopravu v reálném čase, Street View, Indoor Maps. Apple MapKit je zdarma, ale má méně dat mimo USA a Evropu. Google SDK vyžaduje API klíč a platbu, Apple MapKit ne. Pro multiplatformní projekty je Google Maps SDK výhodnější díky jedinému API klíči na obě platformy.
API klíč se vytváří v Google Cloud Console v sekci APIs & Services → Credentials. Pro aktivaci je třeba klíč připojit k platebnímu účtu, ale Google poskytuje měsíčně $200 bezplatných kreditů. Klíč lze omezit podle IP, HTTP referreru nebo Android balíčku / iOS Bundle ID. Pro testování není nutné zadávat údaje o bankovní kartě.
Ano, Google Maps SDK podporuje shlukování prostřednictvím knihovny android-maps-utils (Android) a Google-Maps-iOS-Utils (iOS). ClusterManager automaticky spojuje blízké značky do shluku s číselným indikátorem. Při zoomu se shluk rozdělí na jednotlivé značky. Shlukování je povinné při 200+ značkách pro zachování výkonu mapy.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také