Log in

Cartomatic Map Tiling Utility

Cartomatic Map Tiling Utility

Map tiling utility for Manifold was designed to automate process of preparing tile libraries for web presentation straight from manifold GIS. It offers many different tile schemes (OpenLayers.XYZ, OpenLayers.TMS, Manifold Image Library or Google Earth amongst others) and flexible options so it is easy to prepare a needed library.

Since the tool offers quite a few options and some of them may be confusing this document has been structured into the following sections:

 

Supported tile schemes:

  • OpenLayers.XYZ - supports all the projections (use proj4js in order to get the right coordinate conversions)
  • OpenLayers.TMS - supports all the projections (use proj4js in order to get the right coordinate conversions)
  • Manifold Image Library - supports all the projections
  • Google Maps - for maps in Spherical Mercator
  • Google Earth - for maps in Lat/Lon

Coming soon:

  • Bing maps
  • Bing maps 3D

 Interface

Output Directory section is rather self explanatory.

 

 In the Tile Library Settings section one can chooses the following options:

  • Tile scheme - a dropdown with a list of the implemented tile schemes; some of the schemes require specific setup so chosen options may get disabled depending on the picked scheme.
  • ReverseY - this reverses the order of tiles on the Y axis (standard order is from bottom to top)
  • Top level width and height - number of tiles rendered for the smallest scale level of the library
  • Fit tileset bbox to map height - since the input map's bbox is likely to have different proportions than the tileset tiler decides how to fit tileset's bbox to map's bbox. By default tiler fits the tileset's bbox to map width.
  • Use custom tile size - usually tiles of 256 x 256 pixels are used for web maps but is one feels a different size is needed it is possible to adjust it
  • Render tiles outside maps's bbox & render 5 levels only - unless the input map has the same proportions as the tileset there are empty tiles to be rendered for the areas not covered by the map (see the fit tileset bbox to map height option). The first setting lets user skip the tiles that are blank, the second forces tiler to render blank tiles for the first five levels; This is handy for open layers for example so empty pink tiles do not appear in small scales. Setting the open layers map to not exceed the bounds of the base layer ensures the map cannot be panned outside of the layer and therefore blank pink tiles will not appear in larger scales.
  • Zoom levels - the number of zoom levels of the tile library
  • Start & finish rendering at level - if only a few levels of a library are needed this is to control it

Input Data section offers following settings:

  • Map Component - a dropdown with a list of all the map components available in the project; tiler works with map components only but in fact every component than can be added to a map can be tiled (drawings, images, surfaces) - map component works as a container grouping all the needed layers
  • Use separate level prefix - sometimes it is easier to create customised map content displayed at different scale levels by using separate map components (this is handy for the lat/lon projection that does not support rendering at specified scales for example). Such components should have the very same prefix and appropriate numbering - the tool requires numbers to use the following notation: _number, for example map_0, map_1, map_2 (map is a prefix here) 
  • Render custom layer set - this option is not currently active and is on our Tiling Utility Road Map; In general this will allow users to render a custom subset of layers from a map component
  • Use custom bbox - overwrites map's bbox and is used to render an area of interest that has different extent than the map, a subset of map's extent for example; The dropdown contains a list of all the drawings in the project; a common bbox is calculated for all the objects contained in a picked drawing
  • Partial update bbox - it would be time consuming to rerender a tile library after each change so this option allows user to specify areas that need updating. The dropdown lists all the drawings in a project. The tool then renders tiles that intersect with a bbox of each object in the specified drawing (therefore it is possible to update numerous areas of a library in one go); Please bear in mind that choosing a component with a large number of objects may affect the performance of the tiler and it may get unresponsive while calculating number of tiles to be displayed on the status bar. 

 

Rendering section:

  • Output format - the tool supports saving libraries as PNG, JPEG and GIF; the demo version does not support GIFs
  • Quality - this lets user specify the quality of rendered JPEGs; Active only when JPEG format is chosen
  • Use Map Server - by default set to true unless a personal edition of manifold is used (personal edition does not have Map server included); using Map Server is quicker than not using it
  • Antialias lines, antialias text, smooth large vector objects - settings used only with mapserver
  • Improve label rendering - long labels may not render if their center is not within the area of the map that is rendered to a tile. A collar is used to initially render an image that is larger than the destination tile and then cut it to the desired tile size
  • Use watermark - a watermark can be overlayed on each tile; the watermark input format is png; the watermark's size is adjusted to fit the tile size; only PNGs and JPEGs can be watermarked; please note that watermarking a tile adds a little overhead

 Background transparency section:

  • Use transparency - allows user to remove a specified color from rendered tiles. May be used for crating overlays with content that does not cover a map completely, for example forests, roads, etc.
  • Brightness transparency - works only with white color; this method compares color transparency setting and can be used to remove or make partially transparent colors that have similar brightness to white color
  • Color transparency - when chosen by default the tool suggests to use map's background; this color can be changed though and any color can be chosen from a picker on the right
  • Removed color similarity threshold - this is to specify the amount of colors to be removed. 0 means that only colors that are the same are to be removed, other setting is a percentage of color similarity. For brightness transparency this means colors that have similar brightness to white, for color transparency this means colors that are close to the picked one in the rgb space. Colors that fall within the specified threshold are made fully transparent.
  • Gradual transparency threshold - color similarity is calculated as above although the transparency applied is different. When using this setting colors that fall in the threshold are applied transparency that depends on the similarity with the sample color. The more similar color is the higher transparency is applied

 Below is an example of how transparency and gradual transparency work. This example uses brightness transparency for the sake of convenience, although color transparency works in similar way (instead of brightness value, color similarity in the rgb space is used)

 

