| 36 | We will use a tessellation algorithm to re-project the raster data from one coordinate system to another. |
| 37 | |
| 38 | The original image 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 | |
| 40 | <pic here> |
| 41 | |
| 42 | 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. |
| 43 | |
| 44 | The category and setting names for this configuration are: |
| 45 | |
| 46 | |
| 47 | [RasterReprojectionProperties] |
| 48 | # ***************************************************************************** |
| 49 | # 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 |
| 50 | # |
| 51 | # Property Name Description |
| 52 | # ----------------------------------------------------------------------------- |
| 53 | # TileSize size of tiles in pixels |
| 54 | # ***************************************************************************** |
| 55 | TileSize = 100 |
| 56 | |
| 57 | Descriptive error messages will be logged to handle invalid configuration settings, invalid data, unsupported transformations etc. |
| 58 | |
| 59 | In keeping with MapGuide’s current behavior, if the re-projection fails for any reason, the map will still be rendered and returned, using any other layers that it contains, and the failed layer(s) will be skipped. |
| 60 | |
| 61 | We will add an optimization if the re-projection is a simple datum shift. The image will simply be shifted, and the advanced algorithm will not be invoked. |
| 62 | |
| 63 | We will support re-projecting raster in drawing sources. |