Experimental: Larger areas supported

So far this service only supported map areas up to about 40×40 kilometers. I for now extended this to 300×300 kilometers.

This is experimental for now, and I may end up rolling this back, at least partially.

The main problem with this change, aside of longer render times, is that this change may lead to out-of-memory errors while processing render requests. This especially seems to affect the compressed SVG output. Problem is that failure to render one output format will make the whole render job fail, even if some other formats could have been rendered just fine.

I had experimented with raising the limit to 1000×1000 kilometers, and tried to render a map of all of Germany with that setting, but with that SVG output failed with out-of-memory errors regardless of paper size, even though PDF output, which also uses vector format, could be created just fine.

Unfortunately an out-of-memory error in the rendering library is not something that can just easily be caught and recovered from using Python exception handlers, so I need to come up with more complicated ways to deal with this.

Rendering the northern part of Germany within the 300×300 kilometer limit works fine, so I’ll keep the 300×300 kilometer setting for now. I have not tested such large maps with other styles than the default OSM one though, so there may still be error situations I’m not aware of.

I will watch the number of out-of-memory failures, and the average render time and render wait queue size closely for the next days or weeks, and may return to the smaller 40×40 kilometer limit if any of these monitor values get too high.

Leave a Reply

Your email address will not be published. Required fields are marked *