Opened 16 years ago
Closed 16 years ago
#888 closed defect (wontfix)
Reprojected raster gets blurring when view window crosses outside of original raster extents
Reported by: | stevenxu | Owned by: | stevenxu |
---|---|---|---|
Priority: | medium | Milestone: | 2.1 |
Component: | Rendering Service | Version: | 2.0.1 |
Severity: | major | Keywords: | blurring |
Cc: | External ID: | 1180334 |
Description
- Load the standard World.tif into MapGuide, using coordinate system LL84.
- Create a layer using the raster mentioned above.
- Create a new map using the raster layer, then reset the coordinate system to WORLD-MERCATOR.
- Preview the map.
- Zoom into a smallish area near the sides of the reprojected raster. Note the degree of sharpness of the raster image.
- Slowly pan until the edge of the original raster is visible on the view window.
Expected result: The raster to remain at the same relative sharpness as you pan back and forth across the extent of the original raster.
Actual result: The raster goes noticably more blurry when the viewport crosses over the extent of the original raster data.
Attachments (2)
Change History (4)
by , 16 years ago
Attachment: | SlightlyOutOfExtents.png added |
---|
by , 16 years ago
Attachment: | WithinExtents.png added |
---|
comment:1 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 16 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
We can consider this problem as a case of invalid data, as Norm said. Otherwise, we need to involve significant changes on CS-MAP module and CS transform module, but it is not worthy of doing it at this point because of the high risk and radical modification.
Note:
See TracTickets
for help on using tickets.
This problem is cause by the calculating precise error of double data type. When the MapGuide convers the maxium of WORLD-MERCATOR to LL84, it expect to get 180.0, but acctually it got the value 180.00000000000003 for it is double data type. Then this offset leads to the error of extent and eventually results in blurry image.
\MgDev\OS\Common\CoordinateSystem\CoordSysTransform.cpp
void CCoordinateSystemTransform::TransformPoint(double& x, double& y, double *pdZ)
line 151: nResult = CS_cs2ll(&m_src, dCoords, dCoords); This line code get the 180.00000000000003 value.
line 189: nResult = CS_ll2cs(&m_dst, dCoords, dCoords); This line change the 180.00000000000003 into -180, instead of 180.00.