Google Maps SDK — a Google eszközkészlete interaktív térképek, geokódolás, útvonalak és helykeresés integrálásához mobil- és webalkalmazásokba. Az SDK tartalmazza a Maps SDK-t Android és iOS rendszerekhez, a Places API-t a geoadatokkal való munkához és a Directions API-t útvonalak építéséhez. A Google Maps szolgáltatások naponta több mint 100 milliárd kérést dolgoznak fel, ami a Maps SDK-t az egyik legteljesítményesebb térképezési megoldássá teszi. A Google Maps Platform Documentation, 2025 szerint az SDK-t a térképes mobilalkalmazások 60%-a használja.
Főbb pontok
Google Maps SDK — egy átfogó platform fejlesztőknek, amely eszközöket biztosít a földrajzi adatokkal való munkához alkalmazásokban. A platform több API-t foglal magában: Maps SDK (térképmegjelenítés), Routes API (útvonalak), Places API (helykeresés és geoadatok) és Geocoding API (címek koordinátákká alakítása). Minden SDK külön integrálódik és saját számlázási modellel rendelkezik.
Az Apple MapKit-tel ellentétben a Google Maps SDK szélesebb adatkészletet kínál: információ 250 millió helyről, valós idejű forgalom, Street View panorámák és Indoor Maps beltéri terekhez. A Statista (2025) szerint a Google Maps Platform a mobilalkalmazások térképezési SDK piacának 75%-át birtokolja. A kulcsfontosságú előny — egyetlen API-kulcs az összes Google Maps szolgáltatáshoz és cross-platform integráció (Android, iOS, web).
API-kulcs — kötelező elem a Google Maps SDK-val való munkához. A kulcs a Google Cloud Console-ban jön létre és egy adott projekthez kapcsolódik. Androidhoz meg kell adni az alkalmazás tanúsítványának SHA-1-jét, iOS-hez a Bundle Identifier-t. A Google javasolja az API-kulcs használatának IP-címek, HTTP refererek vagy alkalmazáscsomagok szerinti korlátozását a jogosulatlan hozzáférés megakadályozására.
Maps SDK Androidhoz — egy könyvtár, amely interaktív Google Térképeket jelenít meg Android-alkalmazáson belül MapView vagy SupportMapFragment segítségével. Az SDK támogatja: egyedi térképstílusokat, jelölőket információs ablakokkal, sokszögeket és vonalláncokat, forgalmi és közlekedési rétegeket, valamint érintési eseményeket és gesztusokat (nagyítás, forgatás, döntés). A térképek OpenGL-t használnak a megjelenítéshez, 60 FPS-t biztosítva modern eszközökön.
Az integráció a függőség build.gradle-hez adásával és az API-kulcs AndroidManifest.xml-en keresztüli konfigurálásával kezdődik. Google Maps SDK Androidhoz Google Play Services-t igényel az eszközön. Ha a Google Play Services nem érhető el (pl. Google-szolgáltatások nélküli Huawei eszközökön), a térképek nem jelennek meg. Ilyen esetekben a Google alternatív megoldások vagy WebView használatát javasolja JavaScript Maps API-val.
// AndroidManifest.xml — API-kulcs metaadatai
// <meta-data android:name="com.google.android.geo.API_KEY"
// android:value="YOUR_API_KEY"/>
// Térképfragmentum Activity-ben
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 Androidon támogatja az Indoor Maps-ot — épületek alaprajzainak megjelenítését (repülőterek, bevásárlóközpontok). Az engedélyezéshez elég beállítani a map.isIndoorEnabled = true értéket. A forgalmi réteg (Traffic Layer) valós időben mutatja az utak terheltségét — az adatok 2-5 percenként frissülnek. A közlekedési réteg (Transit Layer) a tömegközlekedési útvonalakat jeleníti meg a támogatott városokban.
Maps SDK iOS-hez ugyanazokat a lehetőségeket biztosítja, mint az Android verzió, de az Apple platformhoz igazítva. Az integráció Swift Package Manageren vagy CocoaPods-on keresztül történik. A Maps SDK iOS-hez Google szervereket használ a térképek megjelenítéséhez, de együttműködhet az Apple MapKit-tel a natív navigációhoz. Az SDK támogatja az iOS 15 és újabb verzióit, valamint a SwiftUI-t UIViewRepresentable-en keresztül.
Az iOS verzió sajátossága — az Info.plist kötelező konfigurálása az API-kulcs megadásával és az URL séma hozzáadásával a Google Maps számára. Az Androidtól eltérően az iOS SDK nem igényel Google Play Services-t, de bizonyos funkciókhoz (pl. térképek megnyitása navigációban) telepített Google Maps alkalmazást igényel. Cross-platform projektekhez a Google egyetlen, mindkét platformra aktivált API-kulcsot javasol projektenként.
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
}
}iOS-en a Google Maps SDK támogatja az egyedi stílusokat JSON fájlon keresztül Google Maps Styling formátumban. A stílusok lehetővé teszik az utak, víz, parkok és épületek színeinek megváltoztatását az alkalmazás dizájnjának megfelelően. Támogatott még a Heatmap Layer az adatsűrűség vizualizálásához, KML és GeoJSON földrajzi adatok külső forrásokból való importálásához.
Places API — a Google Maps Platform szolgáltatása földrajzi helyekkel kapcsolatos információk lekéréséhez: címek, koordináták, értékelés, nyitvatartás, fényképek és vélemények. A Places API két módban működik: Place Search (helyek keresése szöveg vagy sugár alapján) és Place Details (részletes információ lekérése egy adott helyről Place ID alapján). Az SDK Androidra, iOS-re és REST API-ként érhető el.
A Places SDK Androidra és iOS-re lehetővé teszi a címek automatikus kiegészítésének (Place Autocomplete) beépítését közvetlenül az alkalmazás szövegmezőibe. Ez kulcsfontosságú funkció a szállítási, taxis és logisztikai alkalmazások számára — a felhasználó elkezdi beírni a címet, az SDK pedig opciókat javasol a Google Maps adatbázisából. Place Autocomplete 80%-kal csökkenti a címe beviteli hibákat a kézi bevitelhez képest. Places API számlázás: $2.83 1000 Place Details kérésenként, Place Search — $4.71 1000-enként.
// Hely keresése szöveg alapján Androidon
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 — fordított geokódolás (koordináták → cím) és közvetlen (cím → koordináták). A felhasználó által beírt cím koordinátákká alakítására szolgál a térképen való megjelenítéshez. A Geocoding API külön számlázandó: $4.71 1000 kérésenként. A Google 200 ingyenes kérést biztosít naponta fiókonként teszteléshez.
Directions API — szolgáltatás útvonalak kiszámításához két vagy több pont között, figyelembe véve a közlekedési módot (autó, gyalog, kerékpár, tömegközlekedés). Az API több alternatív útvonalat ad vissza a távolság, utazási idő, lépésről lépésre utasítások és az útvonal térképre rajzolásához szükséges vonallánc megadásával. A Directions API REST API-ként és kliens SDK-kon keresztül érhető el.
Kibővített funkcionalitás — Routes API (új API, amelyet a Google 2024 óta javasol). A Routes API fejlettebb útvonaltervezést kínál valós idejű forgalom, ökológiai lábnyom (eco-friendly routing) és az érkezési idő prediktív elemzésének figyelembevételével. A Google szerint a Routes API 20%-kal pontosabban számolja ki az utazási időt városi körülmények között a klasszikus Directions API-hoz képest. A Routes API számlázása: $5.00 1000 kérésenként.
// Útvonal kérés Routes API-n keresztül
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 egy útvonalhoz akár 25 köztes pontot (waypoints) támogat. A köztes pontok megadhatók koordinátaként vagy Place ID-ként. A pontok sorrendjének optimalizálásához (utazó ügynök probléma) használja az optimize:true paramétert. Számlázás: Directions API — $4.71 1000 kérésenként (10 pontig), minden további pont 50%-kal növeli a kérés költségét.
Google Maps SDK széles körű testreszabási lehetőségeket kínál: a térkép színrendszerének megváltoztatása JSON stílusokon keresztül, egyedi jelölők (beleértve az animáltakat) hozzáadása, információs ablakok (InfoWindow) tetszőleges tartalommal és grafikus rétegek (GroundOverlay, Circle, Polygon) elhelyezése. A testreszabás lehetővé teszi a térkép alkalmazás arculatához igazítását és a felhasználói élmény javítását.
Térképstílusok a Google Maps Styling Wizard vagy egy Map Style formátumú JSON fájl segítségével hozhatók létre. Megváltoztathatók az utak (featureType: road), víz (water), parkok (poi.park), épületek (building) és más elemek színei. A sötét témájú alkalmazásokhoz használjon éjszakai stílust sötét háttérrel és tompított színekkel. A Google Maps egy JSON fájlban akár 100 stílusszabályt támogat.
| Testreszabási elem | Metódus/Osztály | Leírás |
|---|---|---|
| Jelölők | MarkerOptions.icon(BitmapDescriptor) | Egyedi jelölő ikon erőforrásokból vagy URL-ből |
| Vonalláncok | PolylineOptions.color(width) | Vonalak útvonalak megjelenítéséhez egyedi színnel |
| Sokszögek | PolygonOptions.fillColor(strokeColor) | Terület kitöltése átlátszósággal és körvonallal |
| InfoWindow | GoogleMap.setInfoWindowAdapter | Információs ablak egyedi tartalma (bármilyen View) |
| GroundOverlay | GroundOverlayOptions.image(BitmapDescriptor) | Térképterületre helyezett kép |
Clustering — jelölők összevonása klaszterekbe nagyszámú pont esetén a térképen. A Google Maps SDK Androidhoz és iOS-hez beépített klaszterező segédprogramot tartalmaz (com.google.maps.android:android-maps-utils). A Clustering megakadályozza a térkép túlterhelését jelölőkkel egy bizonyos szint alatti nagyításoknál. Nagyításkor a klaszter automatikusan egyedi jelölőkre bomlik. A Google szerint a klaszterezés 40%-kal javítja a térkép teljesítményét 1000+ jelölő esetén.
Teljes példa a térkép megjelenítésére egyedi jelölővel, útvonal vonallánccal és információs ablakkal. Az alkalmazás Moszkva térképét mutatja egy érdekes ponttal és a hozzá vezető útvonallal a városközpontból. A kód bemutatja a Google Maps SDK alapvető lehetőségeit: jelölő hozzáadása, vonallánc rajzolása, kamera mozgatása és kattintások kezelése.
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()
}
}
}Teljesítmény-ajánlások: használja a jelölők aszinkron betöltését ClusterManager segítségével 200 pont felett, korlátozza a látható vonalláncok számát (a Google legfeljebb 100 egyidejű használatát javasolja), használja a Lite Mode-ot azokhoz a térképekhez, amelyek nem igényelnek teljes funkcionalitást (görgetés nagyítás változtatása nélkül). A Lite Mode 50%-kal csökkenti a memóriahasználatot és 2-szeresére gyorsítja a térkép betöltését.
Google Maps Platform Pay-as-you-go fizetési modellt használ havi $200 ingyenes kreditkorláttal. Minden API külön számlázandó: Maps SDK — $2.83 1000 térképbetöltésenként, Places API — $4.71 1000 kérésenként, Directions API — $4.71 1000 útvonalonként. Routes API (javasolt) — $5.00 1000 kérésenként. A $200 ingyenes limit általában havi 70 000 térképbetöltést fedez.
Magas terhelésű projektekhez a Google kedvezményeket kínál havi 500 000 kéréstől kezdődő mennyiségnél. Google Maps SDK nem számlázandó az alaptérkép interakció nélküli megjelenítéséért — a díjat csak a betöltésért (map load) számítják fel. Minden alkalommal, amikor a felhasználó megnyitja a térképes képernyőt, az egy betöltésnek számít. Optimalizálás: a térkép csempék gyorsítótárazása csökkenti a betöltések számát ismételt megnyitáskor.
Korlátok: 300 kérés percenként a Places API-hoz (3000-re növelhető a Cloud Console kvótáján keresztül). Directions API-hoz — 100 kérés percenként. A korlát túllépése OVER_QUERY_LIMIT hibát ad vissza. A Google exponenciális késleltetés (exponential backoff) használatát javasolja ismételt kérésekhez. A használat monitorozása a Google Cloud Console-ban érhető el, maximum 5 perces késleltetéssel.
Gyakran ismételt kérdések
Google Maps SDK a pay-as-you-go modell szerint számlázandó: $2.83 1000 térképbetöltésenként. A Google havonta $200 ingyenes kreditet biztosít, amely akár 70 000 betöltést fedez. A Places API és Directions API külön számlázandó. Kis projekteknél, legfeljebb 10 000 felhasználóval, a költségek általában havi $10-50.
Igen, a Google Maps SDK támogatja az offline térképeket a csempék gyorsítótárazásán keresztül. Az SDK automatikusan gyorsítótáraz akár 1000 csempét (körülbelül 10x10 km terület). A teljes offline támogatáshoz használja a Google Maps Offline API-t Androidhoz, amely lehetővé teszi egy teljes régió térképének letöltését. Az offline térképek nem támogatják a forgalmat, útvonalakat és a Places API-t.
Google Maps SDK szélesebb adatkészletet kínál: 250 millió hely, valós idejű forgalom, Street View, Indoor Maps. Az Apple MapKit ingyenes, de kevesebb adattal rendelkezik az USA-n és Európán kívül. A Google SDK API-kulcsot és fizetést igényel, az Apple MapKit nem. Cross-platform projektekhez a Google Maps SDK előnyösebb az egyetlen API-kulcs miatt mindkét platformon.
Az API-kulcs a Google Cloud Console-ban hozható létre az APIs & Services → Credentials szakaszon keresztül. Az aktiváláshoz a kulcsot fizetési fiókhoz kell kapcsolni, de a Google havi $200 ingyenes kreditet biztosít. A kulcs korlátozható IP, HTTP referrer vagy Android csomag / iOS Bundle ID alapján. Teszteléshez nem szükséges bankkártya adatok megadása.
Igen, a Google Maps SDK támogatja a klaszterezést a android-maps-utils (Android) és Google-Maps-iOS-Utils (iOS) könyvtáron keresztül. A ClusterManager automatikusan összevonja a közeli jelölőket egy klaszterbe numerikus jelzővel. Nagyításkor a klaszter egyedi jelölőkre bomlik. A klaszterezés kötelező 200+ jelölő esetén a térkép teljesítményének megőrzéséhez.
Összefoglaló
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is