<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2627" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>Nick -</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>I'm not sure what your "unit" is supposed to mean, but I 
can describe the process for taking the pixel size and finding the right 
MINSCALE/MAXSCALE values.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>The MINSCALE and MAXSCALE values are the denominators of 
scale ratios, like 1:10,000 scale.  MINSCALE 10000 means "a minimum scale 
of 1:10,000", where one meter on the map equals 10,000 meters on the 
ground.  The problem becomes, "what's one meter on the 
map"?</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>The RESOLUTION statement answers that question.  The 
default value is 72, meaning that 72 pixels in a MapServer output image are 
presumed to occupy one inch on the screen.  This is actually unlikely to be 
an accurate value unless you're running a 20-year-old Macintosh, but it often 
doesn't matter - it's mostly used for internal 
calculations.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>So, if 72 pixels are presumed to cover one inch on the 
screen, and your image has a source resolution of 1.26956817 meters per pixel, 
then one inch on the screen will show 72 * 1.26956817 meters or 91.40890824 
meters of image.  Since 91.40890824 meters equals 3598.7687 inches, this 
means one inch on the screen shows 3598.7687 inches on the ground - a scale 
ratio of 1:3598.7687</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=500564301-25042005><FONT face=Arial 
color=#0000ff size=2>If you displayed that image at the "scale" of 3598.7687 you 
should get a pixel-for-pixel replica of your source image.  If you use a 
different RESOLUTION statement, you need to adjust 
accordingly.</FONT></SPAN></DIV>
<DIV> </DIV>
<DIV><SPAN class=500564301-25042005></SPAN><FONT face=Arial><FONT 
color=#0000ff><FONT size=2>F<SPAN class=500564301-25042005>or calculating the 
IMGEXT values, you simply need to make the X extent and Y extent equal the 
number of (X or Y) pixels in the image times 
1.26956817.</SPAN></FONT></FONT></FONT><BR></DIV>
<DIV><SPAN class=500564301-25042005><FONT face=Arial color=#0000ff size=2>Yes, 
there are better-quality ways of resampling images, but - as you saw in Preview 
- they're slow.  MapServer doesn't use them, but you can use various tools 
(including gdalwarp, from the GDAL distribution) to resample images offline and 
create "pyramids" of varying resolutions.  This will improve the display 
quality of your images while keeping the performance fast - at the expense of 
extra disk space and preprocessing work.</FONT></SPAN></DIV>
<DIV><SPAN class=500564301-25042005><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=500564301-25042005>    <FONT face=Arial 
color=#0000ff size=2>- Ed</FONT></SPAN></DIV>
<DIV><SPAN class=500564301-25042005><!-- Converted from text/plain format -->
<P><FONT size=2>Ed McNierney<BR>President and Chief Mapmaker<BR>TopoZone.com / 
Maps a la carte, Inc.<BR>73 Princeton Street, Suite 305<BR>North Chelmsford, 
MA  01863<BR>Phone: +1 (978) 251-4242<BR>Fax: +1 (978) 
251-1396<BR>ed@topozone.com</FONT> </P></SPAN></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> UMN MapServer Users List 
[mailto:MAPSERVER-USERS@LISTS.UMN.EDU] <B>On Behalf Of </B>Nick 
Dabner<BR><B>Sent:</B> Sunday, April 24, 2005 7:17 PM<BR><B>To:</B> 
MAPSERVER-USERS@LISTS.UMN.EDU<BR><B>Subject:</B> Re: [UMN_MAPSERVER-USERS] 
Zooming to match a raster scale<BR></FONT><BR></DIV>
<DIV></DIV><!-- Converted from text/enriched format -->
<DIV>Got it. - Thanks Bart. My extents were wrong as IMGEXT do not match the 
gdalinfo info fo upper-left, lower-right style when applied to Australia. Seems 
I have to switch the latitude. </DIV><BR>
<DIV>Ok, so just to finish up this thread, found a solution by taking a point 
using Mapxy and then applying a scale or buffer. The rasters I am using have a 
pixel size of (1.26956817,-1.26956817) and a unit of 0.0174532925199433. By 
matching the scale as returned in the template/html file, as close as possible 
to this pixel size shown by gdalinfo, the maps start looking pretty good as they 
have little or no scaling. </DIV><BR>
<DIV>First question: With a given pixel size and unit (metres) above, what is 
the formula to work out the scale to input? In the example above, I found a 
value of .31267 would give me a matching output scale to pixel size to 4 decimal 
places. </DIV><BR>
<DIV>Second question: Loading the TIF file up in Apple Preview, it looks jagged 
for a moment, until it anti-aliases the file. Once anti-aliased, the legibility 
improves noticeably. I take it mapserver cannot perform any anti-aliasing when 
scaling rasters. I suspect even nearest neighbour would be a great improvement. 
Any plans for this? I guess it would require JPEG or PNG24 to provide enough 
colours. Is it possible for a browser or client app to do this work? </DIV><BR>
<DIV>regards, </DIV><BR>
<DIV>Nick </DIV><BR><BR>
<DIV>On 25/04/2005, at 7:45 AM, Nick Dabner wrote: </DIV><BR>
<BLOCKQUOTE>
  <DIV>Thanks Bart, </DIV><BR>
  <DIV>So I take it that scale and mapxy are mutually exclusive with mapext? 
  Removing mapext always results in the error: </DIV><BR>
  <DIV><FONT face=Times><BIG><BIG>msDrawMap(): Image handling error. Unable to 
  initialize image. </DIV>
  <DIV>msCalculateScale(): General error message. Invalid image extent, 
  minx=-1.000000, miny=-1.000000, maxx=-1.000000, maxy=-1.000000 </DIV>
  <DIV></BIG></BIG></FONT></DIV>
  <DIV>Any idea what I am doing wrong? Also I found out my scale is current 3.15 
  on the output map and needs to be 2.59, hence the poor output. Would a 
  resolution tag in the mapfile help? </DIV><BR>
  <DIV>ND </DIV><BR>
  <DIV>On 24/04/2005, at 10:45 PM, Bart van den Eijnden wrote: </DIV><BR>
  <BLOCKQUOTE>
    <DIV>Hi Nick, </DIV><BR>
    <DIV>you can probably use a combination of mapxy and scale. </DIV><BR>
    <DIV>See Mapserver CGI reference: </DIV>
    <DIV>http://mapserver.gis.umn.edu/doc44/cgi-reference.html </DIV><BR>
    <DIV>Best regards, </DIV>
    <DIV>Bart </DIV><BR>
    <DIV>On Sun, 24 Apr 2005 22:38:34 +1000, Nick Dabner 
    <dabner@OPTUSNET.COM.AU> </DIV>
    <DIV>wrote: </DIV><BR>
    <BLOCKQUOTE>
      <DIV>Hello list, </DIV><BR>
      <DIV>I have a set of raster geotiffs tiled and working on mapserver 4.2 on 
      </DIV>
      <DIV>osx (thanks to william k). </DIV><BR>
      <DIV>When viewing the rasters in mapserver, I find they suffer from some 
      </DIV>
      <DIV>slight scaling and never look anywhere near as good as the original 
      </DIV>
      <DIV>files. I have given dithering and PNG24 a go, but see that I probably 
      </DIV>
      <DIV>need to match my mapserver session's scale as close as possible to 
      the </DIV>
      <DIV>source data scale. Does this sound right? </DIV><BR>
      <DIV>Using CGI mapserver, how can I specify an exact viewing area (to 
      match </DIV>
      <DIV>my calculations)? What argument would I choose. </DIV><BR>
      <DIV>Attemping to pass IMGEXT=2482199.076569 4407814.492404 
      2484230.3854232 </DIV>
      <DIV>4406291.0107634 just returns an extent error. Oh, I am in Melb Aust, 
      so </DIV>
      <DIV>these are real coords. </DIV><BR>
      <DIV>Any other ideas? The next step would probably be fixed zoom levels 
      for </DIV>
      <DIV>street, area, suburb, municipality and city or similar, with </DIV>
      <DIV>preprocessed rasters for each level. </DIV><BR>
      <DIV>regards, </DIV><BR>
      <DIV>Nick </DIV><BR></BLOCKQUOTE><BR><BR><BR>
    <DIV>-- </DIV>
    <DIV>Using Opera's revolutionary e-mail client: http://www.opera.com/m2/ 
    </DIV><BR></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>