Arthur,
If I understand you, you want to submit output image pixel coords to a
function/method and get out coordinates in the MAP file's coordinate system.
In general, this is a similarity transformation involving one scale, two
translation values, and possibly a rotation value (if there is an ANGLE keyword
in the MAP file, or applied via MapScript).
Most likely your session's output would use a projected coordinate system (not
geographic), so if you really wanted Lat/Lon values, you would then have to use
a Proj4 function (exposed via Mapscript?) to do the inverse projection.
The pixel/georef similarity values are stored in the map object (actually the six affine
transformation parameters are stored, a super-set of the similarity). And strangely,
even though the simliarity calculation is done several places in Mapserver, there is a
specific function to do this in mapobject.c named msMapPixelToGeoref with a message
saying "msMapPixelToGeoref() not yet implemented".
I'm not a Mapscript guy, so I don't know if you can get at the map object's
geotransform values (likely not?). May someone else could comment on that?
And they are really just a mathematically convenient way of storing the
mapObj.cellsize, ANGLE (how come there's a setRotation method but no
getRotation?), and extent.minx, extent.miny values.
Brent Fraser
Arthur Clifford wrote:
Greetings,
I was wondering whether there is a way to provide a proj4 string or
other method for specifying a projection where the units are in pixels
and screen width and height are provided? My desire is to use the
PointObj’s project function for forward and reverse projecting an x,y
screen coordinate. I find it odd that MapScript has great functions for
zooming and panning based on pixel values and the whole shpxy
functionality in the templating engine but lacks a way to convert a
pixel to lat/lon or other projection values. It would be one thing if
nothing in MapScript worked that way, but clearly something in the
code-base knows how to do the conversion. I find this especially odd
when the queryByPoint function requires a point object that explicitly
states it should be in projected not screen values. My google searches
thus far have pointed to useful formulae for doing the trick, but what’s
up with that?!
I feel like I’m missing a less-than-obvious logic-leap that one is
supposed to just know to make by understanding the object model. I have
RTFM and I nothing I see suggests it is possible through php mapscript
objects to convert screen units to a target projection. If there are
tutorials or examples of how to do this I haven’t yet discovered any.
So, how does one, through php MapScript, get a lat/lon value for
projecting into projection values if a PointObj cannot be defined with
pixel values and the project functions take PointObj? Also, how would
one go about requesting a special screen-projection as a projection to
specify if something like that does not exist?
ArtC
Arthur Clifford
------------------------------------------------------------------------
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users