# Mappedin SDK for iOS & Android v6.3.0

**URL:** <https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-3-0/559>\
**Category:** News & Announcements\
**Created:** [May 20, 2026, 8:25pm UTC](https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-3-0/559 "2026-05-20T20:25:09Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![msohm](https://yyz2.discourse-cdn.com/flex004/user_avatar/community.mappedin.com/msohm/32/6_2.png) [@msohm](https://community.mappedin.com/u/msohm)\
**Post date:** [May 20, 2026, 8:25pm UTC](https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-3-0/559/1 "2026-05-20T20:25:09Z")

</div>

## 6.3.0 - May 20, 2026

- Upgraded to Mappedin JS v6.19.0

### Features

- Added `visible` property to `BlueDotOptions`, `AccuracyRing`, and `Heading` to control the visibility of Blue Dot components independently
- Added `AutoZoomThresholds` enum (`.disabled`, `.enabled`, `.enabledWith(options:)`) to `DynamicFocusOptions` and `DynamicFocusState` for configuring `DynamicFocus` auto-zoom behavior

```auto
let options = DynamicFocusOptions(
    autoZoomThresholds: .enabledWith(options: .init(debug: true))
)

```

- Added `.floorStack(FloorStack)` case to the `FocusTarget` enum, with convenience `focusOn` and `getFocusOnTransform` overloads on `Camera` for focusing on a `FloorStack`

```auto
mapView.camera.focusOn(.floorStack(floorStack))

```

- Added `Events.cameraScreenOffsetsChange` event to listen for camera screen offset changes
- Added `.pixels(String)` case to `Width` for pixel-based width values (e.g. `"20px"`)
- Added `Navigation.trackCoordinate` method for path tethering and travelled-path tracking, with `TetheredOptions`, `TravelledOptions`, `TrackCoordinateOptions`, `TrackCoordinateResult`, `TrackingMode`, `CoordinateOutsideThresholdMode`, and `OutsideThresholdPathStyle` models

```auto
let handle = mapView.navigation.trackCoordinate(
    origin: startCoordinate,
    destinations: [destinationSpace],
    options: TrackCoordinateOptions(
        mode: .tethered,
        tethered: TetheredOptions(
            outsideThresholdMode: .smoothTransition,
            outsideThresholdDistance: 5.0
        )
    )
) { result in /* ... */ }

mapView.blueDot.on(.dotPositionUpdate) { payload in
    handle?.update(coordinate: payload.coordinate)
}

```

- Added `BlueDotEvents.dotPositionUpdate` event that emits smoothed `Coordinate` updates suitable for feeding into `Navigation.trackCoordinate`
- Added `includeNonPublic` property to `GetDirectionsOptions` to allow routing through non-public spaces and connections
- Added `interactive` property to `AddImageOptions` and `interactive`/`cursor` properties to `ImageState` and `ImageUpdateState`. `Image3DView` is now exposed in `ClickPayload` and `HoverPayload` `images` and `target`

### Deprecated

- `BlueDot.update()` has been deprecated in favor of `BlueDot.forcePosition()` or `BlueDot.reportPosition()`

```auto
// Before (deprecated)
mapView.blueDot.update(
    position: BlueDotPositionUpdate(
        latitude: .value(lat),
        longitude: .value(lng),
        floorId: .id(floorId)
    ),
    options: BlueDotUpdateOptions(animate: true)
) { _ in }

// After
mapView.blueDot.reportPosition(
    options: ManualPositionOptions(
        latitude: lat,
        longitude: lng,
        floorLevel: floorLevel,
        confidence: 1.0
    )
) { _ in }

```
