[Mapserver-dev] Rotated Map Rendering

Steve Lime steve.lime at dnr.state.mn.us
Thu May 20 18:15:15 EDT 2004


Assuming you go with EXTENT and ANGLE we can add to the function in
mapfile.c
that loads params from a string to recognize "map_angle". I don't see
this as a
heavily used option so there's probably no reason to add a special CGI
variable in
addition to "map_angle". Users will be able to drive angle from a URL
using that
variable. I can take care of that if you wish.

Steve

>>> Frank Warmerdam <warmerdam at pobox.com> 5/20/2004 2:32:11 PM >>>
Steve Lime wrote:
> Gee, didn't mean to make this difficult. Guess I should've gone with
the
> camera view model when I started. But then we'd have to change things
to
> support the OGC specs. You can't win I guess. However, things being
as
> they are:
> 
> Based on your alternatives it seems like 2 mirrors the current
meaning
> of an extent. You get that area plus a bit more. This was going to be
an
> issue regardless of how you define your AOI. What was your original
> plan?

Steve,

The issue is how we describe the portion of the earth that the map
render
will show.  Traditionally we did this with the EXTENT keyword with the
implicit assumption that our mapview would be north up and unrotated
(with
respect to the coordinate system in play anyways).

My change was not to alter the concept of a rectangle to allow the
view
rectangle to be rotated.  My way of specifying the rectangle (center,
size and rotaton) exactly and unambiguously defined the view
rectangle.

We are only running into problems now (in my not-very-humble-opinion)
because
we are trying to use an x/y min/max + rotation datastructure to define
something it is illsuited to.

> I thought that to deal with the non-square pixel issue in the future
> we'd probably have to set a flag that would alter the meaning of
extent,
> that is, you'd get extactly that extent albeit stretched a bit if
> necessary. I'm not sure how that would play out with rotation.
Probably
> not that big of an issue since only the OGC WMS/WCS specs would
leverage
> that capability very often.

My intention was that non-square aspect ratio pixels would be fine
when going through the rotated view stuff since it will just remap
stuff
to a 1x1 fake pixel size anyways.

> As for placement of this new parameter. I guess the main MAP object
is
> fine. The WEB object is really overhead and could be removed. It's
an
> artifact of very early versions of MapServer that stored web
> configuration as part of the HTML template files.

The rotation is very closely related to the extent.  Together they
define the view rectangle.  I strongly believe the rotation belongs
where
ever the extent is.  That would presumably mean in the mapObj, and in
the .map file it would be in the general MAP block as well.

Daniel Morissette wrote:
 > Actually, my understanding was that only #1 would maintain scale
(and
 > cellsize) from map to map.  With #2 or #3, the scale would vary for
a
 > given extent depending on the rotation angle, and predicting the
 > resulting scale would be a complex calculation. However with #2 and
#3 I
 > believe the scale/cellsize would be constant from map to map as long
as
 > the rotation angle doesn't change, but would still be hard to
calculate

I believe your assumptions here are correct Daniel.  I gather from the
various discussions that we are essentially settling on option 1.  That
is
the view will be computed by essentially rotating the EXTENT box
around
the center of the extent box by the rotation amount.  This is an easy
enough
form for me to handle, and I will do so now before I commit.  Likewise,
I
will change the keyword to ANGLE as suggested by Steve.

I have also looked a bit more at how the cgi mode mapserver works.  I
would
like to add some sort of rotation control here as well.  I don't quite
follow
how all this stuff works now, but I was thinking something along the
line of
an "maprot" keyword that could provide a rotation.  I also think it
would be
nice in browse mode we could have rotation options much like we have
zoom in
and zoom out options.  I don't think I am ready to address all that
just
now, unless it would be easy.  But I would at least like to be able to
drive rotation from the URL.

Any objections to "maprot"?

Finally, I would like to thank everyone for the feedback.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam,
warmerdam at pobox.com 
light and sound - activate the windows | http://pobox.com/~warmerdam 
and watch the world go round - Rush    | Geospatial Programmer for
Rent

_______________________________________________
Mapserver-dev mailing list
Mapserver-dev at lists.gis.umn.edu 
http://lists.gis.umn.edu/mailman/listinfo/mapserver-dev



More information about the mapserver-dev mailing list