Changes between Version 13 and Version 14 of MapGuideRfc51


Ignore:
Timestamp:
Jul 21, 2008, 2:50:19 PM (16 years ago)
Author:
tonyfang
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc51

    v13 v14  
    3434== Proposed Solution ==
    3535
    36 We will use a tessellation algorithm to re-project the raster data from one coordinate system to another.
     36We will use a tessellation algorithm to re-project the raster data from one coordinate system (CS) to another.
    3737
    38 We must first determine how much of the original image is required for our re-projection. The extents of the current viewport must be re-projected into the coordinate system of the original image. The extents of the re-projected viewport need to be determined. This is the portion of the original image that will be required to re-project the image into the current viewport.
    3938
    40 The original image (the portion required for the re-projection) will be divided into a grid of triangles representing the raster in its own coordinate system. Each point on the grid (representing the corners of the triangles) will be transformed into the target coordinate system, and the raster data within each triangle will be transformed appropriately to fit within the new geometry.
     39
     40We must first determine how much of the original image is required by projecting the extents of the viewport (or map) into the image's CS. This is the clipped image. Then we project the extents of the clipped image into the viewport's CS, and then into device space. A mesh of uniform triangles is created in device space. Each point in the triangle mesh is transformed from device space, to the viewport's CS, to the image's CS, and then to device space. The image will then be rendered using a transform created from the two triangle meshes. Because the triangle mesh is in device space, choosing its size guarantees you a minimum level of accuracy: the error in the re-projected image will never be greater than the size of the individual triangles. 
    4141
    4242
    4343||[[Image(raster_reprojection_viewport.PNG)]]||
    44 ||Figure 1. The blue grid of triangles represents the image. The thick black lines represent the viewport. On the left we have the original image in its own coordinate system with the viewport re-projected onto it. On the right we have the image re-projected into the viewport's coordinate system.||
     44||Figure 1. The blue mesh of triangles represents the extents of the projected image. The thick black lines represent the image. On the left we have the viewport. The blue On the right we have the image re-projected into the viewport's CS.||
    4545
    46 Each triangle will then be rendered into the output image to produce the transformed raster. The balance between performance and accuracy of the transformation is controlled by the number of triangles created for each raster. The configuration settings will control the size and number of triangles created. Configuration will be done through the serverconfig.ini.
     46The balance between performance and accuracy of the transformation is controlled by the number of triangles created for each raster. The configuration settings will control the size and number of triangles created. Configuration will be done through the serverconfig.ini.
    4747
    4848The category and setting names for this configuration are:
    4949
    5050{{{
    51 [RasterReprojectionProperties]
     51[RenderingServiceProperties]
    5252# *****************************************************************************
    53 # R A S T E R  R E P R O J E C T I O N  P R O P E R T I E S
     53# R E N D E R I N G  S E R V I C E
    5454#
    5555# Property Name                    Description
    5656# -----------------------------------------------------------------------------
    57 # TileSize                         Size of tiles in pixels
     57# RasterGridSize                   Size of raster re-projection grid in pixels
    5858# *****************************************************************************
    59 TileSize = 100
     59RasterGridSize = 100
    6060}}}
    6161Descriptive error messages will be logged to handle invalid configuration settings, invalid data, unsupported transformations etc.
     
    7070== Implications ==
    7171
     72
    7273WMS is also a raster feature source and will be affected by this algorithm.
     74
     75The AGG and DWF Renderers will support raster re-projection.
     76
     77The GD Renderer is on hold pending RFC 52 - Remove GD Renderer.
    7378
    7479== Test Plan ==