Google Maps SDK — шта је то, Google мапе и API за развој

Аутор: IT Sectr Објављено: 2026-04-30 Време читања: 10 мин

Google Maps SDK — је скуп алата од Google-а за интеграцију интерактивних мапа, геокодирања, рута и претраге места у мобилне и веб апликације. SDK укључује Maps SDK за Android и iOS, Places API за рад са геоподацима и Directions API за изградњу рута. Google Maps услуге обрађују више од 100 милијарди захтева дневно, што чини Maps SDK једним од најперформантнијих картографских решења. Према Google Maps Platform Documentation, 2025, SDK се користи у 60% свих мобилних апликација са мапама.

Главне тачке

  • Google Maps SDK — платформа за интеграцију мапа, геоподатака и навигације у апликације
  • Maps SDK — приказ интерактивних мапа са прилагођавањем стилова и слојева
  • Places API — претрага места, геокодирање и добијање информација о локацијама
  • Directions API — изградња рута за различите врсте транспорта
  • Наплата — плаћање за коришћење API-ја на основу броја захтева ($2-10 за 1000 захтева)

Шта је Google Maps SDK?

Google Maps SDK — је свеобухватна платформа за програмере која пружа алате за рад са географским подацима у апликацијама. Платформа укључује неколико API-ја: Maps SDK (приказ мапа), Routes API (руте), Places API (претрага места и геоподаци) и Geocoding API (конверзија адреса у координате). Сваки SDK се интегрише засебно и има сопствени модел наплате.

За разлику од Apple MapKit-а, Google Maps SDK нуди шири скуп података: информације о 250 милиона места, саобраћај у реалном времену, Street View панораме и Indoor Maps за унутрашње просторе. Према Statista (2025), Google Maps Platform заузима 75% тржишта картографских SDK-јева у мобилним апликацијама. Кључна предност — јединствени API кључ за све Google Maps услуге и међуплатформска интеграција (Android, iOS, веб).

API кључ и подешавање безбедности

API кључ — обавезан елемент за рад са Google Maps SDK-јем. Кључ се креира у Google Cloud Console-у и везује се за одређени пројекат. За Android је потребно додатно навести SHA-1 сертификата апликације, за iOS — Bundle Identifier. Google препоручује ограничавање коришћења API кључа по ИП адресама, HTTP референцама или пакетима апликација ради спречавања неовлашћеног приступа.

Maps SDK за Android: интеграција и могућности

Maps SDK за Android — је библиотека која приказује интерактивне Google мапе унутар Android апликације путем MapView или SupportMapFragment-а. SDK подржава: прилагођене стилове мапа, маркере са информационим прозорима, полигоне и полилиније, слојеве саобраћаја и транспорта, као и догађаје додира и гестове (зум, ротација, нагињање). Мапе користе OpenGL за рендеровање, обезбеђујући 60 FPS на савременим уређајима.

Интеграција почиње додавањем зависности у build.gradle и подешавањем API кључа кроз AndroidManifest.xml. Google Maps SDK за Android захтева Google Play Services на уређају. Ако Google Play Services није присутан (нпр. на Huawei уређајима без Google услуга), мапе се неће приказати. За такве случајеве, Google препоручује коришћење алтернативних решења или WebView са JavaScript Maps API-јем.

kotlin
// AndroidManifest.xml — метаподаци API кључа
// <meta-data android:name="com.google.android.geo.API_KEY"
//     android:value="YOUR_API_KEY"/>

// Фрагмент мапе у 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 на Android-у подржава Indoor Maps — приказ планова зграда (аеродроми, тржни центри). За укључивање довољно је подесити map.isIndoorEnabled = true. Слој саобраћаја (Traffic Layer) показује оптерећеност путева у реалном времену — подаци се ажурирају сваких 2-5 минута. Слој транспорта (Transit Layer) приказује руте јавног превоза у подржаним градовима.

Maps SDK за iOS: подешавање и коришћење

Maps SDK за iOS пружа исте могућности као Android верзија, али прилагођене Apple платформи. Интеграција се врши путем Swift Package Manager-а или CocoaPods-а. Maps SDK за iOS користи Google сервере за рендеровање мапа, али може радити заједно са Apple MapKit-ом за нативну навигацију. SDK подржава iOS 15 и новије, као и SwiftUI путем UIViewRepresentable-а.

Посебност iOS верзије — обавезна конфигурација Info.plist-а са навођењем API кључа и додавањем URL шеме за Google Maps. За разлику од Android-а, iOS SDK не захтева Google Play Services, али захтева инсталирану Google Maps апликацију за неке функције (нпр. отварање мапа у навигацији). За међуплатформске пројекте, Google препоручује јединствени API кључ по пројекту, активиран за обе платформе.

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

