# React Native SDK

Changelog for the MapsIndoors React Native SDK. This document structure is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and the project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

### \[2.6.2] 2026-01-16

#### Fixed

* Publishing of version 2.6.1 did not include all the needed code; it is now present, making the package usable.

### \[2.6.1] 2026-01-13

#### Updated

* Updated MapsIndoors iOS SDK to 4.15.6
* Updated MapsIndoors Android SDK to 4.16.0

### \[2.6.0] 2025-11-11

### Added

* Added support for [Additional Details](https://docs.mapsindoors.com/products/cms/additional-location-details)
* Added support for [Nested Categories](https://docs.mapsindoors.com/products/cms/categories#subcategories)

### \[2.5.4] 2025-10-30

#### Fixed

* Compliance with Google Play requirement for 16kb Page sizes

#### Updated

* Updated MapsIndoors iOS SDK to 4.15.5
* Updated MapsIndoors Android SDK to 4.15.1

### \[2.5.3] 2025-08-18

#### Fixed

* Removed warnings on iOS caused by `requiresMainQueueSetup` method signature missing

#### Updated

* Updated MapsIndoors iOS SDK to 4.13.2
* Updated MapsIndoors Android SDK to 4.14.0

### \[2.5.2] 2025-07-15

#### Updated

* Updated MapsIndoors iOS SDK to 4.12.2
* Updated MapsIndoors Android SDK to 4.12.4

### \[2.5.1] 2025-05-14

#### Updated

* Updated MapsIndoors iOS SDK to 4.11.0

### \[2.5.0] 2025-05-14

#### Updated

* Updated MapsIndoors iOS SDK to 4.10.0
* Updated MapsIndoors Android SDK to 4.12.0

### \[2.4.2] 2025-04-02

#### Fixed

* Fixed a possible memory leak on Android when creating `MapControl`
* Fixed a parsing issue when a negative floor index was assigned on objects
* Fixed possible threading issues between native and react on iOS
* Fixed an issue with parsing `MultiPolygons` on the Floor objects

#### Updated

* Updated MapsIndoors iOS SDK to 4.9.7
* Updated MapsIndoors Android SDK to 4.11.3

### \[2.4.1] 2025-02-27

#### Updated

* Updated MapsIndoors iOS SDK to 4.9.4
* Updated MapsIndoors Android SDK to 4.11.1

### \[2.4.0] 2025-02-14

#### Added

* Added a method `cacheData` on `MapsIndoors` - allows you to cache all data before loading a solution. Allowing for full offline usage

#### Fixed

* Fixed an issue that `goTo` with `maxZoom` supplied was not implemented on the native side

#### Updated

* Updated MapsIndoors iOS SDK to 4.9.3
* Updated MapsIndoors Android SDK to 4.11.0

### \[2.3.1] 2025-01-30

#### Updated

* Updated MapsIndoors iOS SDK to 4.9.2
* Updated MapsIndoors Android SDK to 4.10.1

### \[2.3.0] 2025-01-22

#### Added

* Added `automatedZoomLimit` on the `MPSolutionConfig`
  * This controls the maximum zoom level the camera can zoom to when doing MapsIndoors camera operations. It is still possible to zoom further in manually
* Added `maxZoom` to `MPSelectionBehavior`,`MPHiglightBehavior`,`MPFilterBehavior`
  * Overwrites the automatedZoomLimit for a specific camera operation
  * Null by default
* Added optional `mapboxMapStyle` to the `MapView` to be able to set a custom mapbox style.
  * Requires `useMapsIndoorsDefaultStyle` to be set to `false` in the `MPMapConfig`. For the style to work when `MapControl` is created

#### Updated

* Updated MapsIndoors iOS SDK to 4.9.1
* Updated MapsIndoors Android SDK to 4.10.0

### \[2.2.0] 2024-12-09

#### Added

* Added `setLabelStylePosition` and `getLabelStylePosition` on `MPDisplayRule`
* Added `MPLabelPosition` Enum representing the different places the label can be anchored to the Marker

#### Fixed

* Fixed an issue where `showUserPosition` on the `MPMapConfig` would not work on iOS
* Fixed an issue where `MPPositionResultInterface` would cause an error, when the `MPPoint` had an undefined or null floor index.

#### Changed

* New default positioning of labels relative to the icon is `MPLabelPosition.bottom`. If you want to keep the previous default of `MPLabelPosition.right` you can place the following line in your code after loading MapsIndoors data with `MapsIndoors.getMainDisplayRule().then((displayRule) => { displayRule.setLabelStylePosition(MPLabelPosition.right); });`

#### Updated

* Updated MapsIndoors iOS SDK to 4.8.0
* Updated MapsIndoors Android SDK to 4.9.0

### \[2.1.2] 2024-11-15

#### Fixed

* Fixed issue where `MPCameraUpdate.zoomBy` on iOS Mapbox would set the zoom to the given value, instead of adjusting by the value
* Fixed issue where `MapControl.animateCamera`, did not actually animate on Mapbox
* Fixed issue where you could not set parameters to false, on `MPSelectionBehavior` and `MPHighlightBehavior` when calling create

#### Updated

* Updated MapsIndoors iOS SDK to 4.6.1
* Updated MapsIndoors Android SDK to 4.8.11

### \[2.1.1] 2024-10-17

#### Changed

* Specified Google Maps linkage on iOS. If upgrading from earlier versions make sure to remove the `post_install` script inside the podfile that removes the static linked library from `MapsIndoorsGoogleMaps`

#### Updated

* Updated MapsIndoors iOS SDK to 4.6.1
* Updated MapsIndoors Android SDK to 4.8.11

### \[2.1.0] 2024-09-27

#### Added

* `camera:MPCameraPosition` to the `MapView` view. To set an initial camera position when showing the map.
* `showCompass:boolean` to the `MapView` view. To enable/disable if the compass should show when rotating the map

#### Fixed

* Fixed a compile issue with xcode 16

#### Updated

* Updated to Mapbox 11.7.0 on Android

### \[2.0.7] 2024-09-12

#### Fixed

* Fixed a potential crash happening when hot reloads happen to the Mapview
* Fixed an issue where selectable property was nul on locations
* Fixed an issue where the map would not render before a map interaction
* Fixed an issue where requesting a route would never resolve/reject the promise
* Fixed an issue where the route would reappear after clearing it on the DirectionsRenderer

#### Updated

* Updated iOS SDK to 4.5.15
* Updated Android SDK to 4.8.9

### \[2.0.6] 2024-08-30

#### Updated

#### Fixed

* Fixed missing events being sent when using MPFloorSelectorInterface on iOS

#### Updated

* Updated iOS SDK to 4.5.13

### \[2.0.5] 2024-08-21

#### Added

* Added optional legIndex, to set the initial leg index of a route. When using `setRoute` on `MPDirectionsRenderer`

#### Fixed

* Fixed issue with directions not being rendered on subsequent map renderings
* Fixed issue with imageUrl being undefined on `MPLocation`
* Fixed issue where camera events was not being sent on iOS
* Fixed issue where tilt was not used when set on Camera updates
* Fixed flickering when selecting locations on iOS

#### Updated

* Updated Android SDK to 4.8.8
* Updated iOS SDK to 4.5.12

### \[2.0.4] 2024-08-01

#### Updated

#### Fixed

* Issue with subsequent Mapcontrol creation on iOS, causing rendering errors

#### Updated

* Updated iOS SDK to 4.5.11

### \[2.0.3] 2024-07-30

#### Added

* showRoadLabels to MPMapConfig
  * Sets wether the Mapbox Road labels should be shown on the map. If left undefined, it follows the transition level.

#### Fixed

* Issue with where map data is not rendered on the map, while MapControl has loaded successfully on iOS
* Issue with DisplayRule changes not updating before a map interaction

#### Updated

* Updated Android SDK to 4.8.7
* Updated iOS SDK to 4.5.10

### \[2.0.2] 2024-06-25

#### Updated

* Updated iOS SDK to 4.5.6

### \[2.0.1] 2024-06-20

#### Updated

* Updated iOS SDK to 4.5.6

#### Fixed

* Fixed issue where tiles would fade away, regardless of `mapsindoorsTransitionLevel` on Mapbox iOS

### \[2.0.0] 2024-06-19

#### Added

* Added new `MPCameraViewFitMode.none`to disable camera movement, when changing legs on `MPDirectionsRenderer`
* Added new properties to `MPDisplayRule`:
  * `setLabelStyleGraphic` sets a graphic label:
    * `backgroundImage`
    * `stretchX`
    * `stretchY`
    * `content`
  * `getLabelStyleGraphic`
  * `set/getModel3DModel`
  * `set/getModel3DRotationX`
  * `set/getModel3DRotationY`
  * `set/getModel3DrotationZ`
  * `set/getModel3DScale`
  * `set/getModel3DZoomFrom`
  * `set/getModel3DZoomTo`
  * `set/isModel3DVisible`
* Added new methods on `MapControl`:
  * `setHiddenFeatures` set a list of `MPFeatureType` to be hidden from the map
  * `getHiddenFeatures` get a list of currently hidden `MPFeatureType`
  * `setBuildingSelectionMode` set a Selection mode for Buildings on the Map with `MPSelectionMode` (automatic or manual)
  * `setFloorSelectionMode` set a Selection mode for Floors on the Map with `MPSelectionMode` (automatic or manual)
  * `getBuildingSelectionMode` get the current selection mode on `MapControl`
  * `getFloorSelectionMode` get the current selection mode on `MapControl`
* Added `types: MPPOIType[]` on `MPSolution` to get a list of types for the solution
* Added `setSelectable` and `isSelectable` on `MPLocation`, `MPPOIType` and `MPSolutionConfig`
* Added `mapsIndoorsTransitionLevel?: number` to `MPMapConfig`
  * 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 `showMapMarkers?: boolean` to `MPMapConfig`
  * Sets wether the Mapbox POI and Places markers hould be shown on the map. If left undefined, it follows the transition level.

#### Updated

* Updated iOS SDK to 4.5.4
* Updated Android SDK to 4.8.5

### \[1.3.2] 2024-06-07

#### Updated

* Updated iOS SDK to 4.5.1
* Updated Android SDK to 4.8.4

#### Fixed

* Fixed issue where route would not be optimised on iOS when querying multi stop routes
* Fixed issue where the first leg would not be animated on iOS

### \[1.3.1] 2024-05-31

#### Updated

* Updated iOS SDK to 4.4.1
* Updated Android SDK to 4.8.3

### \[1.3.0] 2024-05-27

#### Added

* Added Support for Mutli-stop navigation
  * Added optional `stops: MPPoint[]` and `optimize: boolean` to `MPDirectionsService.getRoute`
  * Added `setDefaultRouteStopIcon` to `MPDirectionsRenderer`
  * Added optional `stopIcons: Map<number, RouteStopIconConfig>` to `MPDirectionsRenderer.setRoute`
  * Added `MPRouteStopIconConfig` for changing the look of the default stop icons
  * Added `ordered_stop_indexes` to `MPRoute`
  * Added `legStartReason`, `legEndReason` and `stopIndex` to `MPRouteLeg`

#### Updated

* Updated iOS SDK to 4.4.0
* Updated Android SDK to 4.8.1
* Updated Android Mapbox SDK to 10.17.1

#### Fixed

* Fixed zoom not being applied when changing camera with a `MPCameraPosition` on Mapbox iOS

### \[1.2.1] 2024-05-03

#### Changed

* Upped the minimum version requirement for iOS to 14.

#### Updated

* Updated iOS SDK to 4.3.9
* Updated Android SDK to 4.6.0

#### Fixed

* Fixed an issue with the privacy manifest not allowing release of apps on app store

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixes from updates to native SDKs

### \[1.2.0] 2024-04-29

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated iOS SDK to 4.3.9
* Updated Android SDK to 4.6.0

#### Added[​](https://docs.mapsindoors.com/changelogs/react-native#added) <a href="#added" id="added"></a>

* New optional list of strings, with venue id's on `load`. For optional venue loading.
* New methods to support optional venue loading.
  * `addVenuesToSync(venues: string[])`
  * `removeVenuesToSync(venues: string[])`
  * `getSyncedVenues(): Promise<string[]>`
* The MapsIndoors iOS SDK now includes a Privacy Manifest as described by Apple in Upcoming third-party SDK requirements. This also includes an update to the Mapbox 10.17.0 that includes a fix to the privacy manifest of Mapbox.

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixes from updates to native SDKs

### \[1.2.0] 2024-04-29

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated iOS SDK to 4.3.9
* Updated Android SDK to 4.6.0

#### Added[​](https://docs.mapsindoors.com/changelogs/react-native#added) <a href="#added" id="added"></a>

* New optional list of strings, with venue id's on `load`. For optional venue loading.
* New methods to support optional venue loading.
  * `addVenuesToSync(venues: string[])`
  * `removeVenuesToSync(venues: string[])`
  * `getSyncedVenues(): Promise<string[]>`
* The MapsIndoors iOS SDK now includes a Privacy Manifest as described by Apple in Upcoming third-party SDK requirements. This also includes an update to the Mapbox 10.17.0 that includes a fix to the privacy manifest of Mapbox.

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixes from updates to native SDKs

### \[1.1.0] 2024-02-15

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated iOS SDK to 4.3.2
* Updated Android SDK to 4.3.1
* New default rendering of selection. Can be reverted by changing `isNewSelection` to `false`

#### Added[​](https://docs.mapsindoors.com/changelogs/react-native#added) <a href="#added" id="added"></a>

* Exclude highway support
* Select/highlight support with new DisplayRule settings
  * iconScale
  * iconPlacement
  * labelType
  * polygonLightnessFactor
  * wallLightnessFactor
  * extrusionLightnessFactor
  * labelStyleTextSize
  * labelStyleTextColor
  * labelStyleTextOpacity
  * labelStyleHaloOpacity
  * labelStyleHaloWidth
  * labelStyleHaloBlur
  * labelStyleBearing
  * badgeVisible
  * badgeZoomFrom
  * badgeZoomTo
  * badgeRadius
  * badgeStrokeWidth
  * badgeStrokeColor
  * badgeFillColor
  * badgePosition
* Support for non-selectable locations
* Support for flat labels

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Issue where compass would not show up on Mapbox for iOS
* Fixes from updates to native SDKs

### \[1.0.9] 2024-01-04

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Issue where subsequent maps would not be able to draw a route on iOS

### \[1.0.8] 2023-12-19[​](https://docs.mapsindoors.com/changelogs/react-native#103-2023-12-19) <a href="#id-106-2023-12-19" id="id-106-2023-12-19"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated iOS SDK to 4.2.13
* Updated Android SDK to 4.2.8

### \[1.0.7] 2023-12-08[​](https://docs.mapsindoors.com/changelogs/react-native#103-2023-12-08) <a href="#id-106-2023-12-08" id="id-106-2023-12-08"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated iOS SDK to 4.2.12

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Improved camera padding behavior

### \[1.0.6] 2023-11-24[​](https://docs.mapsindoors.com/changelogs/react-native#105-2023-11-24) <a href="#id-105-2023-11-24" id="id-105-2023-11-24"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated Android SDK to 4.2.6
* Updated iOS SDK to 4.2.10

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixed case where tiles would not show up after loading the map on iOS
* Fixed an issue with route legs missing geometries for steps on iOS

### \[1.0.4] 2023-10-08[​](https://docs.mapsindoors.com/changelogs/react-native#104-2023-10-08) <a href="#id-104-2023-10-08" id="id-104-2023-10-08"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated Android SDK to 4.2.3
* Updated iOS SDK to 4.2.6
* Changed setLabelOptions to have optional parameters

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixed issue with showRouteLegButtons not working on iOS

### \[1.0.3] 2023-09-25[​](https://docs.mapsindoors.com/changelogs/react-native#103-2023-09-25) <a href="#id-103-2023-09-25" id="id-103-2023-09-25"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed) <a href="#changed" id="changed"></a>

* Updated Android SDK to 4.2.2
* Updated iOS SDK to 4.2.5

#### Added[​](https://docs.mapsindoors.com/changelogs/react-native#added) <a href="#added" id="added"></a>

* Added support for hiding route leg buttons
* Added support for setting label textsize, color and halo

### \[1.0.2] 2023-09-04[​](https://docs.mapsindoors.com/changelogs/react-native#102-2023-09-04) <a href="#id-102-2023-09-04" id="id-102-2023-09-04"></a>

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed-1) <a href="#changed-1" id="changed-1"></a>

* Updated Android SDK to 4.1.11
* Updated iOS SDK to 4.2.4

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed) <a href="#fixed" id="fixed"></a>

