Opened 15 years ago

Closed 15 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

  1. Load the standard World.tif into MapGuide, using coordinate system LL84.
  2. Create a layer using the raster mentioned above.
  3. Create a new map using the raster layer, then reset the coordinate system to WORLD-MERCATOR.
  4. Preview the map.
  5. Zoom into a smallish area near the sides of the reprojected raster. Note the degree of sharpness of the raster image.
  6. 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)

SlightlyOutOfExtents.png (686.1 KB ) - added by stevenxu 15 years ago.
WithinExtents.png (726.4 KB ) - added by stevenxu 15 years ago.

Download all attachments as: .zip

Change History (4)

by stevenxu, 15 years ago

Attachment: SlightlyOutOfExtents.png added

by stevenxu, 15 years ago

Attachment: WithinExtents.png added

comment:1 by stevenxu, 15 years ago

Owner: changed from StevenXu to stevenxu
Status: newassigned

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.

comment:2 by stevenxu, 15 years ago

Resolution: wontfix
Status: assignedclosed

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.