mapsindoors_mapbox 4.8.0
mapsindoors_mapbox: ^4.8.0 copied to clipboard
A MapsIndoors flutter plugin using the Mapbox platform for Android and iOS app usage.
Changelog #
4.8.0 #
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. - Updated Mapsindoors SDKs:
- 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 #
4.6.3 #
4.6.1 #
4.6.0 #
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 #
4.5.0 #
4.4.1 #
4.4.0 #
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 iOS - Fixed an issue where setting a zoom value on a
CameraUpdatewould sometimes be ignored on iOS - Fixed a native crash on Android by updating the underlying Mapbox Maps version
Changed #
- Updated Mapsindoors SDKs:
- Android to 4.13.0
4.3.0 #
Added #
- Added
enableMapsIndoorsDebugLogging(bool)function to enable SDK logging to help with debugging.
4.2.4 #
4.2.2 #
4.2.1 #
4.2.0 #
Added #
- Support for positioning labels in more places by having
labelStylePositionadded to DisplayRules. With this attribute it is possible to decide where the label is placed in relation to the icon. Possible values are defined inMPLabelPositionasright,left,topandbottom. The label positioning can now be set in the MapsIndoors CMS.
Added #
- LabelPositioning on DisplayRules
- Elevated 2D Models
- 2D Models that are placed on Extrusions, will now be raised to be placed on top
- Clip Layer
- 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 a module enabled. Contact MapsPeople to have it enabled
Fixed #
- Reenabled Mapbox Attribution as it no longer causes a crash when tapped (Android)
- 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
Changed #
- Updated Mapsindoors SDKs:
- Android to 4.12.0
- iOS to 4.11.0
4.1.6 #
4.1.5 #
Fixed #
zoomLevelChangedcallback for custom floor selectors now gets called on iOS as well.
4.1.4 #
4.1.0 #
4.0.1 #
4.0.0 #
See the migration guide.
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
Stringsto usedart:uiColorinstead. - Updated Mapsindoors SDKs:
- Android to 4.9.0
- iOS to 4.7.0
Removed #
DirectionsServiceClearWayTypehas been removed, useClearAvoidWayTypeinstead.
3.1.3 #
3.1.2 #
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 Android - Fixed
setCollisionHandlingonMPSolutionConfigcausing a crash - Fixed
moveCamera/AnimateCamerafrom aMPCameraPositionwould not work on iOS
Changed #
- Updated Mapsindoors SDKs:
- Android to 4.8.11
3.1.1 #
Fixed #
- Fixed issue where camera events would not be propagated to the Flutter layer
- Fixed issue on iOS where setting a floor selector
- Fixed issue on Android where goTo MPLocation did not function properly
- Fixed tilt not being applied when moving the camera using a MPCameraUpdate on iOS
- Fixed blank screen on Android when not using MapsindoorsStyle
Changed #
- Updated Mapsindoors SDKs:
- iOS to 4.6.1
3.1.0 #
3.0.2 #
3.0.1 #
- No changes
3.0.0 #
Added #
- Added
setHighlightandclearHighlighttoMapControlWidgetwhich allows you to highlight a list of locations - Added new
MPCameraViewFitMode:none, which will disable automatic camera movement when changing legs - Added
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()
- Venues can be added and removed from load at any time by using
- 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
MPLocation,MPPOITypeandMPSolutionConfig - Added
MPPOITypewhich can be fetched fromMPSolution
- This setting can be found on
- Added
mapsIndoorsTransitionLevelto MapsIndoorsWidget ctor- Sets 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 parametersstopsandoptimize stopswill add the stops to the route between theoriginanddestinationoptimizewill rearrange thestopsto make a more optimal route, butoriginanddestinationwill stay the same.
- The existing
- Updated Mapsindoors SDKs:
- Android to 4.8.5
- iOS to 4.5.7
Deprecated #
- Deprecated
clearWayType: useclearAvoidWayTypeinstead
2.1.6 #
- Updated to Mapsindoors iOS SDK 4.3.11 with proper Privacy Manifests
2.1.5 #
- Updated Mapsindoors SDKs
- Android to 4.4.1
- iOS to 4.3.8
2.1.4 #
- Fixed issue with not being able to always get a correct route involving one way paths.
2.1.3 #
- Fixed issue with
MapsIndoorsWidget.readyListenernot being called on very initial load of MapsIndoors.
2.1.2 #
- Updated Mapsindoors SDKs
- Android to 4.2.12
- iOS to 4.2.14
2.1.1 #
- Fixed issue where
OnMapReadyListenerwould not be invoked during the initial load on iOS.
2.1.0 #
- Updated Mapsindoors SDKs
- Android to 4.2.10
- iOS to 4.2.13
- Added
showRouteLegButtonstoMPDirectionsRenderer - Added
setLabelOptionstoMapsindoorsWidget
2.0.1 #
- RETRACTED
2.0.0 #
- Moved from mapsindoors to allow for multiple map providers
- Changes to classes:
- MapControl
- MapControl has merged with the MapsIndoorsWidget, combining them into a single entity. the Widget will still be built in the build tree, and accepts a listener as a parameter to wait for the MapControl part to be initialized.
- MapControl
- 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.load() is now loadMapsIndoors())
- Changes to the Widget
- The MapsIndoorsWidget has been changed to be a UniqueWidget, this is to ensure that the underlying MapsIndoors in the platform code can function normally.