Google Maps SDK — mobil va veb ilovalarga interaktiv xaritalar, geokodlash, marshrutlar va joylarni qidirishni integratsiya qilish uchun Google tomonidan taqdim etilgan vositalar to'plamidir. SDK Android va iOS uchun Maps SDK, geoma'lumotlar bilan ishlash uchun Places API va marshrutlarni qurish uchun Directions API ni o'z ichiga oladi. Google Maps xizmatlari kuniga 100 milliarddan ortiq so'rovlarni qayta ishlaydi, bu esa Maps SDK-ni eng samarali kartografik yechimlardan biriga aylantiradi. Google Maps Platform Documentation, 2025 ma'lumotlariga ko'ra, SDK xaritali barcha mobil ilovalarning 60 foizida qo'llaniladi.
Asosiy fikrlar
Google Maps SDK — dasturchilarga ilovalarda geografik ma'lumotlar bilan ishlash uchun vositalarni taqdim etuvchi keng qamrovli platformadir. Platforma bir nechta API-larni o'z ichiga oladi: Maps SDK (xaritalarni ko'rsatish), Routes API (marshrutlar), Places API (joylarni qidirish va geoma'lumotlar) va Geocoding API (manzillarni koordinatalarga aylantirish). Har bir SDK alohida integratsiya qilinadi va o'zining to'lov modeliga ega.
Apple MapKit-dan farqli o'laroq, Google Maps SDK kengroq ma'lumotlar to'plamini taklif etadi: 250 million joy haqida ma'lumot, real vaqtda trafik, Street View panoramalari va yopiq joylar uchun Indoor Maps. Statista (2025) ma'lumotlariga ko'ra, Google Maps Platform mobil ilovalarda kartografik SDK bozorining 75 foizini egallaydi. Asosiy afzallik — barcha Google Maps xizmatlari uchun yagona API kaliti va o'zaro platforma integratsiyasi (Android, iOS, veb).
API kaliti — Google Maps SDK bilan ishlash uchun majburiy elementdir. Kalit Google Cloud Console-da yaratiladi va muayyan loyihaga bog'lanadi. Android uchun qo'shimcha ravishda ilova sertifikatining SHA-1, iOS uchun Bundle Identifier ko'rsatilishi kerak. Google, ruxsatsiz kirishning oldini olish uchun API kalitidan foydalanishni IP manzillar, HTTP refererlar yoki ilova paketlari bo'yicha cheklashni tavsiya qiladi.
Android uchun Maps SDK — Android ilovasi ichida MapView yoki SupportMapFragment orqali interaktiv Google xaritalarini ko'rsatadigan kutubxonadir. SDK qo'llab-quvvatlaydi: shaxsiy xarita uslublari, axborot oynalari bilan markerlar, ko'pburchaklar va polichiziqlar, trafik va transport qatlamlari, shuningdek sensorli hodisalar va imo-ishoralar (zoom, aylantirish, egish). Xaritalar renderlash uchun OpenGL-dan foydalanadi, zamonaviy qurilmalarda 60 FPS ni ta'minlaydi.
Integratsiya build.gradle-ga bog'liqlikni qo'shish va AndroidManifest.xml orqali API kalitini sozlash bilan boshlanadi. Google Maps SDK Android uchun qurilmada Google Play Services talab qiladi. Agar Google Play Services mavjud bo'lmasa (masalan, Google xizmatlari bo'lmagan Huawei qurilmalarida), xaritalar ko'rsatilmaydi. Bunday hollarda Google muqobil yechimlar yoki JavaScript Maps API bilan WebView dan foydalanishni tavsiya qiladi.
// AndroidManifest.xml — API kaliti metama'lumotlari
// <meta-data android:name="com.google.android.geo.API_KEY"
// android:value="YOUR_API_KEY"/>
// Activity-dagi xarita fragmenti
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-da Indoor Maps — binolarning rejalarini ko'rsatishni (aeroportlar, savdo markazlari) qo'llab-quvvatlaydi. Faollashtirish uchun map.isIndoorEnabled = true ni o'rnatish kifoya. Trafik qatlami (Traffic Layer) real vaqtda yo'llarning bandligini ko'rsatadi — ma'lumotlar har 2-5 daqiqada yangilanadi. Transport qatlami (Transit Layer) qo'llab-quvvatlanadigan shaharlarda jamoat transporti marshrutlarini ko'rsatadi.
iOS uchun Maps SDK Android versiyasi bilan bir xil imkoniyatlarni taqdim etadi, ammo Apple platformasiga moslashtirilgan. Integratsiya Swift Package Manager yoki CocoaPods orqali amalga oshiriladi. iOS uchun Maps SDK xaritalarni renderlash uchun Google serverlaridan foydalanadi, lekin mahalliy navigatsiya uchun Apple MapKit bilan birgalikda ishlashi mumkin. SDK iOS 15 va undan yuqori versiyalarni, shuningdek UIViewRepresentable orqali SwiftUI-ni qo'llab-quvvatlaydi.
iOS versiyasining o'ziga xosligi — API kalitini ko'rsatish va Google Maps uchun URL sxemasini qo'shish bilan Info.plist-ni majburiy sozlashdir. Android-dan farqli o'laroq, iOS SDK Google Play Services talab qilmaydi, lekin ba'zi funksiyalar uchun (masalan, navigatsiyada xaritalarni ochish) Google Maps ilovasini o'rnatishni talab qiladi. O'zaro platforma loyihalari uchun Google har ikkala platforma uchun faollashtirilgan yagona API kalitini tavsiya qiladi.
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-da Google Maps SDK Google Maps Styling formatidagi JSON fayl orqali shaxsiy uslublarni qo'llab-quvvatlaydi. Uslublar ilova dizayniga mos ravishda yo'llar, suv, parklar va binolarning ranglarini o'zgartirish imkonini beradi. Shuningdek, ma'lumotlar zichligini vizualizatsiya qilish uchun Heatmap Layer, tashqi manbalardan geografik ma'lumotlarni import qilish uchun KML va GeoJSON qo'llab-quvvatlanadi.
Places API — geografik joylar haqida ma'lumot olish uchun Google Maps Platform xizmati: manzillar, koordinatalar, reyting, ish vaqti, fotosuratlar va sharhlar. Places API ikki rejimda ishlaydi: Place Search (matn yoki radius bo'yicha joylarni qidirish) va Place Details (Place ID bo'yicha muayyan joy haqida batafsil ma'lumot olish). SDK Android, iOS va REST API shaklida mavjud.
Android va iOS uchun Places SDK ilova matn maydonlariga to'g'ridan-to'g'ri manzil avtoto'ldirishni (Place Autocomplete) o'rnatish imkonini beradi. Bu yetkazib berish, taksi va logistika ilovalari uchun asosiy funksiyadir — foydalanuvchi manzilni yozishni boshlaydi, SDK esa Google Maps bazasidan variantlarni taklif qiladi. Place Autocomplete qo'lda kiritish bilan solishtirganda manzil kiritish xatolarini 80 foizga kamaytiradi. Places API narxlari: Place Details uchun $2.83 har 1000 so'rovga, Place Search — $4.71 har 1000 ga.
// Android-da matn bo'yicha joy qidirish
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 — teskari geokodlash (koordinatalar → manzil) va to'g'ridan-to'g'ri (manzil → koordinatalar). Foydalanuvchi kiritgan manzilni xaritada ko'rsatish uchun koordinatalarga aylantirish uchun ishlatiladi. Geocoding API alohida tariflanadi: $4.71 har 1000 so'rovga. Google sinov uchun hisobga kuniga 200 ta bepul so'rovni taqdim etadi.
Directions API — transport turini hisobga olgan holda (avtomobil, piyoda, velosiped, jamoat transporti) ikki yoki undan ortiq nuqtalar o'rtasida marshrutlarni hisoblash xizmatidir. API masofa, sayohat vaqti, bosqichma-bosqich ko'rsatmalar va marshrutni xaritada chizish uchun polichiziq bilan bir nechta muqobil marshrutlarni qaytaradi. Directions API REST API va mijoz SDK-lari orqali mavjud.
Kengaytirilgan funksionallik — Routes API (Google tomonidan 2024 yildan tavsiya etilgan yangi API). Routes API real vaqtdagi trafik, ekologik iz (eco-friendly routing) va kelish vaqtining bashoratli tahlilini hisobga olgan holda yaxshilangan marshrutlashtirishni taklif etadi. Google ma'lumotlariga ko'ra, Routes API klassik Directions API bilan solishtirganda shahar sharoitida sayohat vaqtini 20 foiz aniqroq hisoblaydi. Routes API tarifi: $5.00 har 1000 so'rovga.
// Routes API orqali marshrut so'rovi
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 bitta marshrut uchun 25 tagacha oraliq nuqtalarni (waypoints) qo'llab-quvvatlaydi. Oraliq nuqtalar koordinatalar yoki Place ID sifatida belgilanishi mumkin. Nuqtalar tartibini optimallashtirish uchun (sayohat qiluvchi sotuvchi muammosi) optimize:true parametridan foydalaning. Tariflar: Directions API — $4.71 har 1000 so'rovga (10 nuqtagacha), har bir qo'shimcha nuqta so'rov narxiga 50 foiz qo'shadi.
Google Maps SDK keng sozlash imkoniyatlarini taqdim etadi: JSON uslublari orqali xarita rang sxemasini o'zgartirish, shaxsiy markerlarni (shu jumladan animatsiyali) qo'shish, ixtiyoriy tarkibli axborot oynalari (InfoWindow) va grafik qatlamlarni (GroundOverlay, Circle, Polygon) qo'shish. Sozlash xaritani ilova brendiga moslashtirish va foydalanuvchi tajribasini yaxshilash imkonini beradi.
Xarita uslublari Google Maps Styling Wizard yoki Map Style formatidagi JSON fayl orqali amalga oshiriladi. Yo'llar (featureType: road), suv (water), parklar (poi.park), binolar (building) va boshqa elementlarning ranglarini o'zgartirish mumkin. Ilovaning qorong'i mavzusi uchun xaritalarda qorong'i fon va xira ranglar bilan tungi uslubdan foydalaning. Google Maps bitta JSON faylida 100 tagacha uslub qoidasini qo'llab-quvvatlaydi.
| Sozlash elementi | Metod/Sinf | Tavsif |
|---|---|---|
| Markerlar | MarkerOptions.icon(BitmapDescriptor) | Resurslar yoki URL dan shaxsiy marker belgisi |
| Polichiziqlar | PolylineOptions.color(width) | Shaxsiy rang bilan marshrutlarni ko'rsatish uchun chiziqlar |
| Ko'pburchaklar | PolygonOptions.fillColor(strokeColor) | Shaffoflik va kontur bilan maydonni to'ldirish |
| InfoWindow | GoogleMap.setInfoWindowAdapter | Axborot oynasining shaxsiy tarkibi (istalgan View) |
| GroundOverlay | GroundOverlayOptions.image(BitmapDescriptor) | Xarita maydoniga joylashtirilgan rasm |
Clustering — xaritada ko'p sonli nuqtalar bo'lganda markerlarni klasterlarga birlashtirish. Android va iOS uchun Google Maps SDK ichki klasterlash vositasini (com.google.maps.android:android-maps-utils) o'z ichiga oladi. Clustering ma'lum darajadan past zoom-larda xaritaning markerlar bilan to'lib ketishining oldini oladi. Zoom paytida klaster avtomatik ravishda alohida markerlarga bo'linadi. Google ma'lumotlariga ko'ra, klasterlash 1000+ marker bo'lganda xarita samaradorligini 40 foizga yaxshilaydi.
Shaxsiy marker, marshrut polichizig'i va axborot oynasi bilan xaritani ko'rsatishning to'liq namunasi. Ilova Moskva xaritasini qiziqish nuqtasi va shahar markazidan unga boradigan marshrut bilan ko'rsatadi. Kod Google Maps SDK-ning asosiy imkoniyatlarini namoyish etadi: marker qo'shish, polichiziq chizish, kamerani harakatlantirish va bosishlarni qayta ishlash.
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()
}
}
}Samaradorlik bo'yicha tavsiyalar: 200 dan ortiq nuqta bo'lganda ClusterManager orqali markerlarning asinxron yuklanishidan foydalaning, ko'rinadigan polichiziqlar sonini cheklang (Google bir vaqtning o'zida 100 dan ortiq bo'lmasligini tavsiya qiladi), to'liq funksionallik talab qilinmaydigan xaritalar uchun Lite Mode dan foydalaning (zoom o'zgartirmasdan siljitish). Lite Mode xotira iste'molini 50 foizga kamaytiradi va xarita yuklanishini 2 marta tezlashtiradi.
Google Maps Platform oylik $200 bepul kredit limiti bilan Pay-as-you-go to'lov modelidan foydalanadi. Har bir API alohida tariflanadi: Maps SDK — $2.83 har 1000 xarita yuklanishiga, Places API — $4.71 har 1000 so'rovga, Directions API — $4.71 har 1000 marshrutga. Routes API (tavsiya etilgan) — $5.00 har 1000 so'rovga. Bepul limit $200 odatda oyiga 70 000 gacha xarita yuklanishini qoplaydi.
Yuqori yuklamali loyihalar uchun Google oyiga 500 000 so'rovdan boshlab hajmlarda chegirmalarni taklif etadi. Google Maps SDK o'zaro ta'sirsiz asosiy xaritani ko'rsatish uchun tariflanmaydi — to'lov faqat yuklash (map load) uchun olinadi. Foydalanuvchi xarita bilan ekranni har ochganda bu bitta yuklash hisoblanadi. Optimallashtirish: xarita kafellarini keshlash qayta ochishda yuklashlar sonini kamaytiradi.
Cheklovlar: Places API uchun daqiqada 300 so'rov (Cloud Console-da kvota orqali 3000 gacha oshirish mumkin). Directions API uchun — daqiqada 100 so'rov. Cheklovdan oshib ketish OVER_QUERY_LIMIT xatosini qaytaradi. Google takroriy so'rovlar uchun eksponensial kechikish (exponential backoff) dan foydalanishni tavsiya qiladi. Foydalanish monitoringi Google Cloud Console-da 5 daqiqagacha kechikish bilan mavjud.
Ko'p beriladigan savollar
Google Maps SDK pay-as-you-go modeli bo'yicha tariflanadi: $2.83 har 1000 xarita yuklanishiga. Har oy Google 70 000 yuklanishni qoplaydigan $200 bepul kredit taqdim etadi. Places API va Directions API alohida tariflanadi. 10 000 foydalanuvchigacha auditoriyaga ega kichik loyihalar uchun xarajatlar odatda oyiga $10-50 ni tashkil qiladi.
Ha, Google Maps SDK kafellarni keshlash orqali oflayn xaritalarni qo'llab-quvvatlaydi. SDK avtomatik ravishda 1000 tagacha kafellarni (taxminan 10x10 km maydon) keshlaydi. To'liq oflayn qo'llab-quvvatlash uchun Android uchun Google Maps Offline API-dan foydalaning, bu butun hudud xaritasini yuklab olish imkonini beradi. Oflayn xaritalar trafik, marshrutlar va Places API ni qo'llab-quvvatlamaydi.
Google Maps SDK kengroq ma'lumotlar to'plamini taklif etadi: 250 million joy, real vaqtda trafik, Street View, Indoor Maps. Apple MapKit bepul, ammo AQSh va Yevropadan tashqarida kamroq ma'lumotlarga ega. Google SDK API kaliti va to'lov talab qiladi, Apple MapKit esa yo'q. O'zaro platforma loyihalari uchun Google Maps SDK har ikkala platformada yagona API kaliti bilan afzal.
API kaliti Google Cloud Console-da APIs & Services → Credentials bo'limida yaratiladi. Faollashtirish uchun kalitni to'lov hisobiga ulash kerak, ammo Google oylik $200 bepul kredit taqdim etadi. Kalit IP, HTTP referer yoki Android paketi / iOS Bundle ID bo'yicha cheklanishi mumkin. Sinov uchun bank karta ma'lumotlarini kiritish talab qilinmaydi.
Ha, Google Maps SDK android-maps-utils (Android) va Google-Maps-iOS-Utils (iOS) kutubxonasi orqali klasterlashni qo'llab-quvvatlaydi. ClusterManager avtomatik ravishda yaqin markerlarni raqamli ko'rsatkich bilan klasterga birlashtiradi. Zoom paytida klaster alohida markerlarga bo'linadi. Xarita samaradorligini saqlash uchun 200+ marker bo'lganda klasterlash majburiydir.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.