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.4.0
November 14, 2025
Features
- Added option to disable individual 2D occluders.
- Added support for
Query.nearest()for enterprise locations. - Added option to control x-ray path opacity.
Fixes
- Fixed outdoor opacity not being respected in multi-floor view.
- Fixed initial camera position during map load to fit current floor correctly.
- Fixed duplicate suggestions in
Query.suggest(). - Fixed many classes and types missing from the documentation.
- Improved the appearance of footprints in multi-floor view.
- Improved outdoor layer hiding.
v6.3.1
November 6, 2025
Fixes
- Fixed an issue causing some interactions to be misaligned.
v6.3.0
November 5, 2025
Features
- Added support for detecting multiple 2D elements layered on top of each other in a click interaction.
Fixes
- Fixed the clipping plane on scaled
Models. - Fixed the outline on bevelled edges not supporting altitude changes.
- Fixed issue when changing the type of
Labelappearance values. - Fixed an issue where navigating from a point within a
Spaceto the sameSpacewould direct to the nearest entrance. - Fixed
Labelpins not recalculating on state changes.
Performance Improvements
- Improved performance of
Labels andMapView.updateState().
v6.2.0
October 27, 2025
Features
mapView.__EXPERIMENTAL__auto(mapData.getByType('annotation'));now includes annotation images.
Fixes
- Fixed an issue where getDirections fails to return directions for valid start and end points.
v6.1.2
October 23, 2025
Fixes
- Fixed an issue blocking directions from being created on some maps.
v6.1.1
October 21, 2025
Fixes
- Fixed an issue which caused zod not to be included in the dependencies.
v6.1.0
October 21, 2025
⚠️ Breaking Changes
- All remaining BlueDot types and functions have been migrated to the
@mappedin/blue-dotpackage.
// ❌ Before
import {
GeolocationPositionExtended,
TBlueDotPositionUpdateWithFloor,
TBlueDotPositionProcessor,
TBlueDotState
TBlueDotOptions,
TBlueDotPositionUpdate,
TBlueDotUpdateOptions
} from "@mappedin/mappedin-js"
// ✅ After
import {
GeolocationPositionExtended,
BlueDotPositionUpdateWithFloor
BlueDotPositionProcessor,
BlueDotState
BlueDotOptions,
BlueDotPositionUpdate,
BlueDotUpdateOptions
} from "@mappedin/blue-dot"
Features
- Added path section highlighting using
MapView.Navigation.highlightPathSection(). - Added support for handling enterprise locations on map
Objects. - Added clipping planes API to 3D models.
- Added
autooption tofloorGapwhich will automatically use theFloor's maximum height. - Added support for
publicandladdernavigation flags. - Upgraded to zod v4 and marked as an external dependency.
Fixes
- Fixed issue where
visible: falseoption wasn't working onModelinitialization. - Fixed altitude not applying accurately on geometry initialization.
- Prevented outdoor nodes from being smoothed in MVFv3 format.
- Fixed creation of
Floors with no geometry. - Added map
Objects to the search index for improved search functionality. - Improved speed of
MapData.Query.nearest()search operations. - Fixed path smoothing to respect
Objectobstructions in MVFv3. - Fixed
Modelstate position handling to avoid instanceof issues. - Fixed missing watermark positions.
Performance Improvements
- Optimized Zod partial schema creation in
MapView.updateState()for faster state management. - Improved speed of
MapView.getDirections(). - Improved speed of initial map render.
v6.0.0
September 29, 2025
This is the first official release of Mappedin JS v6 and React SDK v6. This version introduces the last breaking changes for both SDKs as the API becomes stable.
⚠️ Breaking Changes
MapView.getState()andMapView.updateState()no longer accept astringid. Instead, always pass the instance of the map element.
// ❌ Before
const space = mapView.getByType('space')[0];
const state = mapView.getState(space.id); // No longer supported
mapView.updateState(space.id, { opacity: 0.5 }); // No longer supported
// ✅ After
const space = mapView.getByType('space')[0];
const state = mapView.getState(space);
mapView.updateState(space, { opacity: 0.5 });
Features
- Added
opacityproperty toLabelAppearance. - Added
areasto themapView.on('click')event.
Fixes
- Fixed an issue with
Areas rendering on all floors in multi-floor view. - Fixed a regression causing
rank: 'always-visible'Labels andMarkers to still fall back to the pin appearance.
v6.0.0-rc.5
September 24, 2025
Features
- Added option to include outdoor map in
mapView.takeScreenshot().
Fixes
- Fixed vertical paths rotating incorrectly.
- Fixed
Labels.add()not respecting theenabledoption. - Fixed
Markers.add()not respecting theenabledoption.
Fixes
- Fixed
MapView.__EXPERIMENTAL__auto()not labellingFacades. - Fixed
Spaces not being created forFacades in MVFv3. - Fixed exported types resolving as
any. - Fixed z-fighting with overlapping
Paths in multi-destination routes. - [React] Fixed
@mappedin/mappedin-jspeer dependency.
v6.0.0-rc.4
_ September 23, 2025_
⚠️ Breaking Changes
- The
Labelappearance optioniconVisibleAtZoomLevelhas been renamediconVisible. It now accepts a boolean as well as a zoom level.
// ❌ Before
mapView.Labels.add(space, space.name, {
appearance: {
iconVisibleAtZoomLevel: Infinity, // effectively invisible
},
});
// ✅ After
mapView.Labels.add(space, space.name, {
appearance: {
iconVisible: false,
},
});
- The
MarkerlowPriorityPin.enabledoption has been removed and replaced with the placement option"hidden".
// ❌ Before
mapView.Markers.add(space, space.name, {
placement: ["center"],
lowPriorityPin: {
enabled: true,
size: 6,
color: 'red',
},
});
// ✅ After
mapView.Markers.add(space, space.name, {
placement: ["center", "hidden"],
lowPriorityPin: {
size: 6,
color: 'red',
},
});
Features
- Improved the appearance of
MapView.__EXPERIMENTAL__auto(). - Added
textPlacementas an option forLabels. - Added
enableImageCollisionsas an option forSpaces, enabling 2D elements to collide with anchored 3D images.
Fixes
- Fixed
MapView.__EXPERIMENTAL__auto()not labellingFacades. - Fixed
Spaces not being created forFacades in MVFv3. - Fixed exported types resolving as
any. - Fixed z-fighting with overlapping
Paths in multi-destination routes. - [React] Fixed
@mappedin/mappedin-jspeer dependency.
v6.0.0-rc.3
September 17, 2025
⚠️ Breaking Changes
- The
__typeproperty across MapView elements has been lower cased for consistency.
// ❌ Before
Label.__type; // 'Label'
Marker.__type; // 'Marker'
Model.__type; // 'Model'
Shape.__type; // 'Shape'
Path.__type; // 'Path'
PathSegment.__type; // 'PathSegment'
Image3DView.__type; // 'Image3D'
Text3DView.__type; // 'Text3D'
// ✅ After
Label.__type; // 'label'
Marker.__type; // 'marker'
Model.__type; // 'model'
Shape.__type; // 'shape'
Path.__type; // 'path'
PathSegment.__type; // 'path-segment'
Image3DView.__type; // 'image-3d'
Text3DView.__type; // 'text-3d'
Features
- Added
pointsgetter toEnterpriseLocationwhich returns thePointOfInterestinstances associated with the location. - Added a visual map element for
Areas which can be updated usingMapView.updateState(). - Added
MapView.getInView()to return the 2D elements that are currently in view. - Added
MapView.Labels.getAll()to return all labels in the map. - Added
MapView.Markers.getAll()to return all markers in the map.
Fixes
- Merges
MapDatalocalizations with the default language.
v6.0.0-rc.2
September 9, 2025
Fixes
- [React SDK] Fixed a critical issue causing the
useMapData()hook to infinitely fetch data.
v6.0.0-rc.1
September 9, 2025
This is the second release candidate for Mappedin JS v6 and the first release candidate for React SDK. Going forward, the versions of these SDKs will be synchronized. This version introduces significant breaking changes for both SDKs.
⚠️ Breaking Changes
- Renamed
MapView.ImagestoMapView.Image3Dand theImageclass toImage3DView.
// ❌ Before
import { Image } from "@mappedin/mappedin-js";
const img: Image = mapView.Images.add(...);
// ✅ After
import { Image3DView } from "@mappedin/mappedin-js";
const img: Image3DView = mapView.Image3D.add(...);
MapData.Query.nearest()now returns a Promise and contains a number of new parameters and options.
// ❌ Before
const nearest = mapData.Query.nearest(
point, // Origin point.
{
limit: 'same-floor', // Limit to same floor. Options: 'same-floor' | 'same-elevation'
radius: 10, // Radius of search in meters.
types: ['space', ...] // Array of types to query for.
}
);
// ✅ After
const nearest = await mapData.Query.nearest(
point, // Origin point.
mapData.getByType('space'), // Array of elements to query for
{
limit: 'same-floor', // Search limit. Options: 'same-floor' | 'same-elevation'
lineOfSight: 'auto', // Whether to ignore walls and other obstructions. Options: 'auto' | true | false
mode: 'travel-distance', // The mode to use for the search. Options: 'travel-distance' | 'absolute-distance'
maxDistance: 10, // Maximum distance to search in meters.
}
);
- The state returned from
MapView.getState()now has all properties set toreadonly.
// ❌ Before
const state = mapView.getState(space);
state.opacity = 0.5; // No error
// ✅ After
const state = mapView.getState(space);
state.opacity = 0.5; // Error
- [React SDK] The
onLoadcallback has been removed. Instead, pass arefto the component to access the instance.
// ❌ Before
<MapView onLoad={(mapView) => {}} />
<Label onLoad={(label) => {}} />
<Marker onLoad={(marker) => {}} />
<Model onLoad={(model) => {}} />
<Path onLoad={(path) => {}} />
<Shape onLoad={(shape) => {}} />
<Navigation onLoad={() => {}} />
// ✅ After
const mapViewRef = useRef();
<MapView ref={mapViewRef} />
const labelRef = useRef();
<Label ref={labelRef} />
const markerRef = useRef();
<Marker ref={markerRef} />
const modelRef = useRef();
<Model ref={modelRef} />
const pathRef = useRef();
<Path ref={pathRef} />
const shapeRef = useRef();
<Shape ref={shapeRef} />
<Navigation /> // onLoad removed, no navigation instance to return
- [React SDK] The
useEvent()hook has been renamed touseMapViewEvent().
// ❌ Before
useEvent('click', event => {
console.log(event);
});
// ✅ After
useMapViewEvent('click', event => {
console.log(event);
});
- [React SDK]
@mappedin/mappedin-jsis no longer re-exported from the React SDK. It is now listed as a peer dependency.
// ❌ Before
import Mappedin, { Label } from "@mappedin/react-sdk"
const [labels, setLabels] = useState<Mappedin.Label[]>([]);
return labels.map(label => (
<Label key={label.id} target={label.target} text={label.text} />
));
// ✅ After
import { Label } from "@mappedin/react-sdk"
import { Label as LabelJS } from "@mappedin/mappedin-js"
const [labels, setLabels] = useState<LabelJS[]>([]);
return labels.map(label => (
<Label key={label.id} target={label.target} text={label.text} />
));
Features
- Added support for beveled edges on geometry.
- Added
coverImage,defaultFloor, andoperationHoursas properties ofEnterpriseLocation. - Added
verticalOffsetas a state property forPath. - Added
MapView.getVersion()to return the version of the SDK. - [React SDK] Added
useMapDataEvent()hook. - [React SDK] Added
<MapDataProvider>component.
Fixes
- Fixed cases where interactions may become misaligned after the page is scrolled.
- Fixed cases where building footprints were not being hidden.
- Fixed
MapView.getDirections()performance regression on v6.0.0-rc.0. - Fixed an issue where Labels were not showing on some browsers under strict CSP rules.
- Fixed
hydrateMapData()failing while offline. - Fixed hand-drawn navigation being smoothed.
- Fixed an issue where excluding a one-to-many connection from directions would exclude all associated connections.
- Fixed a performance regression when calling
MapView.updateState()on geometry. - [React SDK] Fixed cleanup of MapView component and limited re-renders when props change.
- [React SDK] Fixed cases where types showed mismatch errors despite being correct.
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
TShow3dMapOptionskeymultiFloorView.floorHeighthas 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.farZoomwith a unifiedwidthoption.
// ❌ Before
mapView.Paths.add(path, { nearRadius: 0.5, farRadius: 1, nearZoom: 16, farZoom: 18 });
// ✅ After
mapView.Paths.add(path, { width: 1 });
Markers
- Marker
anchorproperty renamed toplacement.
// ❌ Before
mapView.Markers.add(
space,
`<div>${...}</div>`,
{
anchor: 'left',
},
);
// ✅ After
mapView.Markers.add(
space,
`<div>${...}</div>`,
{
placement: 'left',
},
);
- Marker
dynamicResizeoption 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
appearanceoptions 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
coordinateandpointerEvent.
// ❌ 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-overlaypackage.
// ❌ Before
import { createMapLibreOverlay } from '@mappedin/mappedin-js';
// ✅ After
import { createMapLibreOverlay } from '@mappedin/maplibre-overlay';
Visibility
- Setting
opacity: 0no longer implicitly setsvisible: false. Use thevisibleproperty 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
getStateandupdateState. 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
BlueDotAPI has been removed and is now published under a separate@mappedin/blue-dotpackage.
// ❌ 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
navigationFlagsgetter toNode. - Added floor-independent BlueDot positioning.
- Upgraded MapLibre to v5.
Fixes
- Fixed
sidenot working inupdateState(). - Removed
tabindexfrom 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
outdoorViewis disabled.
v6.0.1-beta.53
July 21, 2025
Features
- Adds
lineOfSightas an option toMapData.Query.nearest()to avoid returning results obstructed by walls. - Adds
disableWorkersas 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
iconSizeInterpolationhas 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
nameproperty across all map elements (Spaces, MapObjects, etc.) no longer falls back toexternalIdwhen empty. Previously, if a map element had no name, it would use theexternalIdas 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
excludearray property toMapData.Query.nearest(). - Added
MapView.optionsproperty to return the initialization options passed intoshow3dMap(). - Added
subtitleproperty 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
pitchandbearingtoMapView.Camera.getFocusOnTransform().
Fixes
- Fixed Path color when animation is layered over a
visibleThroughGeometryPath. - Fixed
centerproperty 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.typebeing required. - Fixed
unsafe-evalcontent 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.tweenGroupwhich returns the TweenJS Group for controlling animations created withMapView.tween()andMapView.animateState(). - Added the
interactivestate option for Shapes.
Fixes
- Fixed
initialFloornot working in Multi-floor View. - Fixed Paths with
interactive: truenot being interactive.
v6.0.1-beta.49
June 19, 2025
Features
- Added
altitudestate to Space and MapObject. - Added
visibleandheightstate to Shape.
Fixes
- Fixed walls and MapObjects not loading in MVF v3.
- Fixed Floors with invisible geometry being detected in click events.
- Fixed EnterpriseLocation
instancesnot being translated.
v6.0.1-beta.48
June 18, 2025
Features
- Added
centerproperty 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
lowPriorityPinshowing foralways-visibleMarkers. - 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
hiddenproperty toEnterpriseLocation.
Fixes
- Fixed
BlueDotnot 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.DynamicFocushas 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
lowPriorityPinto 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