Skip to main content
Version: 6.0

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.1-beta.19

December 16, 2024

Features

  • Added Navigation.floorStacks getter.

Fixes

  • Fixed Outdoor.visible returning incorrect values.
  • Fixed Outdoor.setOpacity() failing when called directly after show3dMap().
  • Fixed a crash which could occur when Camera.focusOn() is passed undefined values.
  • Improved the error message thrown when container height and/or width are 0.

v6.0.1-beta.18

December 11, 2024

Changes

  • The Mappedin Web SDK has been renamed Mappedin JS for clarity and consistency with the @mappedin/mappedin-js package.

Features

  • Enabled BlueDot.update() to set heading, accuracy, or floorOrFloorId prior to receiving an initial position.

Fixes

  • Fixed the appearance of Labels when text is on top of the pin.

v6.0.1-beta.17

November 29, 2024

Changes

  • [Breaking] Marker interactivity has been adjusted. The interactive option now accepts 3 values:
    • false: The Marker is not interactive and browser pointer events are disabled. (default)
    • true: The Marker will register in the SDK 'click' and 'hover' events. Browser pointer events are disabled.
    • 'pointer-events-auto': The Marker will not register in SDK events. Browser pointer events are enabled.

Features

  • Added Navigation.setActivePath(), Navigation.setActivePathByDirections() and Navigation.setActivePathIndex() for multi-destination routes.
  • Added options for StackedMaps.expand() and StackedMaps.collapse() and new functions to control multi-floor views.
  • Added a nodes getter for a enterprise Connections.
  • Added BlueDot.follow() to attach the camera to the BlueDot.
  • Added a target getter for Labels, Markers, and other map elements.
  • (React SDK) Improved handling of Marker and Label options prop updates.

Fixes

  • Fixed issue when rendering older MVFs causing Floor names to be an empty string.
  • Fixed missing types in documentation.

v6.0.1-beta.16

November 26, 2024

Changes

  • [Breaking] Camera bearing will now always rotate clockwise from north. Previously, this rotation was counterclockwise.
  • [Breaking] Renamed floor to floorOrFloorId in BlueDot.update(). This property now accepts either a Floor object or a string floor ID.

Features

  • Added the option to provide an ordered list for the Marker anchor property. The Marker will be placed in the first available position in this list.
  • Added blue-dot-state-change, blue-dot-position-update and blue-dot-error events.
  • Added support for custom departure, destination, and connection Markers in Navigation.draw().
  • Added support for Shapes in MapView.updateState().
  • Added environment option in getMapData().

Fixes

  • Fixed Camera.focusOn() padding.
  • Fixed issue with flattened path nearRadius and farRadius.

v6.0.1-beta.15

November 15, 2024

Fixes

  • Fixed Path nearRadius and farRadius options not being respected.
  • Fixed BlueDot position updates failing when heading is null.
  • Fixed Navigation createMarkers options not being respected.
  • Fixed Marker animations only updating during camera events.

v6.0.1-beta.14

November 14, 2024

Changes

  • getDirections() has been reverted to single destination only. Multi-destination directions can now be generated using getDirectionsMultiDestination().

Features

  • Added accessible flag to connections.
  • Added BlueDot.update() method to set the BlueDot position.
  • Added interactive boolean option for paths. Interactive paths will appear in hover and click events.

Fixes

  • Fixed TypeScript return types for getDirections().

v6.0.1-beta.13

November 8, 2024

Features

  • Added support for hydrating a map with language packs included.
  • Added appearance states for BlueDot.
  • Added Outdoor.setOpacity().
  • Added support for multi-destination navigation.
  • Added externalId to data objects.
  • Added getDirections() to MapData.

Fixes

  • Fixed a regression causing map to go out of sync on devices with high device pixel ratio.

v6.0.1-beta.12

October 30, 2024

Fixes

  • Fixed issue causing multi-floor Navigation.draw() to show duplicate markers on destination floors.

v6.0.1-beta.11

October 29, 2024

Changes MapView.Paths.add() has been changed. It will now return a Path directly, while previous it returned Promise<Path>. This should make it easier to remove a path before the animation completes.

const path = mapView.Paths.add(...);
mapView.Paths.remove(path);

The draw animation can now be awaited by accessing Path.animation.

// Before
const path = await mapView.Paths.add(...);

// Now
const path = mapView.Paths.add(...);
await path.animation;

Features

  • Added support for directions smoothing on enterprise maps.
  • Added support to remove the watermark for enterprise customers.
  • Enabled backend analytics.

