Map rendering

Map rendering

Complete and automated map rendering from the data stored at SQL Server.
Application is concurrency aware, uses parallel processing to distribute rendering to all system CPUs.
Rendering of contours, road network and road(streets) labels positioning and rendering.
Rendering of objects (POIs) as separate layer with transparent background.
Coordinate systems for the output can be Gauss Kruger, WGS84 and Spherical Mercator (with Google / Bing Maps tile naming supported).
Scale for rendering is defined as floating point number (for instance Zoom=1.15).

Parameters that can be defined by user:

- For contours rendering:

  • rank (group)*, 
  • pen: on/off, color, width and style (standard or custom pattern)
  • outline pen: on/off, color , width and style (standard or custom pattern)
  • fill: on/off and color

- For road network rendering:

  • rank (group)*, 
  • pen: on/off, color, width and style (standard or custom pattern)
  • outline pen: on/off, color, width and style (standard or custom pattern)

- For road(street) labeling:

  • rank (group)*,
  • font used for labeling: font name, size, weight, style, spacing
  • text fill: on/off, color
  • text outline: on/off, width (color is selected from network object that is labeled)
  • min space between two consecutive labels
  • min space between label and street intersections

*For all renderings set of parameters can be defined for group (rank) of entities. In the examples bellow 21 rank groups were used for contours, 19 rank groups for road network and 2 rank groups for road labels.

Streets labeling analysis is done using the Graph theory. Complex streets (in terms of labeling) are recursively decomposed into simpler subgraphs until simple paths (streams) are determined. Process optionally excludes slip roads and finds parallel roads (only one of two lines is labeled). Algorithm for detection of high angles at street paths (inadequate for text label) decomposes streets at located points to avoid bad labeling.

All colors are ARGB type (support transparency).
User defined tile size or predefined as Google / Bing maps tile system.
During the processing empty tiles are recognized and excluded
Output tile formats can be jpeg or png, 8bit or 24bit, optionally transparent background.
Output tiles are stored in zip archive, because of the number of tiles (usually thousands) and for easy uploading to tile server.
Complete processing is done in memory, output zip archive is created and filled in memory, and first "contact" with HDD is serialization of this final zip archive.

During the rendering full process report is produced with full statistics and possible conflicts or errors in input dataset.

Geometry used as Bezier multisegments.
Text is warped to Bezier curves of base street. This is done for letter as glyph, not for complete letter, for instance in letter "N" vertical lines can become un-parallel (see pictures).


Post a Comment

Note: Only a member of this blog may post a comment.

Cancel Reply