PERL/Mapscript postGIS examples?
Lowell.Filak
lfilak at MEDINACO.ORG
Mon Mar 20 05:51:20 PST 2006
Stephen Davies writes:
> Thanks for the feedback.
>
> Turning on PostgreSQL logging did indeed reveal more information.
> However, it leaves even more confused than before.
>
> It seems that the underlying cause of my results is that the extent
> being used by mapscript bears no relation to the extent that I
> specified.
>
> Here is the sql statement generated from mapscript:
>
> 2006-03-18 16:22:47 CST LOG: 00000: duration: 33.759 ms statement:
> DECLARE mycursor BINARY CURSOR FOR SELECT
> location::text,asbinary(force_collection(force_2d(geom)),'NDR'),id::text
> from probe WHERE geom && setSRID('BOX3D(139.522253226183
> -0.000314231148091942,139.522253452601 -0.000314003203767908)'::BOX3D,
> find_srid('','probe','geom') )
>
> The actual extent specified (and the one that works from CGI mapserv)
> was:
>
> 139.5143351 -34.7459112 139.5278707 -34.7207064
>
> The "correct" query as generated by a CGI call with the above mapext is:
>
> 2006-03-18 16:11:57 CST LOG: 00000: duration: 33.703 ms statement:
> DECLARE mycursor BINARY CURSOR FOR SELECT
> location::text,asbinary(force_collection(force_2d
> (geom)),'NDR'),id::text from probe WHERE geom &&
> setSRID('BOX3D(139.508530404246 -34.7456930137356,139.533675395754
> -34.7204885334377)'::BOX3D, find_srid('','probe','geom') )
>
> Again the extent is changed but nowhere as drastically.
>
> I then tried hard-wiring the extent into the map file and removing the
> mapext argument from the CGI call and got the same result and the same
> query.
>
> I then modified my PERL script to use the extent in the map file and
> again got the same result and the same query generated.
>
> It looks as if the mapscript setExtent method does something strange and
> different from the CGI mapext option and that both do strange things
> with extent statements in map files in some circumstances.
>
> I tried changing the UNITS to DD but this made no difference (METERS is
> required to make reference maps etc work properly in the CGI world.)
Stephen,
Did you already try printing the values of $miny & $maxy or run it with
"perl -d"?
If they args read in are correct then I'm wondering if:
my $rect = mapscript::rectObj->new($minx,$miny,$maxx,$maxy);
$map->{extent} = $rect;
would have a different effect.
Lowell
More information about the MapServer-users
mailing list