Fixes

  • Fixed MapView.Outdoor.setStyle() not always hiding the building footprint after the style changes.
  • Fixed auth0 tokens always requesting enterprise map data.
  • Fixed MapView.Camera.focusOn() not respecting bearing: 0.

v6.0.1-beta.10

October 25, 2024

Features

  • Added MapView.getState(WALLS.Interior) and MapView.getState(WALLS.Exterior)
  • Added support for MVF language packs.
  • Added support for more image types in Label icons.
  • Added Connection-based instructions to directions.

Fixes

  • Fixed cases of Path z-fighting.

v6.0.1-beta.9

October 18, 2024

Features

  • Added Outdoor.show() and Outdoor.hide() methods.
  • Added automatic zoom bounds based on map size to prevent the camera zooming out too far.
  • getMapData() will now render enterprise maps without any extra flags.
  • Added options to Navigation.draw() to set departure and destination marker colors.
  • Added FloorStacks to group floors in a single building.

Fixes

  • Fixed the reversed latitude and longitude in enterprise connections.

v6.0.1-beta.8

October 11, 2024

Fixes

  • Included MapView.Images API in the documentation.
  • Fixed MapData.getByType('connection') returning an empty array with enterprise maps.

v6.0.1-beta.7

October 10, 2024

Changes

  • Prefixed enterprise Location, Category, and Venue to be EnterpriseLocation, EnterpriseCategory, and EnterpriseVenue.

Features

  • Added Search API with MapData.Search.query() and MapData.Search.suggest().
  • Added vertical paths between floors in Stacked Maps.

v6.0.1-beta.6

October 10, 2024

Fixes

  • Navigation.clear() or Navigation.draw() will now cancel a previous draw in progress.
  • Included Venue, Location, and Category in documentation.

v6.0.1-beta.5

October 9, 2024

Features

  • Added image texture properties to updateState().
  • Added MapView.enableDebug() for inspecting map elements.
  • Added validation for new Labels and Markers.
  • Added MapView.Images API for adding images to the map.
  • Added support for multi-languages and enterprise data.
  • Added support for visible doors.
import { DOORS } from '@mappedin/mappedin-js';

mapView.updateState(DOORS.Interior, {
visible: true
});

mapView..updateState(DOORS.Exterior, {
visible: true
});

Fixes

  • Fixed a false warning when outdoor view is disabled.
  • Fixed the Floor.name value in enterprise maps.
  • Fixed the camera panning action during zoom while in Stacked Maps.

v6.0.1-beta.4

September 19, 2024

Features

  • Added ability to update opacity of individual geometries.
  • Added ability to update height of individual geometries.
  • Geometry outline color now updates when geometry color changes.
  • Added option to set background color and opacity for map.
  • Added caching for access token requests.
  • Added cleanup when run in overlay mode.
  • Added customization options to BlueDot.enable().
  • Added support for rendering images from the mapData.

Fixes

  • Fixed the watermark collider not updating position.
  • Fixed CORS errors with outdoor tiles.
  • Fixed issue with updateState not updating the Label icon.
  • Fixed issue with resizing the canvas breaking click and hover events.

v6.0.1-beta.3

September 13, 2024

Features

  • (React SDK) Added onLoad prop to most components which returns the instance.

Fixes

  • (React SDK) Fixed overlapping Markers rendering in React StrictMode.

v6.0.1-beta.2

September 11, 2024

We've published an additional package @mappedin/react-sdk. This SDK exports React components and hooks in addition to all the same functionality as the @mappedin/mappedin-js package.

Features

  • Added the Space.doors getter which returns all Doors associated with a Space.

Fixes

  • Fixed Camera.focusOn() not respecting the global tilting limits.
  • Fixed Camera.focusOn() not respecting the pan bounds of the map.

v6.0.1-beta.1

September 5, 2024

Changes

  • The default minZoomLevel has been changed to 12 from its previously approximate 13.03 value. The default maxZoomLevel remains 22. The documentation has been updated to show these values.
  • Renamed CustomGeometry to Shapes.

Features

  • Improved Camera.focusOn() to contain the bounding box of the space or object.
  • Camera.focusOn() now accepts a Floor.

Fixes

  • Fixed the initialFloor option not being respected.
  • Fixed Markers and Labels rendering over top of the watermark.
  • Fixed issues with initial camera positioning and state.
  • Fixed issues with camera projection after adjusting the min and max zoom levels.
  • Fixed cursor state not updating after camera animations complete.