На iOS-у Google Maps SDK подржава прилагођене стилове кроз JSON датотеку у формату Google Maps Styling. Стилови омогућавају мењање боја путева, воде, паркова и зграда у складу са дизајном апликације. Такође се подржавају Heatmap Layer за визуелизацију густине података, KML и GeoJSON за увоз географских података из екстерних извора.

Places API: претрага места и геокодирање

Places API — је услуга Google Maps Platform за добијање информација о географским местима: адресе, координате, оцена, радно време, фотографије и рецензије. Places API ради у два режима: Place Search (претрага места по тексту или радијусу) и Place Details (добијање детаљних информација о одређеном месту по Place ID-у). SDK је доступан за Android, iOS и као REST API.

Places SDK за Android и iOS омогућава уграђивање аутоматског довршавања адреса (Place Autocomplete) директно у текстуална поља апликације. Ово је кључна функција за апликације доставе, таксија и логистике — корисник почиње да уноси адресу, а SDK предлаже опције из Google Maps базе. Place Autocomplete смањује број грешака уноса адресе за 80% у поређењу са ручним уносом. Наплата Places API: $2.83 за 1000 захтева Place Details, Place Search — $4.71 за 1000.

kotlin
// Претрага места по тексту на 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 — обрнуто геокодирање (координате → адреса) и директно (адреса → координате). Користи се за конверзију адресе коју је унео корисник у координате за приказ на мапи. Geocoding API се наплаћује засебно: $4.71 за 1000 захтева. Google обезбеђује 200 бесплатних захтева дневно по налогу за тестирање.

Directions API: изградња рута

Directions API — услуга за израчунавање рута између две или више тачака узимајући у обзир врсту превоза (аутомобил, пешке, бицикл, јавни превоз). API враћа неколико алтернативних рута са навођењем удаљености, времена путовања, упутстава корак по корак и полилиније за цртање руте на мапи. Directions API је доступан као REST API и кроз клијентске SDK-јеве.

Проширена функционалност — Routes API (нови API, препоручен од Google-а од 2024. године). Routes API нуди побољшано усмеравање са узимањем у обзир саобраћаја у реалном времену, еколошког отиска (eco-friendly routing) и предиктивне анализе времена доласка. Према Google-у, Routes API је 20% прецизнији у израчунавању времена путовања у градским условима у поређењу са класичним Directions API-јем. Routes API се наплаћује: $5.00 за 1000 захтева.

kotlin
// Захтев за руту путем 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 подржава до 25 међутачака (waypoints) за једну руту. Међутачке могу бити задате као координате или Place ID. За оптимизацију редоследа тачака (problem трговачког путника) користите параметар optimize:true. Наплата: Directions API — $4.71 за 1000 захтева (до 10 тачака), свака додатна тачка додаје 50% на цену захтева.

Прилагођавање мапа: стилови, маркери и информациони прозори

Google Maps SDK пружа широке могућности прилагођавања: промена шеме боја мапе кроз JSON стилове, додавање прилагођених маркера (укључујући анимиране), информационих прозора (InfoWindow) са произвољним садржајем и наношење графичких слојева (GroundOverlay, Circle, Polygon). Прилагођавање омогућава прилагођавање мапе бренду апликације и побољшање корисничког искуства.

Стилизација мапа се врши путем Google Maps Styling Wizard-а или JSON датотеке у формату Map Style. Могуће је мењати боје путева (featureType: road), воде (water), паркова (poi.park), зграда (building) и других елемената. За мапе у тамној теми апликације користите ноћни стил са тамном позадином и пригушеним бојама. Google Maps подржава до 100 стилских правила у једној JSON датотеци.

Елемент прилагођавањаМетод/КласаОпис
МаркериMarkerOptions.icon(BitmapDescriptor)Прилагођена икона маркера из ресурса или URL-а
ПолилинијеPolylineOptions.color(width)Линије за приказ рута са прилагођеном бојом
ПолигониPolygonOptions.fillColor(strokeColor)Попуњавање области са провидношћу и контуром
InfoWindowGoogleMap.setInfoWindowAdapterПрилагођени садржај информационог прозора (било који View)
GroundOverlayGroundOverlayOptions.image(BitmapDescriptor)Слика постављена на област мапе

Clustering: кластеризација маркера за перформансе

Clustering — обједињавање маркера у кластере при великом броју тачака на мапи. Google Maps SDK за Android и iOS укључује уграђени алат за кластеризацију (com.google.maps.android:android-maps-utils). Clustering спречава преоптерећење мапе маркерима при зумима испод одређеног нивоа. При зуму, кластер се аутоматски разбија на појединачне маркере. Према Google-у, кластеризација побољшава перформансе мапе за 40% при 1000+ маркера.

Пример кода: мапа са маркерима у Kotlin-у

