Blank image being created in MS 4.6.0
Mike Boos
mboos at AUGSIGNALS.COM
Fri Aug 26 07:49:03 PDT 2005
Thank you very much, I applied the patch, recompiled, and everything
worked! Thanks for finding and fixing the problem so quickly.
Mike
Frank Warmerdam wrote:
>On 8/25/05, Frank Warmerdam <fwarmerdam at gmail.com> wrote:
>
>
>>Mike,
>>
>>I assume there has been some subtle breakdown in the handling
>>of ungeoreferenced images in the MapServer raster support. I'll
>>try this out myself and see what can be done.
>>
>>
>
>Mike,
>
>I have confirmed that things changed due to a behavioral
>change in GDAL and/or changes in the MapServer raster logic
>for ungeoreferenced files. I have applied a patch in MapServer
>CVS (head and the 4.6 branch) but was only an hour or so late
>to get into MapServer 4.6.1. You can replace the msGetGDALGeoTransform
>code in mapdrawgdal.c with the following to fix your own source tree.
>
>/************************************************************************/
>/* msGetGDALGeoTransform() */
>/* */
>/* Cover function that tries GDALGetGeoTransform(), a world */
>/* file or OWS extents. */
>/************************************************************************/
>
>int msGetGDALGeoTransform( GDALDatasetH hDS, mapObj *map, layerObj *layer,
> double *padfGeoTransform )
>
>{
> rectObj rect;
>
>/* -------------------------------------------------------------------- */
>/* some GDAL drivers (ie. GIF) don't set geotransform on failure. */
>/* -------------------------------------------------------------------- */
> padfGeoTransform[0] = 0.0;
> padfGeoTransform[1] = 1.0;
> padfGeoTransform[2] = 0.0;
> padfGeoTransform[3] = GDALGetRasterYSize(hDS);
> padfGeoTransform[4] = 0.0;
> padfGeoTransform[5] = -1.0;
>
>/* -------------------------------------------------------------------- */
>/* Try GDAL. */
>/* */
>/* Make sure that ymax is always at the top, and ymin at the */
>/* bottom ... that is flip any files without the usual */
>/* orientation. This is intended to enable display of "raw" */
>/* files with no coordinate system otherwise they break down in */
>/* many ways. */
>/* -------------------------------------------------------------------- */
> if (GDALGetGeoTransform( hDS, padfGeoTransform ) == CE_None )
> {
> if( padfGeoTransform[5] == 1.0 && padfGeoTransform[3] == 0.0 )
> {
> padfGeoTransform[5] = -1.0;
> padfGeoTransform[3] = GDALGetRasterYSize(hDS);
> }
>
> return MS_SUCCESS;
> }
>
>/* -------------------------------------------------------------------- */
>/* Try worldfile. */
>/* -------------------------------------------------------------------- */
> else if( GDALGetDescription(hDS) != NULL
> && GDALReadWorldFile(GDALGetDescription(hDS), "wld",
> padfGeoTransform) )
> {
> return MS_SUCCESS;
> }
>
>/* -------------------------------------------------------------------- */
>/* Try OWS extent metadata. */
>/* -------------------------------------------------------------------- */
>#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR)
> else if( msOWSGetLayerExtent( map, layer, "MFCO", &rect ) == MS_SUCCESS )
> {
> padfGeoTransform[0] = rect.minx;
> padfGeoTransform[1] = (rect.maxx - rect.minx) /
> (double) GDALGetRasterXSize( hDS );
> padfGeoTransform[2] = 0;
> padfGeoTransform[3] = rect.maxy;
> padfGeoTransform[4] = 0;
> padfGeoTransform[5] = (rect.miny - rect.maxy) /
> (double) GDALGetRasterYSize( hDS );
>
> return MS_SUCCESS;
> }
>#endif
>
>/* -------------------------------------------------------------------- */
>/* We didn't find any info ... use the default. */
>/* Reset our default geotransform. GDALGetGeoTransform() may */
>/* have altered it even if GDALGetGeoTransform() failed. */
>/* -------------------------------------------------------------------- */
> else
> {
> padfGeoTransform[0] = 0.0;
> padfGeoTransform[1] = 1.0;
> padfGeoTransform[2] = 0.0;
> padfGeoTransform[3] = GDALGetRasterYSize(hDS);
> padfGeoTransform[4] = 0.0;
> padfGeoTransform[5] = -1.0;
>
> return MS_FAILURE;
> }
>}
>
>Best regards,
>
>
More information about the MapServer-users
mailing list