The IlvManagerTiler class is a utility class that
renders a map, saved to a specified location on the disk at
different scale levels, as tiled images. These images can be used
to fill the cache of a thin-client server application. Offline tile
generation speeds up the initial response time of the server, as it
does not need to create and cache the images when clients request
them. It increases the server scalability for the same reason.
The first step to generate tiled images for a map is to ensure that
the Thin Client Parameters have been set in the map, see Setting Thin Client Parameters in JViews Maps Using the Map Builder. What the map builder
does is that is to add two
IlvNamedProperty
instances to the map. The names of these properties are defined in
the IlvMapTileGen IlvMapTileGeneratorConstants class as
constants:
- TILE_SIZE_PROPERTY is the name of the property that holds the size of the tiles that will be generated. The size is measure in pixels. An example value is 256 pixels.
- SCALE_LEVELS_PROPERTY PROPERTY is the name of the property that holds an array of
double
values representing the different scales at which the map should be rendered using tiles.
If these parameters are not set in the map, you must specify them
explicitly in the
createTiles()
method call. Then, you must create an
IlvManagerTiler
instance and call the createTiles method with the appropriate
parameters using the following code:
IlvManagerTiler tiler = new IlvManagerTiler(); long maximumDiskSpace = 10000000; // 10 Mbytes String mapFilename = "MyMap.ivl"; File outputFolder = new File("output"); tiler.createTiles(mapFilename,null, outputFolder, maximumDiskSpace); // Null is passed as the region so as not to limit the tiling process.
Remember that generating tiles for a map
covering a large region, with several scale levels, and without
specifying an area of interest, can easily lead to millions of
tiles being created. This may require several Gigabytes of memory
and in some cases may take a long time to complete.
To avoid this:
- Specify a reasonable disk space limit. The process stops as soon as the limit is reached.and/or
- Target regions that are likely to be requested by thin clients and only generate images for these regions.
A graphical tool to interactively generate tiles is provided as a
code sample in: <installdir> /jviews-maps810/samples/tilegeneration/src/TileGenerator.java.
Note
Only map layers with the
thin client background
property set to
true
in their style will be rendered as tiled images. Dynamic layers
such as labeling layers should not be marked as background layers,
as they are dynamically generated by the servlet.