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 aftershow3dMap()
. - 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 setheading
,accuracy
, orfloorOrFloorId
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()
andNavigation.setActivePathIndex()
for multi-destination routes. - Added options for
StackedMaps.expand()
andStackedMaps.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
andLabel
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
tofloorOrFloorId
inBlueDot.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
andblue-dot-error
events. - Added support for custom
departure
,destination
, andconnection
Markers inNavigation.draw()
. - Added support for Shapes in
MapView.updateState()
. - Added
environment
option ingetMapData()
.
Fixes
- Fixed
Camera.focusOn()
padding. - Fixed issue with flattened path
nearRadius
andfarRadius
.
v6.0.1-beta.15
November 15, 2024
Fixes
- Fixed Path
nearRadius
andfarRadius
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 usinggetDirectionsMultiDestination()
.
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 respectingbearing: 0
.
v6.0.1-beta.10
October 25, 2024
Features
- Added
MapView.getState(WALLS.Interior)
andMapView.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()
andOutdoor.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
FloorStack
s 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
, andVenue
to beEnterpriseLocation
,EnterpriseCategory
, andEnterpriseVenue
.
Features
- Added Search API with
MapData.Search.query()
andMapData.Search.suggest()
. - Added vertical paths between floors in Stacked Maps.
v6.0.1-beta.6
October 10, 2024
Fixes
Navigation.clear()
orNavigation.draw()
will now cancel a previous draw in progress.- Included
Venue
,Location
, andCategory
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 allDoor
s associated with aSpace
.
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 defaultmaxZoomLevel
remains 22. The documentation has been updated to show these values. - Renamed
CustomGeometry
toShapes
.
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
andMVFStyleCollection
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, setoutdoorView.enabled: false
inshow3dMap
options. - [Breaking] Removed the
updateZoomLimits
property offocusOn
. 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 viaaddControl()
. - 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
viewId
s.
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 theoutdoor-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 togetMapData
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 anaccessToken
string in place ofkey
andsecret
.
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 toCamera.animateTo
. - [Breaking]
maxZoomLevel
andminZoomLevel
setters have been replaced withsetMaxZoomLevel
andsetMinZoomLevel
methods. - [Breaking] The
priority
property for labels and markers has been renamedrank
inupdateState
. - [Breaking] The elements in the DOM have shifted. It is not recommended to rely on or modify the Mappedin elements in the DOM.
Element | Before | After |
---|---|---|
Map Canvas | Top level | The map canvas is now a child of <div class="maplibre-canvas-container"> |
Attribution | Top level | Attribution elements are now children of <div class="mappedin-control-container"> |
Colliders | Children 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 forshow3dMap
.
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 usinganimateTo
.
Changes
outdoorViewToken
andoutdoorViewStyle
have been deprecated in favor ofoutdoorView.token
andoutdoorView.style
onTShow3DMapOptions
. 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 ofTShow3DMapOptions
. 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.
Before | After |
---|---|
) |
- The watermark should no longer disappear at some zoom levels. As a side effect, the default sizing of the watermark has changed.
Before | After |
---|---|
Sizing was based on vertical height of the screen. | Sizing is now 150px wide by default. |
v6.0.1-alpha.22
May 15, 2024
Changes
- [Breaking] The type of
TCameraAnimationOptions.easing
has been changed toEasingCurve
. The accepted values of this property remain the same. Markers.removeAll()
now has a return type ofMarker[]
.
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 ofgetMapData
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 withtop
,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) | Contain | Cover |
---|---|---|
The padding
property sets the amount of space between the icon and the border. The icon may shrink based on this value.
padding: 0 | padding: 10 |
---|---|
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 callingmapView.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 nowobject
, instead ofunknown
. 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.