V4
[4.9.1] 2024-12-18
Fixed
Fixed a crash that could occur when checking if a location has a badge assigned to it
Fixed a rare runtime exception on Google Maps when rendering a new marker
[4.9.0] 2024-11-25
Changed
New default positioning of labels relative to the icon is
MPLabelPosition.BOTTOM
. If you want to keep the previous default ofMPLabelPosition.RIGHT
you can place the following line in your code after loadingMapsIndoors
:MapsIndoors.getMainDisplayRule()?.labelStylePosition = MPLabelPosition.RIGHT
Added
MPDisplayRule
getLabelStylePosition: MPLabelPosition?
returns the LabelPosition of the DisplayRulesetLabelStylePosition(position: MPLabelPosition?)
sets the LabelPosition for the DisplayRule
MPLabelPosition
Enum representing the different places the label can be anchored to the MarkerLEFT
TOP
BOTTOM
RIGHT
[4.8.13] 2024-11-14
Fixed
Fixed issue where
moveCamera: boolean
onMPSelectionBehavior
was not respected when set to falseFixed issue where an incorrect marker would show on google maps
Fixed issue where the info window would not appear on Mapbox
[4.8.12] 2024-10-28
Fixed
Fixed memory leaks that would cause an
OutOfMemoryException
if the SDK was reloaded multiple timesFixed a crash that could occur when the SDK was unloading 3D model data
[4.8.11] 2024-10-10
Fixed
Fixed an issue where collision detection was not working on mapbox-11
Fixed a crash when loading with optional venues
[4.8.10] 2024-10-08
Changed
Improved Mapbox rendering when the map becomes idle
MapControl
will no longer remove custom floor selectors, this allows for reusing it across multipleMapControl
s, but it is now the developers responsibility to dispose of the viewImproved SDK loading speed by deferring some data downloads
Fixed
Fixed rare crash where image was not downloaded correctly
Fixed issue where adding
externalId
manually to search criteria would cause the search to show no resultsFixed rare stack overflow crash that could occur when switching floors
[4.8.9] 2024-08-21
Fixed
Fixed issue where 2D Models without a size would stop rendering when in view
Fixed issue where flat labels were occluded by other features on the map
Fixed issue with rendering zoom intervals not being respected when above 22
Fixed issue where iconScale would not be respected when changed during runtime
[4.8.8] 2024-08-21
Fixed
Fixed visual bug in
MPDefaultFloorSelector
when using manual floor selectionFixed excessive logging of liveData events
Fixed NPE that would occur when setting a new style with
MapControl.setMapStyle
Fixed issue where some Mapbox features would be displayed incorrectly until the map was moved for the first time
Fixed rare issue where tapping on a location could result in a crash
[4.8.7] 2024-07-25
Fixed
Fixed rare crash when clearing the map while using Google Maps
Fixed issue where locations with only 3D features (no icon, geometry, etc.) would not be properly visible
Fixed issue where the default floor for the venue would not be set when using
automatic
floor selection.
[4.8.6] 2024-06-26
Added
Added
String
color setter toMPRouteStopIconConfig
Added
showRoadLabels?: boolean
toMPMapConfig
on MapboxSets whether the Mapbox Road labels should be shown on the map. If left undefined, it follows the transition level.
Changed
Relaxed
HashMap
requirement when addingMPRouteStopIconProviders
toMPDirectionsRenderer
, now the collection only needs to adhere to theMap
interface
Fixed
Fixed padding issue with graphic labels
Fixed possible crash when receiving route results
Fixed crash that could occur when clicking on a MapsIndoors geometry
Fixed crash that could occur when setting a location filter multiple tiles
[4.8.5] 2024-06-12
Fixed
Fixed crash that happens when loading a Google Maps map
Fixed a stack overflow that could occur when panning over a venue
Fixed a rare crash that could occur when the app's configuration changes
[4.8.4] 2024-06-07
Fixed
Fixed crash experienced when using the SDK with React Native Expo Go
[4.8.3] 2024-05-31
Fixed
Removed references to Model3D in Mapbox v10 codebase that caused crashes when used
[4.8.2] 2024-05-30
Added
Get/Set for
MPLocationSettings
onMPLocation
andMPPOIType
Fixed
Fixed floor selector not being scrollable on Mapbox
Fixed a possible crash, when receiving position updates
Fixed a possible crash, when receiving image for graphic labels
[4.8.1] 2024-05-24
Fixed
Fixed issue with changing icons on Selection and Highlight Display Rules, when not using a URL
[4.8.0] 2024-05-22
Added
Support for Multi-stop navigation
MPDirectionsService.query(from: MPPoint, to: MPPoint, stops: List<MPPoint>?, optimize: Boolean)
For getting a route between multiple stops, optimized or not.MPDirectionsRenderer.defaultStopIcon
Default icon shown for stops. Can be overwrittenMPDirectionsRenderer.setRoute(route: MPRoute, icons: HashMap<Integer,MPRouteStopIconProvider>?)
for overwriting stop icons on specific stopsMPRouteStopIconProvider
interface, for custom implementations of stop iconsMPRouteStopIconConfig.Builder
Icon config, used for a convenient customisation of default stop iconsetColor
Sets the inner color of the pinsetNumbered
Wether the pin should have a number indicating the order of the stopsetLabel
Sets a label underneath the pin, describing the stop
Fixed
Issue when deserialising Graphic Labels
[4.7.3] 2024-05-06
Fixed
Fixed issue where the animated route line is not shown after the first leg on Mapbox
Fixed issue where not having a fullscreen map could result in weird map behavior on Mapbox
[4.7.2] 2024-05-03
Fixed
Fixed the issue with the route not being completely cleared on Mapbox when calling
mpDirectionsRenderer.clear()
[4.7.1] 2024-05-02
Fixed
Fixed issue with route not clearing on Mapbox.
[4.7.0-hotfix.1] 2024-05-01
This is a hotfix for the com.mapspeople.mapsindoors:mapbox
package only.
Fixed
Fixed rendering order for POIs, Walls, Extrusions and Graphic Labels
[4.7.0] 2024-04-30
Added
Added Graphic Label support for SDKs running on Mapbox
See a guide on how to use these new labels on Android here
Added ability to disable camera movement when using MPDirectionsRenderer
Set the
MPCameraViewFitMode
toNONE
withmpDirectionsRenderer.setCameraViewFitMode
to disable camera movement when rendering the route
[4.6.0] 2024-04-18
Added
Mapbox 11 support
With Mapbox 11 we also introduce 3D models on the Android apps
Mapbox 11 is optional for MapsIndoors v4, to opt-in you have to use the mapbox-v11 package:
implementation "com.mapspeople.mapsindoors:mapbox-v11:4.6.0"
We recommend to start with Mapbox 11.3.0
The default package will continue to use Mapbox 10
Added support for hiding/showing features to Mapbox 11
This includes:
2D models
2D walls
3D models
3D walls
3D Extrusions
3D Extruded Buildings
Hiding features can be done programmatically with
mapControl.setHiddenFeatures(List<MPFeature>)
[4.5.0] 2024-04-15
Added
Added ability to disable automatic building and floor selection select
This disables all automatic behavior, giving full control to the developer for when the building selection or floor is changed.
It can be disabled in the
MPMapConfig
when setting upMapControl
, or during runtime directly onMapControl
withsetBuildingSelectionMode(MPSelectionMode)
andsetFloorSelectionMode(MPSelectionMode)
Changed
Laxed nullability requirements for
MapControl
'sselectVenue(MPVenue, boolean)
andselectBuilding(MPBuilding, boolean)
to now allow for nulls which will deselect instead
Fixed
Fixed issue where changing icon on a Display Rule would not have any effect
Fixed issue where changing icon size on a Display Rule would not have any effect
Fixed issue where icons would be improperly scaled, resulting in the icons becoming blurry
Fixed a number of minor crashes
[4.4.1] 2024-03-20
Fixed
Fixed crash when live data was enabled
Fixed a dependency issue on the Mapbox version
[4.4.0] 2024-03-07
Added
Added optional venue loading, use
MapsIndoors.load(context, apikey, venueIds, listener)
to load a specific set of venuesVenues can be added and removed from load at any time by using
MapsIndoors.addVenueToSync(venueId)
andMapsIndoors.removeVenueToSync(venueId)
Track the status of venues by adding a listener with
MapsIndoors.addOnVenueStatusChangedListener(MPVenueStatusListener)
Fixed
Fixed issue where google map markers would show up briefly before being replaced by actual icons
Fixed issue where 2d models would become unclickable on Google Maps
Fixed issue where having very large images or text would result in an OpenGL crash on Google Maps
Fixed issue where 2d models would have inaccurate hitbox on Mapbox
[4.3.4] 2024-02-26
Fixed
Issue where a crash could happen when rendering an icon
Issue where a route could be requested incorrectly on a oneway path, causing no route to be received
[4.3.3] 2024-02-23
Fixed
Fixed issue where language initialization would fail and crash
Fixed issue where if some data was parsed wrong would result in a crash
[4.3.2] 2024-02-22
Changed
Improved initial rendering of polygons on Google Maps
Fixed
Crash that could occur loading data from storage
Crash that could occur when selecting a location on Mapbox
Fixed line breaking on Mapbox to be more consistent with other platforms
[4.3.1] 2024-02-15
Changed
Map click selection now only happens when features are in the visible range
Added
getLocationSettings
onMPLocation
,MPPOItype
andMPSolutionConfig
Support for non-selectable locations
Fixed
Issue where setting null value on some displayrule values would cause a crash
Labels potentially being too close to icons on Google Maps
Unlocked zoom being capped at zoom level 22 on Mapbox
Geometries missing when locations are clustered
Extrusions not being clickable
Text font and letterspacing being inconsistent with other platforms
[4.3.0] 2024-01-24
Changed
Changed the default rendering of selected Locations.
Added
Added
setHighlight
andclearHighlight
toMapControl
which allows you to highlight a list of locationsAdded
setNewSelection
toMPSolutionConfig
this allows you to change back to the selection rendering of the previous SDK versions. Default is trueAdded new values to MPDisplayRule
iconScale
iconPlacement
labelType
polygonLightnessFactor
wallLightnessFactor
extrusionLightnessFactor
labelStyleTextSize
labelStyleTextColor
labelStyleTextOpacity
labelStyleHaloOpacity
labelStyleHaloWidth
labelStyleHaloBlur
labelStyleBearing
badgeVisible
badgeZoomFrom
badgeZoomTo
badgeRadius
badgeStrokeWidth
badgeStrokeColor
badgeFillColor
badgePosition
Added
addExcludeWayType
,clearExcludeWayType
toMPDirectionsService
to allow the user to exclude specificMPHighway
's when querying for a route.Added two new
MPSolutionDisplayRule
'sSELECTION
andHIGHLIGHT
that allows you to modify the look of highlighted and selected Locations.Support for Flat labels (on Mapbox)
Fixed
Fixed an issue where user could end up selecting floors with map clicks
Fixed an issue with
avoidWayType
not respecting allMPHighway
Deprecated
clearWayType
useclearAvoidWayType
insteadsetMapLabelFont(typeface, color, showHalo)
usesetMapLabelFont(typeface)
instead. For changing Colors etc. use the DisplayRule instead.setMapLabelTextSize
useMPDisplayRule.setLabelStyleTextSize
instead
[4.2.12] 2024-01-16
Fixed
Fixed an edge case where Directions outside Venues would not be possible on Google Maps
[4.2.11] 2024-01-11
Fixed
Fixed issue where
MapControl
would crash with google maps, when callingonDestroy
[4.2.10] 2024-01-08
Changed
Updated loading logic for Mapbox rendering, which will in some cases give a significant increase in rendering responsiveness.
Fixed
Fixed issue where marker icons could crash if the icon disappeared before rendering
Fixed NPE when calling
MapControl.setMapPadding
Fixed possible NPE when getting
tilesUrl
from aMPVenue
[4.2.9] 2023-12-21
Fixed
Fixed issue where removing/adding a
MPCameraEventListener
during the callback from aMPCameraEventListener
could result in a crash.Fixed issue where 2D models could cause a crash.
[4.2.8] 2023-12-15
Fixed
Fixed issue where initializing
MapControl
could result in the initial tileset not being visible.Fixed issue where reloading
MapControl
would result in theOnMapClickListener
not working properly.
[4.2.7] 2023-12-14
Fixed
Fixed issue where locations would use the wrong zoom level when using Mapbox
Fixed issue where clicking on a custom
Marker
on Google Maps could result in a crashFixed issue where setting a
MPCameraEventListener
could result in a crashFixed issue where Google Maps would spam the log with messages about missing tiles.
[4.2.6] 2023-11-16
Fixed
Fixed issue where polygon display rules would not be applied on Google Maps.
Fixed issue where the render thread would exclusively draw to a single instance of
MapControl
.Fixed issue where
goTo
would use wrong data from some entities, setting the floor index toNO_FLOOR_INDEX
in those cases.Fixed issue where cached data check could fail, when all data is available.
[4.2.5] 2023-10-20
Fixed
Fixed a crash on google external directions
[4.2.4] 2023-10-17
Changed
The SDK now targets Android 14 (API level 34)
Fixed
Fixed a crash that could occur when shutting down the SDK
[4.2.3] 2023-10-10
Fixed
Fixed issue where the disk cache would be accessed after it was closed
Fixed issue where tapping on the map and moving it in quick succession could result in a crash
Fixed race condition where the DataSetCacheManager was sometimes initialized too late
Fixed issue where icons could be null when handed over to google maps
Fixed rare NPE when selecting a location
[4.2.2] 2023-09-22
Fixed
Fixed issue where the
disk cache
would be accessed after it was closedFixed issue where tapping on the map and moving it in quick succession could result in a crash
Fixed race condition where the
DataSetCacheManager
was sometimes initialized too lateFixed issue where icons could be null when handed over to google maps
Fixed rare NPE when selecting a location
[4.2.1] 2023-09-21
Fixed
Fixed multiple rendering and cache related crashes
[4.2.0] 2023-09-20
Added
Added functionality to respect the building outline
display rule
set in the CMSAdded functionality to show floor plans
Added functionality to remove route leg buttons from the map
Use
MPDirectionsRenderer
to callshowRouteLegButtons(boolean)
Removed
3D models
are still experimental, and will not be included in this release
Fixed
Fixed label text color and halo options not being respected when using mapbox
Fixed build issue where some classes had their methods transformed to be final
Fixed issue where a location's position sometimes was moved unintentionally
[4.1.11] 2023-08-24
Fixed
Fixed issue where tapping on moving livedata would move the camera to the location's original position
Fixed issue where setting a position provider with existing position data would not show a puck until new position data became available
Fixed issue where setting a different language than the default language could cause the map to not load
Fixed issue where reloading the SDK would set a different language than the first load
Fixed issue where reloading the SDK rapidly multiple times would cause crashes
[4.1.10] 2023-08-02
Changed
Updated Display Rule validation to only throw when developer mode is enabled (it can be enabled by calling
MPDebugLog.enableDeveloperMode(true)
)Additionally, validation will now give more usable error messages
Fixed
Fixed issue where setting departure time to the current time would fail route creation when using Google Maps in some cases
[4.1.9] 2023-07-24
Changed
External routes will now respect the language set in the SDK
The SDK now supports zoom levels beyond 22 where applicable
Fixed
Fixed rare issue where SDK would attempt to update a dead marker resulting in a crash
[4.2.0-beta.1] 2023-06-28
Added
Added support for 3D models
[4.1.8] 2023-06-28
Fixed
Fixed issue where setting departure time on a route would cause the SDK to crash
Fixed issue where loading the SDK offline could cause a crash
Fixed issue where route line would be obscured by walls and extrusion when using Mapbox
[4.1.7] 2023-06-23
Fixed
Fixed timing issues with display rules and applying UserRoles
Fixed issue where a rendered route would be obscured
[4.1.6] 2023-06-02
Fixed
Fixed compilation issues, due to a build configuration
[4.1.5] 2023-06-01
Fixed
Fixed crashes happening when loading new solutions while a load is ongoing
[4.1.4] 2023-05-25
Changed
Updated Mapbox version to 10.13.0
Fixed
Fixed issue where MapsIndoors could crash when other markers were present on the map
Reduced memory usage of 2D models
Fixed issue where changing solution on the same map would not work
[4.1.3] 2023-05-16
Fixed
Fixed occasional crashes when destroying MapsIndoors
Fixed occasional crash when selecting location after load
[4.1.2] 2023-05-11
Fixed
Fixed map padding not being applied to camera movement when using Mapbox
Fixed delay when selecting a location until its info window appeared on Mapbox
Fixed
selectLocation
not moving the camera when the location was outside the viewportFixed crash that could occur when Mapbox can not generate a route
Fixed issue where large areas were not being shown on Google Maps
Fixed issue where SDK would crash if solution data is unavailable remotely, but the local cache data stored
Fixed issue where location display rules would receive a unidentifiable name/id
[4.1.1] 2023-03-09
Changed
Made
MPMapBehavior
JSON serializable, and its getters publicUpdated MapsPeople watermark
Fixed
Fixed rare case where the SDK would load successfully but still crash
Fixed being unable to get
MPSolutionDisplayRule
s by nameFixed issue where tiles would not update when switching floors
[4.1.0] 2023-02-21
Deprecated
Deprecated
MPBuilding.getInitialZIndex()
and addedgetInitialFloorIndex()
to replace itDeprecated
MPBuilding.getFloorByZIndex()
and addedgetFloorByIndex
to replace itDeprecated
MPDataSetCache.setScope(Context, MPDataSetCacheScope)
and added `setScope(MPDataSetCacheScope) to replace itDeprecated
MPDataSetCacheItem.getCacheSize(Context)
and addedgetCacheSize()
to replace itDeprecated
MPDirectionsService(Context)
CTOR and addedMPDirectionsService()
to replace itDeprecated
MPFloor.getZIndex()
and addedgetFloorIndex
to replace itDeprecated
MPFloor.setZIndex()
and addedsetFloorIndex
to replace itDeprecated
MPRouteCoordinate.getZIndex()
and addedgetFloorIndex
to replace itDeprecated
MPRouteCoordinate.setZIndex()
and addedsetFloorIndex
to replace itDeprecated
MPSolutionInfo
as it duplicates information fromMPSolution
Fixed
Fixed
ANY_DOMAIN
livedata domain not having any effectFixed rare issue where collision between markers could cause a crash
Fixed issue where setting some listeners could cause a crash
Fixed reference documentation around
MPVenue.getName()
, see the migration guide for more informationVarious fixes and improvements
[4.0.5] 2023-01-26
Added
Added Extension functions for converters, these are usable from kotlin projects
Fixed
Fixed issue where SDK would try to use destroyed context to access files directory
Fixed
MPSelectionBehavior
andMPFilterBehavior
super classMPMapBehavior
not being publicFixed a number of memory leaks
[4.0.4] 2023-01-17
Fixed
Fixed issue with the livedata SDK where subscribing to some domains would subscribe to multiple domains instead
Fixed issue where
MPApiKeyValidator
would send multiple errors instead of just oneFixed issue where the SDK would update UI elements on non-main thread
Fixed memory leaks where the map view was leaked
[4.0.3] 2023-01-05
Added
Added factory methods
fromValue(int)
andfromStringValue(String)
toMPCollisionHandling
Added
removeOnFloorUpdateListener(OnFloorUpdateListener)
toMapControl
Added
isInside(MPLatLng)
method toMPGeometry
Deprecated
Deprecated
getCurrentStyle()
andsetCurrentStyle(String)
inMPFloor
Fixed
Fixed issue where main and solution type rules could not be fetched by name
Fixed issue where SDK would crash during startup
Fixed issue where giving
MPPoint
s with no floorIndexes toMPDirectionsService
would result in bugged routesFixed issue when generating
MPPolygonGeometry
fromMPMultiPolygonGeometry
Fixed memory leak where the SDK would hold onto the maps
FrameLayout
Fixed issues that could occur if the SDK is shut down during startup
[4.0.2] 2022-11-02[]
Added
Added Reverse Geocoding interface
It can be used to fetch mapsindoors data from a given geographical coordinate
Added ability to use a
Context
when building aMPMapConfig
, instead of anActivity
Fixed
Fixed 2D model rendering related issues
Fixed Live Data badges in some cases overlapping the icon or label
Fixed issue with Main Display Rule not being respected in some instances
Fixed race-condition crash that could occur on Google Maps
[4.0.1] 2022-10-18
Added
Added
getLocationsByExternalIds
toMapsIndoors
This can be used to get a list of locations based on a corresponding list of external ids
Exposed layer names on Mapbox implementation, allowing custom layers to be inserted between
MapsIndoors
layersThe list of layers can be accessed from the
MPLayers
class
Fixed
Fixed issue with display rule inheritance from the main display rule
Fixed memory issue that could occur when loading a large amount of 2D models
Various minor fixes
[4.0.0] 2022-09-29
Added
Support for new map providers
Mapbox
MapsIndoors can now be packaged with the Mapbox v10 SDK
2D Model support
The Android SDK is now capable of displaying 2D Models (also known as Ground Overlays)
goTo()
A new method for moving the camera to MapsIndoors locations, this new method
goTo()
can be used with any class that implementsMPEntity
, which includes but is not limited toMPLocation
,MPFloor
, andMPBuilding
Solution Config
The Android SDK now supports the Solution Config
This also introduces the new Main Display Rule, which is bundled into the solution config, along with collision handling, clustering and 3D (walls and extrusions) opacity
Changed
Maven package changes
With the move to supporting multiple map platforms, we had to move some stuff around in the package, the SDK can now be downloaded via these maven dependencies
'com.mapspeople.mapsindoors:googlemaps:4.0.0'
'com.mapspeople.mapsindoors:mapbox:4.0.0'
Naming convention
All public classes now has a MP prefix, with the exemption of MapControl, MapsIndoors and some listeners
New interfaces will use the MPI prefix
Some public classes will have a
[INTERNAL]
at the top of their javadoc, these classes are used for communication between the core SDK and map platform specific code. Refrain from using these classes unless you know what you are doing
Display Rules
Display rules have been reworked completely
It has been reduced to a single class MPDisplayRule
It is now reference based, thus any changes to the rule are instantaneous
MPDisplayRuleOptions
has been added and is used to bulk edit display rulesDisplay rules can be reset with
reset()
this will return the display rule to the state it has in the CMS
Display search results
Has been renamed to
setFilter()
, and have been reworked completelyNow takes a
MPFilterBehavior
, which is used to dictate the behavior of the filter on the map
Selection
Selection, like filtering, has improved, it now uses a
MPSelectionBehavior
which is used to dictate the behavior of the selection on the map
Initialization (MapsIndoors and MapControl)
Now
MapsIndoors
is initialized with theload(appContext, APIKey, listener)
method. This applies to both initial initialization, and when updating the context or API keyMapControl
no longer has a public constructor and initializer method, it now uses a factory methodcreate(MPMapConfig, onMapControlReady)
The
onMapControlReady
listener will wait for MapControl to finish initializing, this guarantees thatMapControl
cannot be aquired in a broken stateThe
MPMapConfig
is a collection of settings that previously had to be set on MapControl at various stages of initialization to take effect. These are now bundled into a single package that take effect whenMapControl
finishes initializingThese settings can still be updated individually at runtime
Routing
MPRoutingProvider
has been renamed toMPDirectionsService
to align with other platformsMPDirectionsRenderer
has been simplified in use, after creationMPDirectionsRenderer(MapControl)
,setRoute(MPRoute)
can be called and it will display the route on the map
Clustering and Collision handling has been moved from
MPAppConfig
toMPSolutionConfig
, and have recieved proper typing, Collision handling is now defined by an enumMPCollisionHandling
Collision handling now has multiple states that allow for better control of how markers are shown on the map
Removed
The MPPositionProvider interface has been reduced to 3 methods thare are essential for interfacing a position provider with the SDK
A large amount of unused/unwanted/unusable classes have been removed from the SDK
Fixed
Optimized memory management of icons
Display rules are now applied much more consistently
Last updated