setFloor method
Sets the current floor to be rendered by the map geometry.
Implementation
Future<void> setFloor(int level, {bool animate = true}) async {
_currentFloor = level;
// Build MapLibre filter expression:
// Show if: (user_ordinal == currentFloor) OR (user_feature_type == 'venue') OR (user_feature_type == 'building')
final filter = [
'any',
['==', ['get', 'user_ordinal'], _currentFloor],
['==', ['get', 'user_feature_type'], 'venue'],
['==', ['get', 'user_feature_type'], 'building']
];
// Apply this filter to all known geometry sources
final sources = controller.geometry.sourceIds;
for(final sourceId in sources) {
await controller.geometry.setLayerFilter(sourceId, filter);
}
}