write method
Writes the complete map file structure to the file sink.
instanceCount is the number of parallel instances to use for tile processing.
Implementation
Future<void> write(int instanceCount) async {
//createSubfiles();
assert(subfiles.isNotEmpty);
// assert(poiTags.isNotEmpty || wayTags.isNotEmpty);
List<String> languagesPreferences = [];
if (mapHeaderInfo.languagesPreference != null) languagesPreferences.addAll(mapHeaderInfo.languagesPreference!.split(","));
Writebuffer writebuffer = Writebuffer();
_writePoiTags(writebuffer);
_writeWayTags(writebuffer);
MapfileHeaderWriter mapfileHeaderWriter = MapfileHeaderWriter(mapHeaderInfo);
Writebuffer writebufferHeader = mapfileHeaderWriter.write(writebuffer.length + 1 + 19 * subfiles.length);
// amount of zoom intervals
writebuffer.appendInt1(subfiles.length);
// this takes a looong time
await _writeZoomIntervalConfiguration(writebuffer, writebufferHeader.length + writebuffer.length + 19 * subfiles.length, instanceCount);
writebufferHeader.appendWritebuffer(writebuffer);
writebufferHeader.writeToSink(_sink);
writebuffer.clear();
writebufferHeader.clear();
for (Subfile subfile in subfiles) {
// for each subfile, write the tile index header and entries
Writebuffer writebuffer = subfile.writeTileIndex(mapHeaderInfo.debugFile);
writebuffer.writeToSink(_sink);
writebuffer.clear();
await subfile.writeTiles(mapHeaderInfo.debugFile, _sink);
subfile.dispose();
}
}