* Fixed issue with abutters on MPRouteStep missing on iOS
* Fixed issue with highways on MPRouteStep missing on iOS
* Fixed issue with HTML instructions and Manoeuvre contradicting each other on MPRoutestep

### \[1.0.1][​](https://docs.mapsindoors.com/changelogs/react-native#101) <a href="#id-101" id="id-101"></a>

#### Added[​](https://docs.mapsindoors.com/changelogs/react-native#added-1) <a href="#added-1" id="added-1"></a>

* iOS now has working cameraEvents

#### Changed[​](https://docs.mapsindoors.com/changelogs/react-native#changed-2) <a href="#changed-2" id="changed-2"></a>

* Updated Android SDK to 4.1.10
* Updated iOS SDK to 4.2.2

#### Fixed[​](https://docs.mapsindoors.com/changelogs/react-native#fixed-1) <a href="#fixed-1" id="fixed-1"></a>

* Fixed Crash when switching between legs of a route on iOS
* Fixed Crash when calling animateCamera on iOS
* Fixed Parsing issues on some geometries from native code

### \[1.0.0][​](https://docs.mapsindoors.com/changelogs/react-native#100) <a href="#id-100" id="id-100"></a>

* Full release, you can find the packages available on nmpjs: [google maps](https://www.npmjs.com/package/@mapsindoors/react-native-maps-indoors-google-maps), [mapbox](https://www.npmjs.com/package/@mapsindoors/react-native-maps-indoors-mapbox)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mapsindoors.com/other/changelog/react-native-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