v6.0.1-beta.0

August 26, 2024

Mappedin JS v6 is now in beta. While many of the core features have been implemented, we’re continuing to rapidly iterate and improve the product. We welcome all customer feedback.

Features

  • Added warnings when a focusOn() animation is outside of the camera boundaries.

Fixes

  • Resolved issues with setting the camera state during initialization and runtime.

v6.0.1-alpha.38

August 21, 2024

Features

  • Added BlueDot as an experimental option.

Fixes

  • Resolved issues with ultrawide monitors with device pixel ratio >= 2.

v6.0.1-alpha.37

August 19, 2024

Features

  • Added options to dynamically control routing by creating zones with path cost.

Fixes

  • Fixed issue where interactive spaces would sometimes remain clickable after floor change.

v6.0.1-alpha.36

August 14, 2024

Features

  • Added optional animated path arrows.

v6.0.1-alpha.35

August 12, 2024

Features

  • Added an isInView() function to the MapView, which can detect if a 3D element is within the current viewport.
  • Added the array of clicked floors to the MapView.on('click') payload.

Fixes

  • Fixed shadingAndOutlines: false to properly disable outlines.
  • Fixed Markers always rendering beneath Labels. Markers will now be on top.
  • Fixed the watermark rendering behind 3D paths.
  • Fixed cases where Outdoor.setStyle() would not hide the outdoor geometry.
  • Fixed issues with updating the style of exterior walls.
  • Fixed MVFStyle and MVFStyleCollection types not being exported.

v6.0.1-alpha.34

August 2, 2024

Changes

  • [Breaking] Previously, setting outdoorView.token to a falsey value would disable outdoor view. This is no longer the case. To disable outdoor view, set outdoorView.enabled: false in show3dMap options.
  • [Breaking] Removed the updateZoomLimits property of focusOn. Zoom levels will now be clamped between the min and max zoom of the SDK.
  • Label images will no longer fade in and out as they reposition.

Features

  • Added a new exported function, createMapLibreOverlay(). This can be used to add Mappedin indoor maps to Maplibre via addControl().
  • Added new options to control the gradient shading on the sides of geometry.
  • Added a new API for adding and removing 3D Models.
  • Added a new API for adding and removing custom geometry.
  • Added the outdoorView.enabled flag to turn on or off the outdoor map.
  • Added toggle-able visibility state to geometry.
  • Added a "Provide Feedback" link in the bottom right corner. This will enable Mappedin to gather feedback and improve the product.

Fixes

  • Fixed an issue where MapView.Labels.all() would prevent polygon hover color from being set.
  • Fixed an issue preventing label icons from loading.
  • Fixed a Label rendering issue on Intel Iris GPUs.
  • Fixed an issue with the request URL for MVF viewIds.

v6.0.1-alpha.33

July 24, 2024

Changes

  • [Breaking] addPath now returns a promise, allowing the animation to be awaited.
  • [Breaking] Style changes will now fire the outdoor-style-loaded event, instead of firing the outdoor-view-loaded event. The latter will only be fired on initial load.
  • Improved camera controls and interactions with multi-finger touch. Multi-finger touch will no longer trigger a click event, and releasing a finger will no longer abruptly end camera movement.

Features

  • The Maplibre map is now exposed via Outdoor.map for advanced usage.
  • Added support for geometry textures when provided in the map data.
  • Added a light option for the Mappedin watermark.
  • The map geometry can be updated during runtime by passing a new style to Style.setFromStyleCollection.
  • Added viewId property to getMapData to specify the editor Map View to fetch.

Fixes

  • Fixed cases where a simplified path would cut corners too sharply.

v6.0.1-alpha.32

July 17, 2024

Features

  • focusOn will now accept an Annotation as the target.

Fixes

  • Fixed an issue causing hiddenLayersUnderGeometry to be ignored on some maps.
  • Fixed an issue where multi-floor paths could draw a straight line from start to finish, ignoring connections.

v6.0.1-alpha.31

July 15, 2024

Features

  • Added a "low" option for marker and label rank.

Fixes

  • Fixed an issue where layersHiddenByGeometry would fail if a layer name was not present in the outdoor style.
  • Fixed an issue where marker z-index wasn't 3D accurate. The marker nearest to the camera will now be on top.

v6.0.1-alpha.30

July 8, 2024

Fixes

  • Duplicate marker and label IDs are now rejected.
  • Fixed an issue preventing the outdoor-view-loaded event from firing.
  • Fixed a crash which could occur when the map has no interior walls.

