It would likely be more performant if the map view was a single canvas and panning, segmentation and so on was done in a buffer and rendered to the canvas by blitting the pre-rendered sections, or something along those lines. Maybe even rendering the sections to WebGL textures and using a WebGL context for the canvas.