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 placesLabels for the map and rendersAnnotations as icon-onlyLabels. The returnedAutoElements.markerslist is empty.MapView.__EXPERIMENTAL__autoremains and still createsMarkers forAnnotations. It is deprecated.
mapView.auto { result ->
result.onSuccess { elements ->
Log.d("MapView", "Created ${elements.labels.size} labels")
}
}
- Added path rendering options on
AddPathOptions, used byPaths.addand byNavigationOptions.pathOptions.
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),
),
)
-
geometryisAddPathOptions.Geometry.TUBE(the default round path) orAddPathOptions.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. -
dashconfigures dashed paths.dash.enabledturns dashing on.dashedremains as the boolean switch.dash.cornerRadiusranges from0(sharp) to1(fully rounded) and defaults to0. It applies to ribbon geometry. Adashwith onlyenabled = trueuses width-scaled dashes (size1.2,gapSize0.6).dash.modeisWIDTH_SCALING(the default),LENGTH_SCALING, orABSOLUTE. -
smoothingsets corner tension andcornerRadiusin metres. It is separate fromGetDirectionsOptions.smoothing, which simplifies the route. -
xraysets how the path looks when it passes behind geometry:opacity,color,tint, anddithering. -
endcapExtension,billboarding, andborderapply to ribbon geometry.endcapExtensionis a start and end pair in metres. A value above0extends the path and draws a rounded cap.0is a square end. The default is0.5to0.5.billboardingisOff,On, or aThresholdin degrees from0to90(default80). -
Added
methodandincludeDoorBufferNodestoGetDirectionsOptions.Smoothing.Configured.methodisGREEDY_LOS(the default),RDP, orDP_OPTIMAL.includeDoorBufferNodeskeeps door-adjacent nodes during simplification. It defaults totrueforRDPandfalseforDP_OPTIMAL, andGREEDY_LOSignores it. Existing smoothing defaults are unchanged.GetDirectionsOptions.Smoothing.WithRadiusis deprecated. It still setsradiusandenabled, and cannot setmethodorincludeDoorBufferNodes.
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
showAllFloorsIncludedInNavigationtoMultiFloorViewOptions. When enabled, every floor a navigationPathtraverses is rendered, including floors above the current floor on a descending route, so thePathand its vertical connection segments stay visible. The default isfalse.
mapView.show3dMap(
Show3DMapOptions(
multiFloorView = MultiFloorViewOptions(
enabled = true,
showAllFloorsIncludedInNavigation = true,
),
),
) { result ->
result.onSuccess {
Log.d("MapView", "Map shown")
}
}
- Added
slopeEnabled,slopeBearing, andslopeFactortoGeometryUpdateStateandGeometryState. WhenslopeEnabledistrue, the top face tilts into a flat ramp along a compass bearing while the floor stays flat.slopeBearingis in degrees (0is north, increasing clockwise).slopeFactorranges from-1to1, where0is flat and1slopes down in the bearing direction.
mapView.updateState(
space,
GeometryUpdateState(
height = 6.0,
slopeEnabled = true,
slopeBearing = 350.0,
slopeFactor = 1.0,
),
)
-
Added
opensMessageandclosesMessagetoOpeningHoursSpecification. These strings replace the displayed open or close time for special hours, such as “Hours may vary”. They appear on the entries inEnterpriseLocation.operationHours.rawandLocationProfile.openingHours.raw, and follow the active language. -
Added
fuzzyandprefixtoSearch.queryandSearch.suggest. Onquery,enterpriseCategories,enterpriseLocations, andplacescan each set their own values. Onsuggest,enterpriseLocationsandplacescan set them.fuzzyof0disables typo tolerance. A value greater than0and less than1is a fraction of the term length. A value of1or greater is an edit count. The default is0.2.prefixcontrols as-you-type matching and defaults totrue. Omitting either option keeps the existing behaviour.
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
Labelmemory use on maps with many labels, including icon-only labels.
Fixes
- Fixed an issue where
MapData.checkForUpdatesfailed 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
Nodereferenced a neighbor that was missing from the map. - Fixed an issue where the end of a Blue Dot tethered navigation
Pathdisappeared when the route looped back near the user. - Fixed an issue where
Labels withmaxLinesgreater than 2 rendered only the first two lines.