Custom map styles in mobile app

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Custom map styles in mobile app
Medium
from 1 business day to 3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementation of Custom Map Styles in a Mobile Application

A gray Google map with green parks — a recognizable default that immediately says "we didn't bother with design." Custom style integrates the map into the app's visual language, removes unnecessary POI, and highlights what matters to your user.

Tools for Creating Style

Google Maps: Google Maps Platform Styling Wizard generates JSON style config. More powerful variant — Snazzy Maps with ready-made style library. JSON describes each map layer: roads, buildings, water, labels, POI — with color, visibility, and weight settings.

Mapbox: Studio with visual editor and style export as URL mapbox://styles/.... Mapbox is more flexible for customization: you can add own layers with data on top of base map.

Apple Maps (MapKit): starting iOS 16 there's MKMapConfiguration with choice between .standard, .hybrid, and .imagery. No custom JSON style — only choice of scheme (light/dark via colorScheme) and shown POI via pointOfInterestFilter.

Applying JSON Style on iOS

let style = """
[{
  "featureType": "poi",
  "stylers": [{"visibility": "off"}]
},{
  "featureType": "transit",
  "stylers": [{"visibility": "off"}]
},{
  "featureType": "road",
  "elementType": "geometry",
  "stylers": [{"color": "#1a1a2e"}]
}]
"""

if let mapStyle = try? GMSMapStyle(jsonString: style) {
    mapView.mapStyle = mapStyle
}

Style JSON is better stored as .json file in Bundle, not string in code: GMSMapStyle(contentsOfFileURL: Bundle.main.url(forResource: "map_style", withExtension: "json")!). On parse error, GMSMapStyle throws exception — always wrap in try? and provide fallback to standard style.

Android

val success = map.setMapStyle(
    MapStyleOptions.loadRawResourceStyle(context, R.raw.map_style)
)
if (!success) {
    Log.e("MapStyle", "Style parsing failed")
}

R.raw.map_style — file map_style.json in res/raw/. On parse failure, method returns false without exception — don't forget to check.

Dark Theme

To support dark theme, don't create two different styles — use parameters in JSON with variables, or switch between two pre-loaded GMSMapStyle / MapStyleOptions objects on UIUserInterfaceStyle / Configuration.uiMode change.

On iOS, subscribe to traitCollectionDidChange(_:) and switch style. On Android — AppCompatDelegate.getDefaultNightMode() on map initialization.

Mapbox as Alternative

If you need fully custom layers — own data on top of base map, animated route lines, 3D buildings with custom textures — Mapbox GL Native (iOS/Android) or mapbox_maps_flutter. Style described via Mapbox Style Specification, hosted in Mapbox Studio or self-hosted on own CDN.

Cost difference: Google Maps free up to 28,000 map loads per month, Mapbox — up to 50,000. At higher volumes, Mapbox is more economical.

Timeline: one to two days — create style, integrate into app, support light/dark theme.