write method
Writes the mapfile to the given sink. @param maxDeviationPixel The maximum deviation in pixels if we need to simplify a polygon because only 32767 points are supported in a polygon.
Implementation
Future<void> write(double maxDeviationPixel, int instanceCount) async {
//createSubfiles();
assert(subfileCreators.isNotEmpty);
// assert(poiTags.isNotEmpty || wayTags.isNotEmpty);
Writebuffer writebuffer = Writebuffer();
for (SubfileCreator subfileCreator in subfileCreators) {
subfileCreator.analyze(poiTags, wayTags, mapHeaderInfo.languagesPreference);
}
_writeTags(writebuffer, poiTags);
_writeTags(writebuffer, wayTags);
MapfileHeaderWriter mapfileHeaderWriter = MapfileHeaderWriter(mapHeaderInfo);
Writebuffer writebufferHeader = mapfileHeaderWriter.write(writebuffer.length + 1 + 19 * subfileCreators.length);
for (SubfileCreator subfileCreator in subfileCreators) {
await subfileCreator.prepareTiles(mapHeaderInfo.debugFile, maxDeviationPixel, instanceCount);
}
// amount of zoom intervals
writebuffer.appendInt1(subfileCreators.length);
await _writeZoomIntervalConfiguration(writebuffer, writebufferHeader.length + writebuffer.length + 19 * subfileCreators.length);
writebufferHeader.appendWritebuffer(writebuffer);
writebufferHeader.writeToSink(_sink);
for (SubfileCreator subfileCreator in subfileCreators) {
// for each subfile, write the tile index header and entries
Writebuffer writebuffer = subfileCreator.writeTileIndex(mapHeaderInfo.debugFile);
writebuffer.writeToSink(_sink);
await subfileCreator.writeTiles(mapHeaderInfo.debugFile, _sink);
subfileCreator.dispose();
}
}