v6.0.1-alpha.29

July 4, 2024

Features

  • getMapData now optionally accepts an accessToken string in place of key and secret.

v6.0.1-alpha.28

July 2, 2024

Fixes

  • Resolves an issue where maps with multiple styles for spaces and obstructions would fail to load all geometry.

v6.0.1-alpha.27

July 2, 2024

Fixes

  • Resolved an issue where iOS would darken the canvas after the user has * moved to another tab.
  • Resolved an issue where applying a new outdoor style could add layers above the indoor map.
  • Duplicate entity IDs in the data are now rejected.

v6.0.1-alpha.26

June 28, 2024

This update introduces a completely new SDK architecture enabling faster load times, less memory consumption, real time 2D colliders, and more. Please reach out if there are any unexpected changes after upgrading to v6.0.1-alpha.26.

Changes

  • [Breaking] Increased the default iconSize of label icons from 10 pixels to 20 pixels.
  • [Breaking] Decreased the default iconPadding of label icons from 4 pixels to 2 pixels.
  • [Breaking] Camera.animate has been renamed to Camera.animateTo.
  • [Breaking] maxZoomLevel and minZoomLevel setters have been replaced with setMaxZoomLevel and setMinZoomLevel methods.
  • [Breaking] The priority property for labels and markers has been renamed rank in updateState.
  • [Breaking] The elements in the DOM have shifted. It is not recommended to rely on or modify the Mappedin elements in the DOM.
ElementBeforeAfter
Map CanvasTop levelThe map canvas is now a child of <div class="maplibre-canvas-container">
AttributionTop levelAttribution elements are now children of <div class="mappedin-control-container">
CollidersChildren of <div class="mappedin__smart-collision-engine__container>Colliders are now children of <div class="mappedin-2d-entities">

Features

  • Colliders such as labels and markers adjust position in real time during camera events.
  • Initial camera bearing, pitch, and zoomLevel can be set in the options for show3dMap.
await show3dMap(document.getElementById('mappedin-map'), mapData, {
bearing: 45,
pitch: 45,
zoomLevel: 19,
});
  • Labels.all will automatically use the icon for spaces and points of interest if one has been set in the editor.
  • The color of the top of the walls can now be set independently of the rest of the wall.
await show3dMap(document.getElementById('mappedin-map'), mapData, {
wallTopColor: '#000000',
});
  • The ‘click’ event returns a new property, pointerEvent, which can be used to differentiate between mouse clicks.
mapView.on('click', async (event) => {
const [space] = event.spaces;
if (!space) return;
switch (event.pointerEvent.button) {
case 0:
const { coordinate } = event;
const label = space.name || `Clicked: Lat: ${coordinate.latitude} Lon: ${coordinate.longitude}`;

mapView.Labels.add(coordinate, label);
break;
case 2:
mapView.Camera.focusOn(space);
break;
}
});
  • Outdoor layers below indoor geometry can be hidden using the outdoorView.layersHiddenByGeometry option for show3dMap.

Fixes

  • Fixed loading of geometry styles.
  • Reduced memory consumption.
  • Reduced bundle size.

v6.0.1-alpha.25

June 13, 2024

  • Version bump only.

v6.0.1-alpha.24

June 12, 2024

Features

  • Marker position can now be updated instantly using setPosition or over time using animateTo.

Changes

  • outdoorViewToken and outdoorViewStyle have been deprecated in favor of outdoorView.token and outdoorView.style on TShow3DMapOptions. They will be removed in a future release.
outdoorView = {
token: ''
style: ''
}
  • Multi-finger touch will no longer count as a click event.

Fixes

  • Fixed a case where some generic styles were being exported.

v6.0.1-alpha.23

May 22, 2024

Features

  • Customize the outdoor style using the outdoorViewStyle property of TShow3DMapOptions. The property expects a URL to a style specification conforming to the Maplibre Style Spec.

Changes

  • The wall shading now darkens the color instead of setting it grey. Shading is now noticeable on all objects.
BeforeAfter
Shading BeforeShading After)
  • The watermark should no longer disappear at some zoom levels. As a side effect, the default sizing of the watermark has changed.
BeforeAfter
Sizing was based on vertical height of the screen. Before WatermarkSizing is now 150px wide by default. After Watermark

v6.0.1-alpha.22

May 15, 2024

