LazarilloMapConfig
class LazarilloMapConfig(var width: Int = 0, var height: Int = 0, var x: Int = 0, var y: Int = 0, var center: LatLng = LatLng(0.0, 0.0), var zoom: Double = 0.0, var liteMode: Boolean = false, var devicePixelRatio: Float = 1.0f, var parentPlaceId: String? = null, var hideFloorSelector: Boolean = true, var hideZoomIn: Boolean = true, var hideZoomOut: Boolean = true, var hideZoomToLocation: Boolean = true, var compassIcon: String? = null, var locationIcon: String? = null, var showCompass: Boolean = true, var locationIconWithBearing: String? = null, var defaultMarkerIcon: String? = null, var defaultRouteAnimationIcon: String? = null, var limitToRadius: Double? = null, var maxZoom: Double = 24.0, var minZoom: Double = 10.0, var pitch: Double = 0.0, var bearing: Double = 0.0, var trackingConfig: TrackingConfig = TrackingConfig(), var zoomInAccessibility: AccessibilityConfig? = null, var zoomOutAccessibility: AccessibilityConfig? = null, var userLocationAccessibility: AccessibilityConfig? = null, var floorSelectorAccessibility: AccessibilityConfig? = null, var compassAccessibility: AccessibilityConfig? = null, var hideSelectedPlaceLabel: Boolean = false)Configuration object for initializing a LazarilloMap instance.
Why this class exists: Maps require extensive configuration (camera position, UI controls, styling, accessibility, etc.). This class centralizes all configuration options, making map initialization clear and maintainable. It also supports JSON-based configuration for dynamic setups.
Key configuration areas:
- Camera: Initial position (center, zoom, pitch, bearing)
- UI Controls: Visibility of zoom buttons, floor selector, location button
- Styling: Custom icons, compass appearance, location markers
- Accessibility: Screen reader support, custom accessibility texts
- Behavior: Location tracking reactivation, zoom limits, radius restrictions
Place-based configuration: When parentPlaceId is provided, the map automatically:
- Centers on the place’s location
- Loads place-specific map styling
- Configures floor selector with place’s floors
- Sets up indoor/outdoor context
Accessibility support: The SDK provides comprehensive accessibility support. You can configure accessibility texts either via AccessibilityConfig objects (takes precedence) or by overriding string resources in your app’s strings.xml.
Constructors
LazarilloMapConfig | constructor(fromJSONObject: JSONObject ) Built config from a json object constructor(width: Int = 0, height: Int = 0, x: Int = 0, y: Int = 0, center: LatLng = LatLng(0.0, 0.0), zoom: Double = 0.0, liteMode: Boolean = false, devicePixelRatio: Float = 1.0f, parentPlaceId: String ? = null, hideFloorSelector: Boolean = true, hideZoomIn: Boolean = true, hideZoomOut: Boolean = true, hideZoomToLocation: Boolean = true, compassIcon: String ? = null, locationIcon: String ? = null, showCompass: Boolean = true, locationIconWithBearing: String ? = null, defaultMarkerIcon: String ? = null, defaultRouteAnimationIcon: String ? = null, limitToRadius: Double ? = null, maxZoom: Double = 24.0, minZoom: Double = 10.0, pitch: Double = 0.0, bearing: Double = 0.0, trackingConfig: TrackingConfig = TrackingConfig(), zoomInAccessibility: AccessibilityConfig? = null, zoomOutAccessibility: AccessibilityConfig? = null, userLocationAccessibility: AccessibilityConfig? = null, floorSelectorAccessibility: AccessibilityConfig? = null, compassAccessibility: AccessibilityConfig? = null, hideSelectedPlaceLabel: Boolean = false) |
Properties
bearing
var bearing: DoubleInitial map bearing (rotation) in degrees. 0.0 = north up.
center
var center: LatLngTypes: LatLng
Initial map center coordinates. Default: (0.0, 0.0). Overridden if parentPlaceId is set.
compassAccessibility
var compassAccessibility: AccessibilityConfig?Types: AccessibilityConfig
Accessibility configuration for compass. Overrides string resources.
Accessibility: Configure accessibility via AccessibilityConfig objects or string resources. Config objects take precedence. String resource names:
- lz_map_zoom_in: Zoom in button description - lz_map_zoom_out: Zoom out button description - lz_map_current_location: Current location button description - lz_map_floor_selector: Floor selector description
compassIcon
var compassIcon: String?URL or resource name for compass icon. Image should point north at top. If invalid URL, default icon is used.
defaultMarkerIcon
var defaultMarkerIcon: String?Default marker icon used as fallback by marker APIs when no icon is explicitly provided. Must be a preloaded style image id.
defaultRouteAnimationIcon
var defaultRouteAnimationIcon: String?Default icon used by route step preview/animation marker. Must be a preloaded style image id.
devicePixelRatio
var devicePixelRatio: FloatDevice pixel ratio for rendering. Default: 1.00.
floorSelectorAccessibility
var floorSelectorAccessibility: AccessibilityConfig?Types: AccessibilityConfig
Accessibility configuration for floor selector. Overrides string resources.
height
var height: IntMap height in pixels. If 0, uses parent view height.
hideFloorSelector
var hideFloorSelector: BooleanIf true, hides the floor selector spinner. Default: true.
hideSelectedPlaceLabel
var hideSelectedPlaceLabel: BooleanhideZoomIn
var hideZoomIn: BooleanIf true, hides the zoom in button. Default: true.
hideZoomOut
var hideZoomOut: BooleanIf true, hides the zoom out button. Default: true.
hideZoomToLocation
var hideZoomToLocation: BooleanIf true, hides the “go to my location” button. Default: true.
limitToRadius
var limitToRadius: Double?Optional radius limit in meters. Restricts map panning to this radius from center. Useful for venue-specific apps. Null = no limit.
liteMode
var liteMode: BooleanIf true, enables lite mode with limited interactions (static maps).
locationIcon
var locationIcon: String?Icon for user position when device has no compass sensor. Can be: - Resource name from drawable folder - URL (supports SVG via Coil) - Preloaded icon name (see MapConstants.defaultMarkerIcons)
locationIconWithBearing
var locationIconWithBearing: String?Icon for user position when device has compass sensor. Supports bearing rotation. Same format options as locationIcon.
maxZoom
var maxZoom: DoubleMaximum allowed zoom level. Default: 24.0.
minZoom
var minZoom: DoubleMinimum allowed zoom level. Default: 10.0.
parentPlaceId
var parentPlaceId: String?Place ID to center map on. If set, overrides center and loads place styling.
pitch
var pitch: DoubleInitial map pitch (tilt) in degrees. 0.0 = top-down, 60.0 = steep angle.
showCompass
var showCompass: BooleanIf true, shows compass indicator. Default: true.
trackingConfig
var trackingConfig: TrackingConfigTypes: TrackingConfig
Configuration for automatic location tracking reactivation after zoom changes. See TrackingConfig for details. Default: disabled (maintains current behavior).
userLocationAccessibility
var userLocationAccessibility: AccessibilityConfig?Types: AccessibilityConfig
Accessibility configuration for location button. Overrides string resources.
width
var width: IntMap width in pixels. If 0, uses parent view width.
x
var x: IntX position offset in pixels. If 0, uses parent view X position.
y
var y: IntY position offset in pixels. If 0, uses parent view Y position.
zoom
var zoom: DoubleInitial zoom level (0-22). Default: 0. Higher values = more zoomed in.
zoomInAccessibility
var zoomInAccessibility: AccessibilityConfig?Types: AccessibilityConfig
Accessibility configuration for zoom in button. Overrides string resources.
zoomOutAccessibility
var zoomOutAccessibility: AccessibilityConfig?Types: AccessibilityConfig
Accessibility configuration for zoom out button. Overrides string resources.