Release Notes
System Requirements
Mappedin JS is designed to work on a variety of devices, such as desktop & laptop computers, kiosks, smartphones and tablets. Hardware requirements such as CPU and memory will vary depending the size of the map and the display's size and resolution. A minimum of 2 GB available memory is recommended. The following requirements must also be met.
Graphics Hardware Requirements
- WebGL 2.0 Support
Supported Desktop Browsers
- Chrome 51+
- Safari 10+
- Edge 125+
- Firefox 115+
- Opera 190+
Supported Mobile Browsers
- Chrome 127+
- Safari 14.0+
- Samsung Internet 25+
- Firefox for Android 127+
- Opera Mobile 80+
v6.0.0-rc.0
August 7, 2025
This is the first release candidate for Mappedin JS v6. This version introduces significant breaking changes as the SDK transitions from beta to release candidate status.
⚠️ Breaking Changes
show3dMap
- The
TShow3dMapOptions
keymultiFloorView.floorHeight
has been renamed tomultiFloorView.floorGap
.
// ❌ Before
const mapView = await show3dMap(el, mapData, {
multiFloorView: {
floorHeight: 10,
},
});
// ✅ After
const mapView = await show3dMap(el, mapData, {
multiFloorView: {
floorGap: 10,
},
});
- Multi-floor View is now enabled by default.
// ❌ Before
const mapView = await show3dMap(el, mapData, {
multiFloorView: {
enabled: true,
},
});
// ✅ After
const mapView = await show3dMap(el, mapData);
- 2D occlusion is now enabled by default and the option has been removed from
show3dMap()
.
// ❌ Before
const mapView = await show3dMap(el, mapData, {
occlusion: {
enabled: true,
},
});
// ✅ After
const mapView = await show3dMap(el, mapData);
Paths
getDirections()
is now asynchronous.
// ❌ Before
const directions = mapView.getDirections(...);
// ✅ After
const directions = await mapView.getDirections(...);
- Replaced
pathOptions.nearRadius
,pathOptions.farRadius
,pathOptions.nearZoom
, andpathOptions.farZoom
with a unifiedwidth
option.
// ❌ Before
mapView.Paths.add(path, { nearRadius: 0.5, farRadius: 1, nearZoom: 16, farZoom: 18 });
// ✅ After
mapView.Paths.add(path, { width: 1 });
Markers
- Marker
anchor
property renamed toplacement
.
// ❌ Before
mapView.Markers.add(
space,
`<div>${...}</div>`,
{
anchor: 'left',
},
);
// ✅ After
mapView.Markers.add(
space,
`<div>${...}</div>`,
{
placement: 'left',
},
);
- Marker
dynamicResize
option is now enabled by default.
// ❌ Before
const marker = mapView.Markers.add(space, `<div>${...}</div>`, {
dynamicResize: true,
});
// ✅ After
const marker = mapView.Markers.add(space, `<div>${...}</div>`);
Labels
- Label
appearance
options have been flattened and simplified.
// ❌ Before
mapView.Labels.add(target, 'label', {
appearance: {
text: {
foregroundColor: 'white',
backgroundColor: 'black',
},
marker: {
foregroundColor: {
active: 'white',
inactive: 'white',
},
backgroundColor: {
active: 'black',
inactive: 'black',
},
},
},
});
// ✅ After
mapView.Labels.add(target, 'label', {
appearance: {
color: 'white',
outlineColor: 'black',
},
});
Labels.all()
has been renamed toLabels.__EXPERIMENTAL__all()
to clearly indicate experimental status.
// ❌ Before
mapView.Labels.all();
// ✅ After
mapView.Labels.__EXPERIMENTAL__all();
auto()
methods have been renamed to__EXPERIMENTAL__auto()
.
// ❌ Before
mapView.auto();
// ✅ After
mapView.__EXPERIMENTAL__auto();
Events
- Click event keys are now all optional, with the exception of
coordinate
andpointerEvent
.
// ❌ Before
mapView.on('click', event => {
const { spaces, objects, floors } = event;
spaces.forEach(() => {});
objects.forEach(() => {});
floors.forEach(() => {});
// etc
});
// ✅ After
mapView.on('click', event => {
const { spaces, objects, floors } = event;
if (spaces) {
spaces.forEach(() => {});
}
if (objects) {
objects.forEach(() => {});
}
if (floors) {
floors.forEach(() => {});
}
// etc
});
- Hover event keys are now all optional, with the exception of
coordinate
.
// ❌ Before
mapView.on('hover', event => {
const { spaces, objects, floors } = event;
spaces.forEach(() => {});
objects.forEach(() => {});
floors.forEach(() => {});
// etc
});
// ✅ After
mapView.on('hover', event => {
const { spaces, objects, floors } = event;
if (spaces) {
spaces.forEach(() => {});
}
if (objects) {
objects.forEach(() => {});
}
if (floors) {
floors.forEach(() => {});
}
// etc
});
MapLibre Overlay
- The experimental
createMapLibreOverlay()
function has been removed and will be published under a separate@mappedin/maplibre-overlay
package.
// ❌ Before
import { createMapLibreOverlay } from '@mappedin/mappedin-js';
// ✅ After
import { createMapLibreOverlay } from '@mappedin/maplibre-overlay';
Visibility
- Setting
opacity: 0
no longer implicitly setsvisible: false
. Use thevisible
property explicitly to remove an element from the scene.
// ❌ Before
mapView.updateState(space, { opacity: 0 });
mapView.getState(space).visible; // false
// ✅ After
mapView.updateState(space, { opacity: 0 });
mapView.getState(space).visible; // true
mapView.updateState(space, { visible: false });
Camera
- Camera transform values are now rounded for stability and to reduce floating-point precision errors.
// ❌ Before
transform.center.latitude; // 43.52041666666667891234
transform.center.longitude; // -79.3827777777778123456
transform.zoomLevel; // 18.123456789012345
// ✅ After
transform.center.latitude; // 43.5204167 (7 decimals)
transform.center.longitude; // -79.3827778 (7 decimals)
transform.zoomLevel; // 18.12346 (5 decimals)
new CameraTransform(camera, { precision: -1 }); // Get raw values if needed
States
- Improved the types and input validation for
getState
andupdateState
. As a result, many of the types have changed.
// ❌ Before
import type {
TGetState,
TUpdateState,
TUpdateStates, // Removed
TDoorsState,
TFacadeState,
TFloorState,
TGeometryState,
TImageState,
TLabelState,
TMarkerState,
TModelState,
UpdateModelState, // Removed
TPathState,
TPathUpdateState,
TShapeState,
TShapeUpdateState,
Text3DState, // Removed
UpdatableText3DState, // Removed
TWallsState,
TWallsUpdateState,
} from '@mappedin/mappedin-js';
// ✅ After
import type {
TUpdateState,
TGetState,
TDoorsState,
TDoorsUpdateState, // Added
TFacadeState,
TFacadeUpdateState, // Added
TFloorState,
TFloorUpdateState, // Added
TGeometryState,
TGeometryUpdateState, // Added
TImageState,
TImageUpdateState, // Added
TLabelState,
TLabelUpdateState, // Added
TMarkerState,
TMarkerUpdateState, // Added
TModelState,
TModelUpdateState, // Replaces UpdateModelState
TPathState,
TPathUpdateState, // Added
TShapeState,
TShapeUpdateState, // Added
TText3DState, // Replaces Text3DState
TText3DUpdateState, // Replaces UpdatableText3DState
TWallsState,
TWallsUpdateState, // Added
} from '@mappedin/mappedin-js';
BlueDot
- The
BlueDot
API has been removed and is now published under a separate@mappedin/blue-dot
package.
// ❌ Before
import { show3dMap } from '@mappedin/mappedin-js';
const mapView = await show3dMap(...);
mapView.BlueDot.enable();
// ✅ After
import { show3dMap } from '@mappedin/mappedin-js';
import { BlueDot } from '@mappedin/blue-dot';
const mapView = await show3dMap(...);
new BlueDot(mapView).enable();
Features
- Added
navigationFlags
getter toNode
. - Added floor-independent BlueDot positioning.
- Upgraded MapLibre to v5.
Fixes
- Fixed
side
not working inupdateState()
. - Removed
tabindex
from canvas and attribution. - Fixed transparency fighting for overlapping Paths.
- Fixed Path animation delays.
- Fixed outlines persisting when polygon is
visible: false
. - Fixed loading MVF v3 for enterprise.
- Fixed shading only working on elevation 0.
- Fixed Mappedin attribution showing when
outdoorView
is disabled.
v6.0.1-beta.53
July 21, 2025
Features
- Adds
lineOfSight
as an option toMapData.Query.nearest()
to avoid returning results obstructed by walls. - Adds
disableWorkers
as an option toshow3dMap()
. It is highly recommended not to disable web workers unless absolutely necessary, such as an environment with strict CSP rules.
v6.0.1-beta.52
July 21, 2025
⚠️ Breaking Changes
Labels
- Label
iconSizeInterpolation
has been replaced withiconScale
.
// ❌ Before
mapView.Labels.add(space, 'label', {
appearance: {
marker: {
iconSizeInterpolation: {
maxZoomLevel: 18,
minZoomLevel: 17,
maxScale: 2,
minScale: 1,
}
}
}
});
// ✅ After
mapView.Labels.add(space, 'label', {
appearance: {
marker: {
iconScale: {
on: 'zoom-level',
input: [17, 18],
output: [1, 2],
easing: 'linear' // optional
}
}
}
});
MapData
MapView.getMapData()
now returns the MapData directly instead of an object containing a single key value pair.
// ❌ Before
mapView.getMapData(): {
[string]: MapData,
}
// ✅ After
mapView.getMapData(): MapData
Map Elements
- The
name
property across all map elements (Spaces, MapObjects, etc.) no longer falls back toexternalId
when empty. Previously, if a map element had no name, it would use theexternalId
as a fallback. Now, empty names remain empty strings.
// ❌ Before
space.externalId === 'id';
space.name === 'id';
mapObject.externalId === 'id';
mapObject.name === 'id';
// ✅ After
space.externalId === 'id';
space.name === '';
mapObject.externalId === 'id';
mapObject.name === '';
Features
- Improved performance and memory usage.
- Improved type inference in
MapData.Query.nearest()
. - Added Facade as an option to
MapView.animateState()
. - Added an
exclude
array property toMapData.Query.nearest()
. - Added
MapView.options
property to return the initialization options passed intoshow3dMap()
. - Added
subtitle
property to Floor. - Added
'unknown'
as a possible type withMapData.getById()
which will return the first map element found with that id. - Added option to disable token prefetching.
- Added support for updating Path altitude.
- Added
pitch
andbearing
toMapView.Camera.getFocusOnTransform()
.
Fixes
- Fixed Path color when animation is layered over a
visibleThroughGeometry
Path. - Fixed
center
property falling back to[0, 0]
if a center coordinate is not provided in the data. Center will now attempt to be calculated before falling back. - Fixed 2D occlusion on outdoor Floors fighting with basements and lower levels.
- Fixed behavior when setting a color to an invalid color string.
- Fixed BlueDot accuracy ring being interactive.
- Fixed Marker flickering.
- Fixed crash when updating the state of an invalid geometry.
- Fixed invalid map Objects being created.
- Fixed getDirections throwing when given an invalid start and end.
- Fixed BlueDot receiving position updates from far outside the bounds of the map.
- Fixed
insetPadding.type
being required. - Fixed
unsafe-eval
content security policy issues.
v6.0.1-beta.51
June 25, 2025
Features
- Added fallback language loading for
getMapData()
.
Fixes
- Fixed focusing on a LocationProfile.
- Fixed performance regression with outlines.
v6.0.1-beta.50
June 23, 2025
Features
- Added
MapView.tweenGroup
which returns the TweenJS Group for controlling animations created withMapView.tween()
andMapView.animateState()
. - Added the
interactive
state option for Shapes.
Fixes
- Fixed
initialFloor
not working in Multi-floor View. - Fixed Paths with
interactive: true
not being interactive.
v6.0.1-beta.49
June 19, 2025
Features
- Added
altitude
state to Space and MapObject. - Added
visible
andheight
state to Shape.
Fixes
- Fixed walls and MapObjects not loading in MVF v3.
- Fixed Floors with invisible geometry being detected in click events.
- Fixed EnterpriseLocation
instances
not being translated.
v6.0.1-beta.48
June 18, 2025
Features
- Added
center
property to Floor. - Included Roboto font in bundle for developers with strict CSP.
Fixes
- Fixed error running Mappedin JS in Node without access to
window
. - Fixed
animateState()
setting all state values every frame. - Fixed
getScreenCoordinateFromCoordinate()
not respecting floor altitude. - Fixed layers under geometry check running forever if nothing is found.
- Fixed
lowPriorityPin
showing foralways-visible
Markers. - Fixed vertical paths not facing the camera.
- Fixed some Labels overlapping on map load.
v6.0.1-beta.47
June 11, 2025
Features
- Added the option to toggle the visibility of the watermark.
- Added an option to make paths visible through geometry.
- Added icon size interpolation for labels.
- Added an option to override connection weight while getting directions.
- Added
MapView.preloadFloors()
to pre load specified floors before they come visible. - Added
hidden
property toEnterpriseLocation
.
Fixes
- Fixed
BlueDot
not being visible across all floors.
v6.0.1-beta.46
June 4, 2025
⚠️ Breaking Changes
- Restored the MVF v3 support which was temporarily removed in v6.0.1-beta.45.
v6.0.1-beta.45
June 3, 2025
⚠️ Breaking Changes
- Reverted the MVF v3 support added in v6.0.1-beta.44 due to an error when importing Mappedin JS in CodeSandbox.
v6.0.1-beta.44
June 3, 2025
⚠️ Breaking Changes
- The experimental feature
MapView.DynamicFocus
has been removed. Going forward, new versions of Dynamic Focus will be published under a separate package @mappedin/dynamic-focus.
// ❌ Before
import { show3dMap } from '@mappedin/mappedin-js';
const mapView = await show3dMap(...);
mapView.DynamicFocus.enable();
// ✅ After
import { show3dMap } from '@mappedin/mappedin-js';
import { DynamicFocus } from '@mappedin/dynamic-focus';
const mapView = await show3dMap(...);
const dynamicFocus = new DynamicFocus(mapView);
Features
- Added
setWorkerUrl()
andMapView.Text3D.disableWorker()
for handling strict CSP. - Added fields to
MapView.updateState(floor, {...})
for managing visibility of geometry, footprints, 2D elements, and occlusion. - Improved
MapView.auto()
to only label Spaces with names. - Added
lowPriorityPin
to Markers which shows a small circle when space is limited. - Added
MapView.animateState()
to transition between states. - Added options to fetch or hydrate an MVF v3.
Fixes
- Fixed a warning about SAS tokens which could be logged sporadically for enterprise maps.
- Fixed issues with the exported types for
getMapData()
and the React SDK. - Fixed clicks in multi-floor view returning the coordinates on the wrong floor.
v6.0.1-beta.43
May 21, 2025
Fixes
- Fixed
Labels.all()
failing to label maps with new data. - Fixed a regression with model interactivity.
- Fixed doors which have been disabled still being navigable.
- Fixed SAS token fetching for multi-building maps.
v6.0.1-beta.42
May 16, 2025
⚠️ Breaking Changes
- Facades now have their own state independent from the spaces that they're made of. Updating the opacity of a facade will no longer overwrite the opacity of its spaces.
// ❌ Before
mapView.updateState(facade, {
opacity: 0.5,
});
mapView.getState(facade).opacity; // 0.5
mapView.getState(facade.spaces[0]).opacity; // 0.5
// ✅ After
mapView.updateState(facade, {
opacity: 0.5,
});
mapView.getState(facade).opacity; // 0.5
mapView.getState(facade.spaces[0]).opacity; // unchanged
v6.0.1-beta.41
May 15, 2025
Features
- Added new properties to
TAddPathOptions
fornearZoomLevel
andfarZoomLevel
. - Added support for multi-floor view with enterprise maps.
- Added support for
Floor
inupdateState()
.
Fixes
- Fixed cases where Stacked Maps would zoom into the wrong map.
- Fixed a potential error when Markers did not have an anchor strategy selected.
- Fixed 2D occlusion for Markers and Labels placed outside a floor.
- Fixed missing CSS.
- Fixed missing types for
setScreenOffsets()
.
v6.0.1-beta.40
May 8, 2025
Features
- Added
resize
event which is published when the map container resizes. - Improved the behavior of focusing on a floor. The floor should now fit better within the camera frame.
- Added
icon
getter toLocationProfile
. - Improved Stacked Maps
auto
vertical distance calculation.
Fixes
- Fixed a regression in inactive Label marker size.
- Fixed the collider of the inactive Label being too large.
- Fixed
takeScreenshot()
sometimes firing before the map is ready. - Fixed floors getting stuck in a partially transparent state in Dynamic Focus.
- Fixed Dynamic Focus firing every time a render occurs.
- Fixed injected CSS not loading.
- Fixed geometry outlines not working when altitude is not 0.
- Fixed Labels and Markers being misaligned after map container is resized.
v6.0.1-beta.39
April 23, 2025
⚠️ Breaking Changes
- The path arrow animation has been slowed down from 1000ms to 3000ms.
// ❌ Before
mapView.Paths.add(directions.coordinates, {
displayArrowsOnPath: true,
animateArrowsOnPath: true, // duration 1000ms
});
// ✅ After
mapView.Paths.add(directions.coordinates, {
displayArrowsOnPath: true,
animateArrowsOnPath: true, // duration 3000ms
});
Features
- Added support for rendering enterprise polygons which have been split via edge offsets.
- Added enterprise Connection names.
- Improved Label stabilization.
- Improved Model position, rotation, and scale properties for more precise control.
- Improved
MapData.Query.nearest()
so that it only returns navigable nodes.
Fixes
- Fixed image flipping instability when viewed at exactly 90 or 270 degree rotation.
- Fixed cases where the previous path may not be cleared from navigation.
- Fixed cases where floors may overlap in Dynamic Focus.
- Fixed cases where the wrong name was returned from Hyperlinks.
- Fixed an issue where labels would not appear on floor change until an additional render occurred.
- Fixed an issue whereby Facades could disappear despite not being in focus.
- Fixed accessible connections in non-enterprise venues.
- Fixed Text3D drawing despite not having enough room.
v6.0.1-beta.38
April 15, 2025
⚠️ Breaking Changes
- React SDK versions are now published under the
latest
tag on NPM. It is recommended to remove thebeta
tag frompackage.json
and avoid using it in future installations.
// ❌ Before
{
"@mappedin/react-sdk": "beta",
}
// ✅ After
{
"@mappedin/react-sdk": "latest",
}
- The CSS styles for the SDK are now automatically loaded when
show3dMap()
is called. This can be disabled by passing the flaginjectStyles: false
.
// ❌ Before
import { show3dMap } from "@mappedin/mappedin-js";
import "@mappedin/mappedin-js/index.css";
const mapView = await show3dMap(...);
// ✅ After
import { show3dMap } from "@mappedin/mappedin-js";
const mapView = await show3dMap(...);
iconVisibilityThreshold
has been replaced withiconVisibleAtZoomLevel
in label appearance.
// ❌ Before
mapView.updateState(label, {
appearance: {
iconVisibilityThreshold: 0.5, // icon will be visible at half way between minZoomLevel and maxZoomLevel
},
});
// ✅ After
mapView.updateState(label, {
appearance: {
iconVisibleAtZoomLevel: 16, // icon will be visible at zoom level 16 and above
},
});
Features
- Added
getScreenCoordinateFromCoordinate()
to MapView. - Added touch screen controls including double tap to zoom and two finger tap to zoom out.
- Added
segments
property to the Path class which gives you a portion of the path on a floor. - Added
iconOverflow
option for label appearance. - Added
interactive
flag for the watermark. - Added
getAccessToken()
andgetSasToken()
functions to MapData. - Added
categories
property to EnterpriseLocation. - Added detached text areas loaded from enterprise data.
- Added
flipImagesToFaceCamera
toTShow3dMapOptions
. - Added
flipImageToFaceCamera
as an option for Spaces. - Added
verticalOffset
as an option tocreateCoordinate()
. - Added automatic loading of Mappedin CSS styles.
- Added
blueDot
boolean to'click'
event. - Added localization for the Floors and FloorStacks.
- Added
iconVisibleAtZoomLevel
to label appearance.
Fixes
- Fixed
getById('connection', id)
returning the wrong data. - Fixed a regression in label icon loading.
- Fixed a crash when map element width or height are 0.
- Fixed
getFocusOnTransform()
triggering a'camera-change'
event. - Fixed textures not being loaded from data.
- Fixed directions failing to identify a door in the instructions.
- Fixed
setFloor
de-syncing DynamicFocus. - Fixed parity between
'floor-change-start'
and'floor-change'
. - Fixed unnecessary warnings when
layoutId
is not set. - Fixed enterprise textures not blending with the polygon color.
- Fixed edge weights in enterprise navigation.
- Fixed outlines creating diagonal lines across some polygons.
- Fixed pan bounds not scaling based on map size.
- Fixed some paths rendering at the wrong elevation.
- Fixed textures being applied to all polygons with the same style.
- Fixed cases where label density would be really low.
- Fixed images and labels z-fighting when outlines are turned off.
- Fixed label icon size updates requiring an extra render to take affect.
- Fixed labels being too jumpy during pan actions.
- Fixed connection node neighbours being excluded on the current floor.
- Fixed a crash that could occur when accessing LocationProfile properties with an old MVF.
- Fixed issues loading inline SVGs in label icons.
- Fixed path not drawing in stacked maps.
- Fixed image meshes being visible before the image has fully loaded.
v6.0.1-beta.37
March 27, 2025
Features
- Added
space
getter toNode
. - Added
Camera.interactions.enable()
,Camera.interactions.disable()
, andCamera.interactions.set()
. - Added support for specifying enterprise map perspectives via the
viewId
. - Added
screenOffsets
toshow3dMap()
to set the initial camera padding. - Added support for nodes with
preventSmoothing
flag. - Added
shortName
getter toFloorStack
. - Added
dynamic-focus-change
event. - Added
extra
getter toConnection
. - Added
website
getter toLocationProfile
. - Added
setMapToDeparture
option toNavigation.draw()
- Added support for enterprise map textures.
- Improved rendering of enterprise maps.
Fixes
- Fixed how Stacked Maps
"auto"
distance between floors handlesincludedFloors
. - Fixed connections with less than 2 nodes appearing in navigation.
- Fixed floors disappearing in Stacked Maps after
Navigation.draw()
. - Fixed rendering defect of geometry
topColor
on some devices. - Fixed map data details should fallback to
LocationProfile
. - Fixed pan bounds breaking in Stacked Maps.
- Fixed
minZoom
calculation from pan bounds. - Fixed floor state modification during Stacked Maps.
- Fixed
screenOffsets
not being respected. - Fixed
focusOn()
when floor is shifted below altitude 0. - Fixed extra
FloorStack
s being rendered at the same time. - Fixed
connection
getter onLocationProfile
. - Fixed connections not relevant to the path being included.
v6.0.1-beta.36
March 18, 2025
Fixes
- Fixed cases where enterprise maps were not choosing the shortest route.
- Fixed cases where outdoor multi-polygon building footprints were not being hidden.
v6.0.1-beta.35
March 17, 2025
Fixes
- Fixed cases where directions included unnecessary instructions.
- Fixed rendering artifacts on some devices when color is applied to geometry.
v6.0.1-beta.34
March 13, 2025
Features
- Added
lowDpi
flag toTShow3dMapOptions
for improved performance on large displays. - Added
picture
property toEnterpriseCategory
. - Added types for
LocationProfile
andLocationCategory
.
Fixes
- Fixed floor footprints rendering at the wrong altitude in multi-floor view.
- Fixed cases of navigation choosing a longer route than expected.
v6.0.1-beta.33
March 7, 2025
Features
- Added
openingHours
getter to LocationProfile. - Added support for
Camera.focusOn()
andCamera.getFocusOnTransform()
when the geometry is not yet rendered. - Added
verticalOffset
to Coordinate. - Added
"auto"
as an option for StackedMapsdistanceBetweenFloors
. - Added
color
to Model state as a shorthand to update known materials. - Added
naturalBearing
getter to MapData and automatically oriented the map to this bearing. - Added
MapView.takeScreenshot()
to screenshot the 3D scene.
Fixes
- Fixed image flipping on certain initial bearings.
- Fixed
visible: false
not working for Models. - Fixed incorrect gaps between floors in multi-floor view.
- Fixed cases where OutdoorView was disabled because a token was not provided.
- Fixed
onMVFParsed
not firing inhydrate()
. - Fixed camera animations not being interruptible by default.
- Fixed issues preventing draft map images from being fetched.
- Fixed incorrect click Coordinate being returned in multi-floor view.
- Fixed the
minZoomLevel
calculation on load when map is in portrait orientation.
v6.0.1-beta.32
March 3, 2025
Features
- Added
shortName
property to Floor. - Added MapView events for
pre-render
andpost-render
. - Added
backgroundColor
andbackgroundAlpha
to global state. - Added getters to return the selected
departure
anddesination
from the Directions. - Added an option to
show3dMap()
to enable Label and Marker occlusion. - Added
location-profile
andlocation-category
map data.
Fixes
- Fixed some 3D models not being placed at their coordinate.
v6.0.1-beta.31
February 26, 2025
Features
- Added new options to
Models.add()
andupdateState()
formaterials
andverticalOffset
. - Added
Camera.getFocusOnTransform()
to directly return the necessary camera transform to focus on a target.
Fixes
- Fixed
topColor
throwing a warning when set to'initial'
. - Fixed initial polygon and shape altitude being doubled.
v6.0.1-beta.30
February 24, 2025
Fixes
- Improved performance of multi-destination directions.
- Removed the default limit on search results.
v6.0.1-beta.29
February 19, 2025
⚠️ Breaking Changes
Camera.focusOn()
now accepts anIFocusable
, instead of a union of map elements. This should include the same elements as before.
// ❌ Before
mapView.Camera.focusOn(target); // target is Space | MapObject | Coordinate | etc...
// ✅ After
mapView.Camera.focusOn(target); // target is IFocusable
Features
- Added
mapData.getByExternalId()
to return a map element by its external ID. - Added
excludedConnections
as an option togetDirections()
.
Fixes
- Fixed marker rank not being respected.
v6.0.1-beta.28
February 11, 2025
Fixes
- Reverts the lighting change from v6.0.1-beta.27.
v6.0.1-beta.27
February 11, 2025
⚠️ Breaking Changes
- Updated the default hover color from
#ff0000
to#f6efff
.
// ❌ Before
mapView.getGlobalState().geometry.hoverColor; // #ff0000
// ✅ After
mapView.getGlobalState().geometry.hoverColor; // #f6efff
Features
- Increased light intensity to improve contrast and appearance of 3D models.
Fixes
- Fixed a potential crash when building footprints were MultiPolygon.
v6.0.1-beta.26
February 10, 2025
Features
- Added a
.geoJSON
property in select map data classes to access the underlying GeoJSON. - Added an
interruptible
boolean to the camera options. - Improved
updateState
andgetState
to align their properties. - Improved Labels to dynamically respond to height and visibility changes in the Space that they're attached to.
- Improved the hiding of building footprints under the map geometry.
v6.0.1-beta.25
February 4, 2025
Features
- Added support for setting opacity and height of walls with
updateState()
. - Added support for Facades in
updateState()
. - Added a new
Text3D
API to MapView for labelling enterprise Spaces.