Потпун пример приказа мапе са прилагођеним маркером, полилинијом руте и информационим прозором. Апликација приказује мапу Москве са тачком интереса и рутом до ње из центра града. Код демонстрира основне могућности Google Maps SDK-ја: додавање маркера, цртање полилиније, померање камере и обраду кликова.

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("Кремљ")
            .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()
        }
    }
}

Препоруке за перформансе: користите асинхроно учитавање маркера кроз ClusterManager при броју тачака преко 200, ограничите број видљивих полилинија (Google препоручује не више од 100 истовремено), користите Lite Mode за мапе које не захтевају пуну функционалност (померање без промене зума). Lite Mode смањује потрошњу меморије за 50% и убрзава учитавање мапе 2 пута.

Цене и лимити Google Maps Platform

Google Maps Platform користи модел плаћања Pay-as-you-go са месечним бесплатним лимитом од $200 кредита. Сваки API се наплаћује засебно: Maps SDK — $2.83 за 1000 учитавања мапе, Places API — $4.71 за 1000 захтева, Directions API — $4.71 за 1000 рута. Routes API (препоручен) — $5.00 за 1000 захтева. Бесплатни лимит од $200 обично покрива до 70 000 учитавања мапа месечно.

За пројекте са високим оптерећењем, Google нуди попусте при обиму од 500 000 захтева месечно. Google Maps SDK се не наплаћује за приказ основне мапе без интеракције — наплата се врши само за учитавање (map load). Сваки пут када корисник отвори екран са мапом, то се рачуна као једно учитавање. Оптимизација: кеширање тајлова мапе смањује број учитавања при поновном отварању.

Лимити: 300 захтева у минути за Places API (може се повећати на 3000 кроз квоту у Cloud Console-у). За Directions API — 100 захтева у минути. Прекорачење лимита враћа грешку OVER_QUERY_LIMIT. Google препоручује коришћење експоненцијалног кашњења (exponential backoff) за поновне захтеве. Мониторинг коришћења је доступан у Google Cloud Console-у са кашњењем до 5 минута.

Често постављана питања

Колико кошта коришћење Google Maps SDK-ја у мобилној апликацији?

Google Maps SDK се наплаћује по моделу pay-as-you-go: $2.83 за 1000 учитавања мапе. Сваког месеца Google обезбеђује $200 бесплатних кредита који покривају до 70 000 учитавања. Places API и Directions API се наплаћују засебно. За мале пројекте са публиком до 10 000 корисника, трошкови обично износе $10-50 месечно.

Може ли се Google Maps SDK користити без интернета?

Да, Google Maps SDK подржава офлајн мапе кроз кеширање тајлова. SDK аутоматски кешира до 1000 тајлова (приближно 10x10 km области). За потпуну офлајн подршку користите Google Maps Offline API за Android, који омогућава преузимање мапе целог региона. Офлајн мапе не подржавају саобраћај, руте и Places API.

Чим се Google Maps SDK разликује од Apple MapKit-а?

Google Maps SDK нуди шири скуп података: 250 милиона места, саобраћај у реалном времену, Street View, Indoor Maps. Apple MapKit је бесплатан, али има мање података ван САД и Европе. Google SDK захтева API кључ и плаћање, Apple MapKit — не. За међуплатформске пројекте, Google Maps SDK је пожељнији због јединственог API кључа на обе платформе.

Како добити бесплатни API кључ за Google Maps?

API кључ се креира у Google Cloud Console-у кроз одељак APIs & Services → Credentials. За активацију је потребно повезати кључ са налогом за плаћање, али Google обезбеђује $200 бесплатних кредита месечно. Кључ се може ограничити по IP-у, HTTP референци или Android пакету / iOS Bundle ID-у. За тестирање није потребно уношење података банкарске картице.

Да ли Google Maps SDK подржава кластеризацију маркера?

Да, Google Maps SDK подржава кластеризацију кроз библиотеку android-maps-utils (Android) и Google-Maps-iOS-Utils (iOS). ClusterManager аутоматски обједињује блиске маркере у кластер са нумеричким индикатором. При зуму, кластер се разбија на појединачне маркере. Кластеризација је обавезна при 200+ маркера ради очувања перформанси мапе.

Резиме

  • Google Maps SDK — платформа за интеграцију мапа, геоподатака и навигације у мобилне апликације
  • Maps SDK за Android и iOS приказује интерактивне мапе са подршком за стилове, маркере и слојеве
  • Places API — претрага места, аутоматско довршавање адреса и геокодирање за апликације са геоподацима
  • Directions API / Routes API — изградња рута са узимањем у обзир саобраћаја и до 25 међутачака
  • Прилагођавање укључује JSON стилове, прилагођене маркере, InfoWindow, кластеризацију и GroundOverlay
  • Цене — pay-as-you-go од $2.83 за 1000 учитавања са бесплатним лимитом од $200 месечно
  • API кључ је обавезан, везује се за пројекат у Google Cloud Console-у и ограничава се по платформи

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође