[OpenLayers-Users] Re: Render whole OpenLayers map to canvas
Ben Bucksch
linux.news at bucksch.org
Sat Mar 24 17:09:26 EDT 2012
Maybe I should expand:
I need to render a certain map area (random polygon, e.g. a park, part
of the city, or whatever) into a given paper size (e.g. A5 landscape).
I already have that implemented, with a map on a webpage, and setting
the boundary on the max/min lat/lon values of the polygon. However, I
have the following problems:
1) Because the polygon may be large, the zoom level chosen may be low,
so the map omits street names, but I absolutely need all street names.
Printing has 600+ dpi, so it should be fine.
2) OpenLayers calculates with the 100dpi of the screen, and choses the
zoom level accordingly, but the printer has 600dpi, and the curved
street names look pixelish coarse, ugly and barely readable.
3) the zoom levels are in fixed steps, so the resulting map has a lot of
unneeded area around the area I actually want. The size is given, so the
wanted area is unnecessarily small.
4) the wanted area is not necessarily parallel to lat/lon axis, so if I
have an area that's high, and a paper that's wide, there's even more
unused space left and right.
Unless somebody has a better suggestion (that involves only OpenLayers,
not any server), I am thinking of the following approach:
1. Let OpenLayers render the map (the whole map, not just one vector
layer) into an off-screen <canvas> element, and make a bitmap of it.
2. Set the zoom level to a certain minimum (e.g. 17), where all street
names are shown. The result would be a map that is huge, but it's in
a bitmap, not on the webpage.
3. Given the shape of the polygon, I rotate the bitmap so that the
polygon uses as much of the available print rectangle (e.g. 20:15)
as possible.
4. Scale down the (rotated) bitmap so that I end up with one that has
20x15 cm at 600 dpi (= 236 dots per cm) = 4720x3540 px
I think I could do step 3. and 4., but I don't know how to do 1. (and 2).
Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20120324/2997097c/attachment.html
More information about the Users
mailing list