Changes

  • [Breaking] The type of TCameraAnimationOptions.easing has been changed to EasingCurve. The accepted values of this property remain the same.
  • Markers.removeAll() now has a return type of Marker[].

v6.0.1-alpha.21

May 13, 2024

Changes

  • [Breaking] The default value of label iconFit has been changed to "cover". Previously, the default value was "fill".

Fixes

  • Fixed an issue causing the onMVFParsed callback of getMapData to never fire.
  • Fixed an issue with watermark visibility.

v6.0.1-alpha.20

May 2, 2024

Features

  • Added new options to customize the location of the watermark. The watermark padding option now accepts an object with top, right, bottom, left to fine-tune it.
  • (Breaking) Added support for JPEG and PNG images in Floating Label icons. In addition to this, icons are now clipped in a circle to prevent overflow. New appearance options have been added to customize the icons.
mapView.Labels.add(space, space.name, {
appearance: {
marker: {
iconSize: 20,
iconFit: 'fill',
iconPadding: 4,
icon: 'http://www.example.com/dog.jpeg',
},
},
});

The new iconFit property determines how the icon should be scaled within the circle. 'fill' is now default.

Fill (default)ContainCover
Floating Label fillFloating Label containFloating Label cover

The padding property sets the amount of space between the icon and the border. The icon may shrink based on this value.

padding: 0padding: 10
Floating Label fill with 0 paddingFloating Label fill with 10 padding

v6.0.1-alpha.19

April 30, 2024

Features

  • It is now possible to specify the radius of the raycast for directions smoothing.
mapView.getDirections(departure, destination, {
smoothing: { radius: 3 }, // 3 metre radius
});

By default, radius is set to 1.8 metres.

Fixes

  • Fixed a race condition when doing mapView.Navigation.clear() directly after calling mapView.Navigation.draw(directions).

v6.0.1-alpha.18

April 25, 2024

Fixes

  • Fixed an issue where directions may be missing distances between instructions.

v6.0.1-alpha.17

April 23, 2024

Fixes

  • Resolved an issue with installing the package from NPM.

v6.0.1-alpha.16

April 23, 2024

  • Version bump only.

v6.0.1-alpha.15

April 19, 2024

Fixes

  • Connection weights were not being properly accounted for, causing all connection types to be prioritized equally. This has been corrected.
  • Fixed SafeAreaInsets not working when focusing on a single point.

v6.0.1-alpha.14

April 12, 2024

  • Version bump only

v6.0.1-alpha.13

April 10, 2024

Features

  • The MapView contains a new controller called Exporter. With Exporter, the rendered map can be converted to GLTF.
const gltf = await mapView.Exporter.getCurrentSceneGLTF();

v6.0.1-alpha.12

April 2, 2024

Fixes

  • The navigation path should no longer traverse through walls.
  • Fixed an issue with the watermark.

v6.0.1-alpha.11

March 26, 2024

Fixes

  • Resolved an issue where some maps didn't render exterior walls. In cases where the map is missing styles for exterior walls, they will default to the indoor wall style.

v6.0.1-alpha.10

March 25, 2024

  • Version bump only.

v6.0.1-alpha.9

March 19, 2024

  • Version bump only.

v6.0.1-alpha.8

March 18, 2024

Fixes

  • Halved memory usage during map initial load.
  • The outline effect no longer retains line thickness while zooming out with inertia.
  • Labels render correctly now on Intel integrated GPUs.

v6.0.1-alpha.7

March 12, 2024

Changes

  • The default color of the exit connection navigation button is now blue instead of purple.

Fixes

  • The focusOn animation no longer resets the min and max zoom levels.
  • If directions have less than 2 coordinates, navigation will now warn and prevent drawing the path.
  • The Coordinate class is now data layer agnostic, making it easier to test and create directly.

v6.0.1-alpha.5

February 28, 2024

Features

  • All map data objects now accurately include hyperlink metadata under the property links.

Fixes

  • The default type for map data objects is now object, instead of unknown. This will no longer warn of unknown object kind.

v6.0.1-alpha.4

February 27, 2024

Fixed

  • The polygon outline opacity is now interpolated as the camera zooms out. This improves the outline appearance at the furthest zoom level.

v6.0.1-alpha.3

February 27, 2024

We're testing a new version of the Mappedin JS and we'd love to hear your feedback! Mappedin JS v6 alpha adds first class support for maps built with app.mappedin.com.

Please note that breaking changes will occur. We encourage you to contact us with any issues or feedback, and regularly check this page for detailed release notes and API changes.