Save and load setting section:

When saving tiler settings a new folder component is created - #Cartomatic.MapTiler.Settings. Settings are saved to comment component and should not be manually altered (tiler will ignore settings that are not valid - for example output folder that does not exist); When loading settings a form with a dropdown with a list of all the comment components in the settings folder is presented.

 

Render tile library and generate library metadata:

Pressing the render button starts the rendering process; the process can be aborted whenever needed, it can also be paused; Generate library metadata presents a window with all the settings chosen and some library specific information - pixel sizes for levels, map scales for levels, number of tiles, projection, etc.

 

 Status bar:

Status bar presents some useful information on current tiler status

 

Registration:

 

In the demo mode the above information appears in the title bar. Also a key button is visible. to obtain a control number press the key button. Once the license number for the tiler is obtained the same dialog can be used to unlock the tiler. Please note that this is possible only when launching manifold as an administrator (license file may be prepared manually if it is not possible to run manifold with administrative rights).

Activation options coming soon...

When in demo mode the tool offers 99% of its functionality (it is not possible to render GIFs only) although stamps each rendered tile with a watermark. A tile rendered in demo mode will look as below:

Examples

Note: OpenLayers.XYZ, OpenLayers.TMS and ManifoldImageLibrary examples look exactly the same - the difference is in addressing of the tiles (this can be viewed in the page source) and also the manifold image library can be linked back to manifold gui (a demo download is not provided due to the size of the data)

Examples using data from Białystok, Poland - source data courtesy of Tomasz Gutowski

Examples of Tatra Mountains  - courtesy of the  Tatrzański National Park GIS dept.

And some a bit more fancy examples utilising the data mentioned above and GeoExt widgets

 

Download

The content of the archive should be extracted to manifold config folder (so it contains a subfolder called cartomatic and all the files inside). Add-in activation requires a cartomatic folder to be present under ManifoldPath/config. It is required to restart manifold after add-in installation.

 

Performance Tips

The tiler rendering speed depends on manifold so if manifold renders map images slowly while working in GUI, the tiler will not be much faster. Therefore the best advice on performance can be found here. Below is a list of the things that could have an immediate impact and are easy to check:

  • make sure all the map layers are in the same projection as the map and they are not reprojected on the fly
  • Avoid complex themating formatting - use more simple themes instead
  • If possible use labels that not utilise overlaps resolution
  • If not needed don't use big collar (the smallest collar size is advised though so vector or ecw rendering artifacts don't appear)
  • If not needed don't use transparency
  • Use linked ecw in place of embedded large rasters
  • If possible make a snapshot of your map in needed scale, export it to ecw and then tile the raster

In general tiler works best with linked images. The more complex the map the slower the rendering speed. The tiler operates on a copy of a map file so it may take a little while before the project file gets loaded (even longer if there are many components linked to database for example).

It is possible to make the tiler work in many threads, although the procedure is somewhat manual at this stage... To do so it is enough to launch tiler in separate manifold instances. Using different map levels or / and partial update bounding boxes and the ability to save and load the settings is the trick here.

 

Road Map

  • Bing Maps / Bing Maps 3D tiles
  • Rendering only subsets of layers from a map
  • On the fly reprojections to Google Maps (Spherical Mercator), Google Earth (Lat/Lon WGS84) and in the future Bing Maps
  • Command line for batch processing

Known Issues

  • Tiler hangs occasionally and crashes hosting instance of manifold
  • Generated projection xml for Manifold Image Library tile scheme does not load properly
  • When pausing tile rendering progress tracker does not update elapsed time until resumed
  • Wen using partial update bbox that exceeds tileset bbox tiler renders rows and columns outside of the tileset (with addresses smaller than 0 or larger than the tileset size in tiles)

Reporting bugs / suggestions

If the tool behaves unexpectedly please try to repeat the bug and send us a description of how to get such result through our contact page. We will get back to you asap.

On the other hand if you have some suggestions on how the tool could be improved please do not hesitate and contact us with a feature description.

Disclaimer

Cartomatic Map Tiling Utility is not Klokan Petr Pridal's Map Tiler. If you are looking for the latter, please visit http://www.maptiler.org. Cartomatic Map Tiling Utility is an add-in operating on top of manifold system GIS software and has been designed to act as a map tiling tool for manifold map components. Cartomatic Map Tiling Utility add-in was initially released under a different name - Cartomatic Map Tiler. Since this name could lead to misunderstanding we decided to change it to avoid naming ambiguity.

footer cartoninjas.net cartomatic.net blogengine.net pgdstudio.pl