Skip to content

Zoom Levels

MapConductor uses zoom levels to control the scale and detail of the map display. The zoom level system approximately follows Google Maps conventions but may vary slightly between map providers due to their underlying implementation differences.

Zoom levels in MapConductor are represented as Double values, typically ranging from 0 to 21, where:

  • Higher numbers = More zoomed in (more detail, smaller area)
  • Lower numbers = More zoomed out (less detail, larger area)
  • Fractional values = Smooth interpolation between integer levels
// Examples of different zoom levels
val worldView = 2.0 // See continents
val countryView = 6.0 // See entire countries
val cityView = 10.0 // See cities
val streetView = 15.0 // See streets
val buildingView = 18.0 // See individual buildings
// World and continent level
val worldLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(0.0, 0.0),
zoom = 2.0 // Shows continents and oceans
)
val continentLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(39.8283, -98.5795), // USA center
zoom = 4.0 // Shows entire continent
)

Use Cases:

  • Global data visualization
  • Continental overview
  • Flight tracking applications
  • World weather maps
// Country and state level
val countryLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(39.8283, -98.5795),
zoom = 6.0 // Shows entire country
)
val stateLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(36.7783, -119.4179), // California center
zoom = 8.0 // Shows state or large region
)

Use Cases:

  • National statistics
  • State-level data
  • Regional weather
  • Transportation networks
// City and metropolitan area level
val metropolitanLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194), // San Francisco
zoom = 10.0 // Shows metropolitan area
)
val cityLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 12.0 // Shows city center and suburbs
)

Use Cases:

  • City planning
  • Public transportation
  • Delivery zones
  • District boundaries
// District and neighborhood level
val districtLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 13.0 // Shows districts
)
val neighborhoodLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 15.0 // Shows neighborhoods and major streets
)

Use Cases:

  • Local business directories
  • School districts
  • Neighborhood services
  • Real estate search
// Street and block level
val streetLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 16.0 // Shows street layout
)
val detailedStreetLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 18.0 // Shows individual streets and small buildings
)

Use Cases:

  • Navigation applications
  • Address lookup
  • Street-level services
  • Walking directions
// Building and detail level
val buildingLevel = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 19.0 // Shows individual buildings
)
val maximumDetail = MapCameraPosition(
position = GeoPoint.fromLatLong(37.7749, -122.4194),
zoom = 21.0 // Maximum zoom level
)

Use Cases:

  • Building inspection
  • Asset management
  • Indoor mapping
  • Detailed surveying

While MapConductor normalizes zoom levels across providers, there can be subtle differences: