# Mappedin SDK for iOS & Android v6.10.0

**URL:** <https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-10-0/607>\
**Category:** News & Announcements\
**Created:** [September 30, 2026, 8:04pm UTC](https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-10-0/607 "2026-09-30T20:04:38Z")\
**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:** [September 30, 2026, 8:04pm UTC](https://community.mappedin.com/t/mappedin-sdk-for-ios-android-v6-10-0/607/1 "2026-09-30T20:04:38Z")

</div>

## **v6.10.0 - September 30, 2026**

### **Packages**

- `@mappedin/blue-dot`: 6.29.0-beta.0
- `@mappedin/dynamic-focus`: 6.29.0-beta.0
- `@mappedin/events`: 6.29.0-beta.0
- `@mappedin/icons`: 8.4.1
- `@mappedin/mappedin-js`: 6.29.0

### **Features**

- Added `MapView.auto`, which places `Label`s for the map and renders `Annotation`s as icon-only `Label`s. The returned `AutoElements.markers` list is empty. `MapView. __EXPERIMENTAL__ auto` remains and still creates `Marker`s for `Annotation`s. It is deprecated.

```kotlin
mapView.auto { result ->
    result.onSuccess { elements ->
        Log.d("MapView", "Created ${elements.labels.size} labels")
    }
}

```

- Added path rendering options on `AddPathOptions`, used by `Paths.add` and by `NavigationOptions.pathOptions`.

```kotlin
mapView.paths.add(
    directions.coordinates,
    AddPathOptions(
        geometry = AddPathOptions.Geometry.RIBBON,
        smoothing = AddPathOptions.Smoothing(tension = 0.15, cornerRadius = 0.5),
        border = AddPathOptions.Border(enabled = true, color = "darken"),
        endcapExtension = 0.5 to 0.5,
        billboarding = AddPathOptions.Billboarding.Threshold(80.0),
        dash = AddPathOptions.Dash(
            enabled = true,
            mode = AddPathOptions.Dash.Mode.WIDTH_SCALING,
            size = 1.2,
            gapSize = 0.6,
        ),
        xray = AddPathOptions.Xray(opacity = 0.25, tint = 0.3, dithering = 2.0),
    ),
)

```

- `geometry` is `AddPathOptions.Geometry.TUBE` (the default round path) or `AddPathOptions.Geometry.RIBBON` (a flat path). A dashed ribbon draws each dash as its own shape. A dashed tube paints the dash pattern on one continuous path.

- `dash` configures dashed paths. `dash.enabled` turns dashing on. `dashed` remains as the boolean switch. `dash.cornerRadius` ranges from `0` (sharp) to `1` (fully rounded) and defaults to `0`. It applies to ribbon geometry. A `dash` with only `enabled = true` uses width-scaled dashes (`size` `1.2`, `gapSize` `0.6`). `dash.mode` is `WIDTH_SCALING` (the default), `LENGTH_SCALING`, or `ABSOLUTE`.

- `smoothing` sets corner tension and `cornerRadius` in metres. It is separate from `GetDirectionsOptions.smoothing`, which simplifies the route.

- `xray` sets how the path looks when it passes behind geometry: `opacity`, `color`, `tint`, and `dithering`.

- `endcapExtension`, `billboarding`, and `border` apply to ribbon geometry. `endcapExtension` is a start and end pair in metres. A value above `0` extends the path and draws a rounded cap. `0` is a square end. The default is `0.5` to `0.5`. `billboarding` is `Off`, `On`, or a `Threshold` in degrees from `0` to `90` (default `80`).

- Added `method` and `includeDoorBufferNodes` to `GetDirectionsOptions.Smoothing.Configured`. `method` is `GREEDY_LOS` (the default), `RDP`, or `DP_OPTIMAL`. `includeDoorBufferNodes` keeps door-adjacent nodes during simplification. It defaults to `true` for `RDP` and `false` for `DP_OPTIMAL`, and `GREEDY_LOS` ignores it. Existing smoothing defaults are unchanged. `GetDirectionsOptions.Smoothing.WithRadius` is deprecated. It still sets `radius` and `enabled`, and cannot set `method` or `includeDoorBufferNodes`.

```kotlin
mapData.getDirections(
    start,
    end,
    GetDirectionsOptions(
        smoothing = GetDirectionsOptions.Smoothing.Configured(
            enabled = true,
            method = GetDirectionsOptions.Smoothing.Method.DP_OPTIMAL,
            includeDoorBufferNodes = true,
            radius = 0.4,
        ),
    ),
) { result ->
    result.onSuccess { directions ->
        directions?.let { mapView.navigation.draw(it) }
    }
}

```

- Added `showAllFloorsIncludedInNavigation` to `MultiFloorViewOptions`. When enabled, every floor a navigation `Path` traverses is rendered, including floors above the current floor on a descending route, so the `Path` and its vertical connection segments stay visible. The default is `false`.

```kotlin
mapView.show3dMap(
    Show3DMapOptions(
        multiFloorView = MultiFloorViewOptions(
            enabled = true,
            showAllFloorsIncludedInNavigation = true,
        ),
    ),
) { result ->
    result.onSuccess {
        Log.d("MapView", "Map shown")
    }
}

```

- Added `slopeEnabled`, `slopeBearing`, and `slopeFactor` to `GeometryUpdateState` and `GeometryState`. When `slopeEnabled` is `true`, the top face tilts into a flat ramp along a compass bearing while the floor stays flat. `slopeBearing` is in degrees (`0` is north, increasing clockwise). `slopeFactor` ranges from `-1` to `1`, where `0` is flat and `1` slopes down in the bearing direction.

```kotlin
mapView.updateState(
    space,
    GeometryUpdateState(
        height = 6.0,
        slopeEnabled = true,
        slopeBearing = 350.0,
        slopeFactor = 1.0,
    ),
)

```

- Added `opensMessage` and `closesMessage` to `OpeningHoursSpecification`. These strings replace the displayed open or close time for special hours, such as “Hours may vary”. They appear on the entries in `EnterpriseLocation.operationHours.raw` and `LocationProfile.openingHours.raw`, and follow the active language.

- Added `fuzzy` and `prefix` to `Search.query` and `Search.suggest`. On `query`, `enterpriseCategories`, `enterpriseLocations`, and `places` can each set their own values. On `suggest`, `enterpriseLocations` and `places` can set them. `fuzzy` of `0` disables typo tolerance. A value greater than `0` and less than `1` is a fraction of the term length. A value of `1` or greater is an edit count. The default is `0.2`. `prefix` controls as-you-type matching and defaults to `true`. Omitting either option keeps the existing behaviour.

```kotlin
mapData.search.query(
    "coffee",
    Search.QueryOptions(
        enterpriseLocations = Search.QueryOptions.EnterpriseLocationOptions(
            fuzzy = 0.0,
            prefix = false,
        ),
    ),
) { result ->
    result.onSuccess { searchResult ->
        Log.d("Search", "Found ${searchResult?.locations?.size ?: 0} locations")
    }
}

```

### **Performance**

- Improved `Label` memory use on maps with many labels, including icon-only labels.

### **Fixes**

- Fixed an issue where `MapData.checkForUpdates` failed for a hydrated map that uses the EU gateway.
- Fixed an issue where a two-finger pinch stopped working when the second finger landed on a layer above the map.
- Fixed an issue where borders failed to render on geometry that contains a hole, and were missing on smooth outlines.
- Fixed an issue where map data failed to load when a `Node` referenced a neighbor that was missing from the map.
- Fixed an issue where the end of a Blue Dot tethered navigation `Path` disappeared when the route looped back near the user.
- Fixed an issue where `Label`s with `maxLines` greater than 2 rendered only the first two lines.
