createOfflineMapModel static method

Future<MapModel> createOfflineMapModel({
  1. String renderthemeFilename = "assets/defaultrender.xml",
  2. required Datastore datastore,
  3. ZoomlevelRange zoomlevelRange = const ZoomlevelRange.standard(),
})

A helper function to create a mapModel from a mapfile. Note that the mapModel must be disposed after use.

Implementation

static Future<MapModel> createOfflineMapModel({
  String renderthemeFilename = "assets/defaultrender.xml",
  required Datastore datastore,
  ZoomlevelRange zoomlevelRange = const ZoomlevelRange.standard(),
}) async {
  // Read the rendertheme from the assets folder.
  String renderthemeString = await rootBundle.loadString(renderthemeFilename);
  Rendertheme rendertheme = RenderThemeBuilder.createFromString(renderthemeString.toString());

  // The renderer converts the compressed data from mapfile to images. The rendertheme defines how the data should be rendered (size, colors, etc).
  DatastoreRenderer renderer = DatastoreRenderer(datastore, rendertheme);
  // Now instantiate our mapModel with the desired parameters. Our map does not support zoomlevel beyond 21 so restrict the zoomlevel range.
  MapModel mapModel = MapModel(renderer: renderer, zoomlevelRange: zoomlevelRange);
  return mapModel;
}