ThinkGeo.com    |     Documentation    |     Premium Support

How to efficiently cache world kit overlay

Hello,


I'm loading the world kit data in a dedicated overlay that I would like to cache (I'm using desktop 3.0.199)


Every test done generate thousands of tiles but I feel my code is not efficient; a sample is welcome.


Regards


Patrick.



Patrick,


I am not sure what your expected speed of generating cache images is. As I know ususlly there are two ways to do that:

One is to generate tile by tile: we calcaute the bounding box for each tile, and draw them out seperatlly on each tile images.

The other one is to create a bigger image say 2048 by 2048 pixel and draw the map on it, then spilt it to 256 by 256 pixel images. This is faster than the first way as it decrease the data (disk) read times.


Here’s a piece of code about the second way.




private void GenerateCache(Overlay overlay, RectangleShape cacheExtent)
{
    Bitmap image = new Bitmap(1280, 1280);

    GdiPlusGeoCanvas canvas = new GdiPlusGeoCanvas();
    canvas.BeginDrawing(image, cacheExtent, GeographyUnit.DecimalDegree);
    overlay.Draw(canvas);
    canvas.EndDrawing();

    // Split the image to 256 * 256 images.
}


Thanks,

ThinkGeo Support.