[Mapserver-users] shape bounds for map and layer with different projections
Armin Burger
armin.burger at libero.it
Thu Aug 14 13:56:12 PDT 2003
Sean,
Thanks for the reply. You're right: the problem lies not in the
definition of the projection via epsg code. I thought so because the
shape rectangle extent (minx/miny/maxx/maxy) remained the same after
re-projection when defining the projections like that.
I now found the reason for this behaviour: I tested it with a point
layer. For points the '$shape->bounds' function produces a rectangle
where minx=maxx and miny=maxy. Therefore the 'project(inPJ, outPJ)'
method did not re-projection this 'rectangle' (which has actually only 1
dimension). When setting a buffer to the min/max values everything worked
ok.
Armin
> You _can_ construct a projectionObj from an "init=epsg:xxxx" string.
> In the code below I create a rectObj and then project it from map
> projection to an arbitrary EPSG projection. This is using the 4.0
> MapScript and should be equally applicable to Perl.
> Python 2.1.3 (#18, Jun 24 2003, 18:02:42)
> [GCC 3.1 20020420 (prerelease)] on darwin6
> Type "copyright", "credits" or "license" for more information.
> >>> from mapscript import *
> >>> mapobj = mapObj('/Users/sean/Projects/ZMapServer/demo/demo.map')
> >>> e = mapobj.extent
> >>> e.minx, e.miny, e.maxx, e.maxy
> (388108.0, 5203121.0, 500896.0, 5315909.0)
> >>> mapobj.getProjection()
> 'init=epsg:26915'
> >>> prj_map = projectionObj(mapobj.getProjection())
> >>> prj_nad83 = projectionObj("init=epsg:4269")
> >>> f = rectObj()
> >>> f.minx = e.minx
> >>> f.minx, f.miny, f.maxx, f.maxy = e.minx, e.miny, e.maxx, e.maxy
> >>> f.project(prj_map, prj_nad83)
> 0
> >>> e.minx, e.miny, e.maxx, e.maxy
> (388108.0, 5203121.0, 500896.0, 5315909.0)
> >>> f.minx, f.miny, f.maxx, f.maxy
> (-94.499615104017138, 46.972164652306077, -92.987989369267908,
> 47.996480038279742)
> cheers,
> Sean
> --
> Sean Gillies
> sgillies at frii dot com
> http://www.frii.com/~sgillies
More information about the MapServer-users
mailing list