Features
- Added stable names for the experimental
Path rendering options on Paths.add and Navigation.draw. The previous __EXPERIMENTAL_* names remain as deprecated aliases. When an old name and its new name are both set, the new name is used.
const path = await mapView.Paths.add(directions.coordinates, {
geometry: 'ribbon',
smoothing: { tension: 0.15, cornerRadius: 0.5 },
border: { enabled: true, color: 'darken' },
endcapExtension: [0.5, 0.5],
billboarding: 80,
dash: { enabled: true, mode: 'width-scaling', size: 1.2, gapSize: 0.6 },
xray: { opacity: 0.25, tint: 0.3, dithering: 2 },
});
geometry replaces __EXPERIMENTAL_GEOMETRY. 'tube' is the default round path. 'ribbon' draws a flat path. A dashed ribbon draws each dash as its own shape, and a dashed tube paints the dash pattern on one continuous path. __EXPERIMENTAL_DASH_STYLE is removed.
dash replaces dashed and __EXPERIMENTAL_DASH_OPTIONS. dash.enabled replaces dashed. dash.cornerRadius ranges from 0 (sharp) to 1 (fully rounded) and now defaults to 0. The experimental discrete dash default was 1. A dash object with only enabled: true uses width-scaled dashes (size 1.2, gapSize 0.6).
smoothing replaces __EXPERIMENTAL_SMOOTHING_TENSION and __EXPERIMENTAL_SMOOTHING_CORNER_RADIUS.
xray replaces __EXPERIMENTAL_XRAY_STYLE and xrayOpacity.
endcapExtension, billboarding, and border replace the matching __EXPERIMENTAL_* options. They apply to ribbon geometry.
- Removed
__EXPERIMENTAL_PREVENT_SELF_OVERLAP. Overlapping Paths can use xray.tint and xray.dithering.
- Added
connection on navigation pathOptions and inactivePathOptions. It overrides the vertical connection segment of that path. Set it on pathOptions for the active connection and on inactivePathOptions for the inactive one. The previous __EXPERIMENTAL__CONNECTION_* flags remain as deprecated aliases, except __EXPERIMENTAL__CONNECTION_BILLBOARDING, which is removed. __EXPERIMENTAL_JUNCTION_INSET stays experimental. Connection segments use square end caps unless connection.endcapExtension is set.
await mapView.Navigation.draw(directions, {
pathOptions: {
color: '#FF0000',
geometry: 'ribbon',
connection: {
geometry: 'ribbon',
dash: { enabled: true },
},
},
});
- Added stable names for the experimental
getDirections smoothing options. method replaces __EXPERIMENTAL_METHOD and accepts 'greedy-los' (the default), 'rdp', or 'dp-optimal'. includeDoorBufferNodes replaces __EXPERIMENTAL_MUST_INCLUDE_DOOR_BUFFER_NODES and __EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES. The previous names remain as deprecated aliases, and the defaults are unchanged. excludedConnections is no longer experimental.
const directions = await mapView.getDirections(start, end, {
smoothing: {
enabled: true,
method: 'dp-optimal',
includeDoorBufferNodes: true,
radius: 0.4,
},
});
- Added
MapView.auto(), which places labels for the map and renders Annotations as icon Labels. The returned markers array is empty. MapView.__EXPERIMENTAL__auto() still renders Annotations as Markers and logs a deprecation warning.
const { labels } = await mapView.auto();
- Added
fuzzy and prefix to Search.query() and Search.suggest(). Each source (places, enterpriseLocations, and enterpriseCategories on query) can set its own values. fuzzy of 0 disables typo tolerance. A value greater than 0 and less than 1 is a fraction of the term length. A value of 1 or greater is an edit count. The default is 0.2. prefix controls as-you-type matching and defaults to true. Omitting either option keeps the existing behaviour.
const results = await mapData.Search.query(term, {
enterpriseLocations: { fuzzy: 0, prefix: false },
});
- Added experimental
__EXPERIMENTAL_CameraControlsMode on outdoorView for show3dMap. 'native' (the default) keeps the SDK pan, zoom, pinch, and rotate gestures. 'external' hands those gestures to MapLibre. 'external' responds only when outdoor view is enabled and the outdoor map loads. In 'external' mode, Camera.interactions also updates MapLibre’s gesture handlers.
const mapView = await show3dMap(el, mapData, {
outdoorView: {
__EXPERIMENTAL_CameraControlsMode: 'external',
},
});
- Added optional
opensMessage and closesMessage strings on operation hours. EnterpriseLocation.operationHours includes them, and they follow the active language. LocationProfile.openingHours.raw includes them on Maker maps.
Performance
- Improved
Label memory use on maps with many labels, including icon-only labels.
Fixes
- Fixed an issue where
MapData.checkForUpdates() failed for a hydrated map that uses the EU gateway.
- Fixed an issue where a two-finger pinch stopped working when the second finger landed on a layer above the map.
- Fixed an issue where borders failed to render on polygons that contain a hole, and were missing on smooth outlines.
- Fixed an issue where map data failed to load when a
Node referenced a neighbor that was missing from the map.
- Fixed an issue where the end of a Blue Dot tethered navigation path disappeared when the route looped back near the user.
- Fixed an issue where
Labels with maxLines greater than 2 rendered only the first two lines.