addPersistentStyleLayer method

Future<void> addPersistentStyleLayer(
  1. String properties,
  2. LayerPosition? layerPosition
)

Adds a new style layer.

Whenever a new style is being parsed and currently used style has persistent layers, an engine will try to do following:

  • keep the persistent layer at its relative position
  • keep the source used by a persistent layer
  • keep images added through addStyleImage method

In cases when a new style has the same layer, source or image resource, style's resources would be used instead and MapLoadingError event will be emitted.

@param properties A map of style layer properties. @param layerPosition If not empty, the new layer will be positioned according to layer position parameters.

@return A string describing an error if the operation was not successful, or empty otherwise.

Implementation

Future<void> addPersistentStyleLayer(
    String properties, LayerPosition? layerPosition) async {
  final String pigeonVar_channelName =
      'dev.flutter.pigeon.mapbox_maps_flutter.StyleManager.addPersistentStyleLayer$pigeonVar_messageChannelSuffix';
  final BasicMessageChannel<Object?> pigeonVar_channel =
      BasicMessageChannel<Object?>(
    pigeonVar_channelName,
    pigeonChannelCodec,
    binaryMessenger: pigeonVar_binaryMessenger,
  );
  final List<Object?>? pigeonVar_replyList = await pigeonVar_channel
      .send(<Object?>[properties, layerPosition]) as List<Object?>?;
  if (pigeonVar_replyList == null) {
    throw _createConnectionError(pigeonVar_channelName);
  } else if (pigeonVar_replyList.length > 1) {
    throw PlatformException(
      code: pigeonVar_replyList[0]! as String,
      message: pigeonVar_replyList[1] as String?,
      details: pigeonVar_replyList[2],
    );
  } else {
    return;
  }
}