Flutter SDK
Change log for the MapsIndoors Flutter SDK. This document structure is based on Keep a Changelog and the project adheres to Semantic Versioning.
[4.8.0] 2026-10-02
Changed
The minimum iOS version is now 16.0, and building for iOS requires Xcode 26. Set
platform :ios, '16.0'in yourPodfileand raise your app's iOS deployment target to match.On iOS, the MapsIndoors SDK now depends on Google Maps SDK 10.15.0 and Mapbox Maps SDK 11.25.0.
On iOS,
setAnimatedPolylineno longer has any effect. It ignoredanimatedandrepeatingthere, and readdurationMsas seconds. UsesetOptionsinstead, which works on both platforms.MapsIndoors Insights now attributes sessions from iOS apps to this plugin and its version, as it already did on Android.
Added
MPDirectionsRenderer.setOptions,getOptionsandclearOptions, withMPDirectionsRendererOptions,MPStrokeStyleandMPRouteAnimationType, to change the style and animation of the rendered route at runtime. Properties left unset keep the wayfinding style configured in the MapsIndoors CMS. On Google Maps for iOS,MPStrokeStyle.dashedis drawn solid.Offline caching of Mapbox base-map tiles, so the map underneath MapsIndoors still renders without a network:
enableBaseMapCaching,synchronizeBaseMapTilesandisBaseMapCachingSupported, withMPMapboxStyleSource,MPDataSetCachingScopeandOnBaseMapCacheProgressListener. The Google Maps packages report caching as unsupported.MPDirectionsRenderer.finishGuidance, which reports to MapsIndoors Insights that the user finished following a route.setMapsIndoorsLanguagesupports Simplified and Traditional Chinese (zh-Hans,zh-Hant) on solutions that provide them, and resolveszh-CNandzh-TWto them.
Fixed
On iOS, the app no longer crashes when
getMapStylesorMapsIndoorsWidget.setHighlightis called, or a display rule is changed, while a map is shown.On iOS,
selectVenue,selectBuilding,selectLocation,selectLocationByIdandsetHighlightonMapsIndoorsWidgetnow complete once the change has been applied, as on Android, so it can be read back as soon as they return. They used to complete before it had started.On iOS, the leg-selected listener now runs before
nextLeg,previousLegandselectLegIndexcomplete, as on Android, instead of shortly afterwards.On Android, the first MapsIndoors Insights session after an app start was attributed to the Android SDK rather than to this plugin.
The colour getters on
MPDisplayRule(getPolygonFillColor,getPolygonStrokeColor,getExtrusionColor,getWallColor,getBadgeFillColor,getBadgeStrokeColor,getLabelStyleHaloColorandgetLabelStyleTextColor) no longer return a fully transparent colour. Both platforms send these as six-digit#RRGGBBstrings, which were decoded with an alpha of 0; they are now opaque. An app that compensated withwithAlpha(255)orwithOpacity(1.0)can drop that, but does not have to.MPGeometry.contains,MPVenue.containsandMPBuilding.contains, andareaonMPPolygonandMPMultiPolygon, now return results. On Android they always failed, and on iOScontainsalways failed andareareturned null. A point inside a polygon's hole counts as outside on both platforms. Android'sareacan read up to about 1% higher than iOS's, because the two SDKs calculate it differently.getSquaredDistanceToClosestEdgeonMPPolygonandMPMultiPolygonnow returns a distance on both platforms, where it always failed before. It returns -1 when the point is outside the geometry's bounding box.On Android, a method call the native side does not implement, which can happen when the plugin's packages resolve to different versions, now fails with a
MissingPluginExceptioninstead of never completing.
Deprecated
MPDirectionsRenderer.setPolyLineColorsandsetAnimatedPolyline. UsesetOptionsinstead.
[4.7.1] 2026-06-02
Fixed
Fixed issue on Android where floorselector actions returned from the SDK would not always run on the main thread, resulting in a crash
Changed
Updated MapsIndoors SDKs:
Android to 4.18.3
[4.7.0] 2026-05-18
Changed
[4.6.3] 2026-03-11
Fixed
The function
addVenuesToSyncno longer causes a crash on iOSThe function
getLocationsByQueryno longer uses excessive amounts of memory on Android
Changed
[4.6.2] 2026-01-30
Changed
[4.6.1] 2025-11-27
Fixed
Added proguard consumer rules that should help avoid issues when minifying the SDK
Fixed issues with parsing Additional Details on iOS devices
Changed
[4.6.0] 2025-10-17
Added
Added support for Additional Details
Added support for Nested Categories
Fixed
Fixed a number of build issues on both Android and iOS
Changed
[4.5.1] 2025-09-23
Fixed
Inconsistencies in color values across Android and iOS are gone
Avoid crashes when accessing a number of properties due to null values
The callback for
onLegSelectedin theonLegSelectedListeneris now called on iOS
Changed
[4.5.0] 2025-08-28
Added
Added support for
automatedZoomLevelproperty inMPSolutionConfigto limit the zoom level when using e.g. thegoTo(entity:)methodAdded
goTo(entity:maxZoom:)method to allow for limiting the zoom level manually instead of usingautomatedZoomLevel
Changed
[4.4.1] 2025-08-05
Fixed
Fixed issues with using
zoomToandzoomBycamera updates on iOS.Fixed issue with
fromBoundscamera update not adjusting the zoom level correctly.Fixed issue with set
hiddenFeaturesnot being respected on iOS.
Changed
Updated MapsIndoors SDKs:
iOS to 4.13.0
[4.4.0] 2025-07-29
Fixed
Fixed a number of Typos
Fixed an issue where attempting to fetch display rules by name using location ids not working on iOS
Fixed an issue where setting a duration on a
CameraUpdatewould be ignored on iOSFixed an issue where setting a zoom value on a
CameraUpdatewould sometimes be ignored on iOSFixed a native crash on Android by updating the underlying Mapbox Maps version
Changed
Updated MapsIndoors SDKs:
Android to 4.13.0
[4.3.2] 2025-07-24
Changed
Updated MapsIndoors SDKs:
Android to 4.12.5
[4.3.1] 2025-07-23
Fixed
Fixed a build issue on iOS
[4.3.0] 2025-07-22
Added
Added
enableMapsIndoorsDebugLogging(bool)function to enable SDK logging to help with debugging.
Changed
Updated MapsIndoors SDKs:
iOS to 4.12.3
[4.2.5] 2025-07-15
Fixed
Resolved cocoapods dependency issue
[4.2.4] 2025-07-11
Added
Added possibility to define which map features to show when initializing the MapsIndoors widget
Fixed
zoomByon iOS now actually zooms by the given amount from the current zoom levelzoomlevel reported by Android when using Mapbox to not be off by 1
Changed
[4.2.3] 2025-06-24
Fixed
Fixed iOS compilation error
[4.2.2] 2025-06-20
Fixed
Fixed iOS not respecting
setHiddenFeaturesfor 3D models
Changed
[4.2.1] 2025-06-05
Fixed
Fixed Android not respecting
setHiddenFeaturesfor 3D models
Changed
Updated MapsIndoors SDKs:
Android to 4.12.1
[4.2.0] 2025-05-14
Added
LabelPositioning on DisplayRules
Elevated 2D Models (Mapbox)
2D Models that are placed on Extrusions will now be raised to be placed on top
Clip Layer (Mapbox)
Extruded buildings and Trees from the MapBox standard style can now be removed, when inside venue's geometry.
Does not remove landmarks consistently, will be solved with a future version of Mapbox
Requires the module to be enabled; contact MapsPeople to enable it.
Fixed
Added additional guards against the map being used before it is ready (Android/Google Maps)
Fixed issue causing compass to persist even when disabled (Android)
getLocationsByExternalIds now can return more than a single Location in the list (as would be expected) (iOS)
Fixed issue where some routes would be incorrect if the route was calculated while offline
Fixed issue where moving beyond the venue could cause a crash due to the floor selector
Reenabled Mapbox Attribution as it no longer causes a crash when tapped (Android/Mapbox)
Changed
Updated MapsIndoors SDKs:
Android to 4.12.0
iOS to 4.11.0
[4.1.6] 2025-03-26
Fixed
Made
getLocations()return the same result on both Android and iOS.
Changed
Updated MapsIndoors SDKs:
Android to 4.11.3
iOS to 4.9.6
[4.1.5] 2025-03-13
Fixed
zoomLevelChangedcallback for custom floor selectors now gets called on iOS as well.
[4.1.4] 2025-03-06
Fixed
Removed a number of potential memory retentions in the iOS part of the Flutter plugin.
Restored functionality of the listeners on iOS that were disabled in version 4.1.3.
Changed
Updated MapsIndoors SDKs:
Android to 4.11.2
iOS to 4.9.5
[4.1.3] 2025-02-20
Changed
Updated MapsIndoors SDKs:
iOS to 4.9.4 (to address some memory issues)
[4.1.2] 2025-01-30
Changed
Updated MapsIndoors SDKs:
Android to 4.10.1
iOS to 4.9.2
[4.1.1] 2025-01-09
Fixed
Fixed Android build issue
[4.1.0] 2025-01-09
Added
Added the ability to set a custom Mapbox style using the new
mapStyleUrionMapsIndoorsWidget
Fixed
Fixed issue where setting
mapsIndoorsTransitionLevelonMapsIndoorsWidgethad no effectFixed error when parsing
MPRouteobjects
Changed
Updated MapsIndoors SDKs:
iOS to 4.8.3
[4.0.2] 2025-01-07
Changed
Updated MapsIndoors SDKs:
Android to 4.9.1
iOS to 4.8.1
[4.0.1] 2024-12-11
Fixed
Improved rendering performance of Mapbox Map view especially when pinch zooming.
Changed
Updated MapsIndoors SDKs:
iOS to 4.8.0
[4.0.0] 2024-11-28
Visit the migration guide to see what changes are needed to upgrade from v3 to v4.
Added
Added
initialCameraPosition: MPCameraPositionto theMapWidgetconstructor. If set, the initial position of the camera will be moved to the givenMPCameraPosition.
Changed
Changed all uses of color
Strings to usedart:uiColorinstead.Updated MapsIndoors SDKs:
Android to 4.9.0
iOS to 4.7.0
Removed
ClearWayTypehas been removed, useClearAvoidWayTypeinstead.
[3.1.3] 2024-10-31
Fixed
Fixed custom floorselectors not working properly on iOS
Changed
Updated MapsIndoors SDKs:
Android to 4.8.12
iOS to 4.6.2
[3.1.2] 2024-10-25
Fixed
Fixed issue where camera events would not be propagated to the Flutter layer on iOS
Fixed behavior where iOS would throw an error when
getLocationByIdcould not find a location, it now returns null like on AndroidFixed
setCollisionHandlingonMPSolutionConfigcausing a crashFixed
moveCamera/AnimateCamerafrom aMPCameraPositionwould not work on iOS
Changed
Updated MapsIndoors SDKs:
Android to 4.8.11 (Mapbox only)
[3.1.1] 2024-10-16
Fixed
Fixed issue where camera events would not be propagated to the Flutter layer
Fixed issue on iOS where setting a custom floor selector
Fixed issue on Android where
goTo(MPLocation)did not function properlyFixed tilt not being applied when moving the camera using a
MPCameraUpdateon iOSFixed blank screen on Android when not using the
MapsindoorsStyle
Changed
Updated MapsIndoors SDKs:
Android to 4.8.11 (Google Maps only)
iOS to 4.6.1
[3.1.0] 2024-09-11
Added
Added functionality for Android to update the map whenever a Display Rule is changed
Added method on MapsIndoorsWidget to disable built-in compass
Changed
Disabled Mapbox Attributions button on Android as it would crash when clicked
Updated MapsIndoors SDKs:
Android to 4.8.9
iOS to 4.5.14
[3.0.2] 2024-08-27
Fixed
Completed fix for build issue on Android devices
Fixed issues where updating display rules would not trigger a refresh on iOS
Changed
Updated MapsIndoors SDKs:
Android to 4.8.8
iOS to 4.5.12
[3.0.1] 2024-07-08
Fixed
Fixed build error when using Google Maps on Android
[3.0.0] 2024-06-26
Added
Added
setHighlightandclearHighlighttoMapControlWidgetwhich allows you to highlight a list of locationsAdded new
MPCameraViewFitMode:none, which will disable automatic camera movement when changing legsAdded
addExcludeWayType,clearExcludeWayTypetoMPDirectionsServiceto allow the user to exclude specificMPHighways when querying for a route.Added two new
MPSolutionDisplayRuleEnumsselectionandhighlightthat allows you to modify the look of highlighted and selected Locations.Added support for Flat and Graphic labels, as well as 3D models
Added new setters and getters to
MPDisplayRule:LabelStyleGraphicLabelTypeIconScaleIconPlacementPolygonLightnessFactorWallLightnessFactorExtrusionLightnessFactorLabelStyleTextSizeLabelStyleTextColorLabelStyleTextOpacityLabelStyleHaloOpacityLabelStyleHaloWidthLabelStyleHaloBlurLabelStyleBearingBadgeVisibileBadgeZoomFromBadgeZoomToBadgeRadiusBadgeStrokeWidthBadgeStrokeColorBadgeFillColorBadgePositionModel3DModelModel3DRotationXModel3DRotationYModel3DrotationZModel3DScaleModel3DZoomFromModel3DZoomToModel3DVisible
Added functionality to hide specific features from the map
setHiddenFeaturesset a list ofMPFeatureTypeto be hidden from the mapgetHiddenFeaturesget a list of currently hiddenMPFeatureType
Added optional venue loading, use loadMapsIndoorsWithVenues(key, venueIds) to load a specific set of venues
Venues can be added and removed from load at any time by using
addVenueToSync(venueId)andremoveVenueToSync(venueId)Track the status of venues by adding a listener with
addOnVenueStatusChangedListener(MPVenueStatusListener)Get a list of synced venues with
getSyncedVenues()
Added functionality to disable automatic floor and building selection when moving the map
setBuildingSelectionModeset a Selection mode for Buildings on the map withMPSelectionMode(automaticormanual)setFloorSelectionModeset a Selection mode for Floors on the map withMPSelectionMode(automaticormanual)
Added functionality to make locations
selectable.This setting can be found on
MPLoction,MPPOITypeandMPSolutionConfigAdded
MPPOITypewhich can be fetched fromMPSolution
Added
mapsIndoorsTransitionLevelto MapsIndoorsWidget ctorSets the zoom level at which the MapsIndoors data should show, instead of extruded buildings on Mapbox Maps. Can be set to 0, if extruded buildings should not show.
Added multi-stop navigation: It is now possible to add multiple stops to routes.
The existing
getRoutemethod gets two optional parametersstopsandoptimizestopswill add the stops to the route between theoriginanddestinationoptimizewill rearrange thestopsto make a more optimal route, butoriginanddestinationwill stay the same.
Changed
Updated MapsIndoors SDKs:
Android to 4.8.5
iOS to 4.5.7
Deprecated
Deprecated
clearWayType: useclearAvoidWayTypeinstead
[2.1.6] 2024-05-03
Changed
Updated MapsIndoors SDKs
iOS to 4.3.11
[2.1.5] 2024-03-25
Changed
Updated MapsIndoors SDKs
Android to 4.4.1
iOS to 4.3.8
[2.1.4] 2024-02-28
Changed
Updated MapsIndoors Android SDK 4.3.4
Fixed
Fixed issue with not being able to always get a correct route involving one way paths.
[2.1.3] 2024-02-13
Changed
New Example app included.
Fixed
Fixed another issue where
OnMapReadyListenerwould not be invoked during the initial load on iOS.Fixed issues where
setOnMarkerClickListener,setOnMapClickListenerandsetOnLocationSelectedListenerwould not accept being called with optional parameters.
[2.1.2] 2024-02-01
Changed
Updated MapsIndoors SDKs
Android to 4.2.12
iOS to 4.2.14
[2.1.1] 2024-01-24
Fixed
Fixed issue where
OnMapReadyListenerwould not be invoked during the initial load on iOS.
[2.1.0] 2024-01-11
Changed
Updated MapsIndoors SDKs
Android to 4.2.10
iOS to 4.2.13
Added
Added
showRouteLegButtonstoMPDirectionsRendererAdded
setLabelOptionstoMapsindoorsWidget
[2.0.0] 2023-08-15
Changed
Moved from mapsindoors to allow for multiple map providers
Changes to classes:
MapControl
MapControlhas merged with theMapsIndoorsWidget, combining them into a single entity. theWidgetwill still be built in the build tree, and accepts a listener as a parameter to wait for the MapControl part to be initialized.
MapsIndoors
Has been split up into functions on the namespace to align better with dart language standards. Some methods have changed naming to avoid collision with popular method and parameter naming (eg.
MapsIndoors.loadis nowloadMapsIndoors)
Changes to the Widget
The
MapsIndoorsWidgethas been changed to be aUniqueWidget, this is to ensure that the underlying MapsIndoors in the platform code can function normally.
Last updated
Was this helpful?