There is normally a constraint set on postgis tables that specifies the SRID, if you want to change the SRID then you need to drop the constraint, set the SRID and optionally put back the constraint with the correct SRID.

I do not believe this is necessary to achieve what you want, though. An SRID of -1 tells postgis to return the geometry as is to mapserver. Mapserver then doesn't know what the projection of the data is, but that is okay because you can provide an PROJECTION object on your layer in mapserver. Then mapserver knows what the projection of the data is without having to consult postgis and will be able to reproject the data for you.

So you should be able to leave your data in the database with SRID -1 and put

PROJECTION
  "init=epsg:26915"
END

in your layer. Then if you use a different projection at the MAP level, mapserver knows that your data is in UTM zone 15 and will reproject it on the fly.

If you are *always* going to reprojecting your data then you should actually transform it in the database so that you don't suffer from reprojection overhead on every request.

Cheers

Paul

On 28-Jun-08, at 2:12 AM, [EMAIL PROTECTED] wrote:

Hi Matthew,

If you loaded it from shapefiles using shp2pgsql, then use the -s flag to set the srid to the correct value.

If you \d your table, I think you'll find a constraint on it setting the srid, as well as the geometrycolumns entry.

The simplest way to get things working with mapserver may well be to leave it as -1 in the database (& geometrycolumns entry) & in your mapserver mapfile data statement, specify the sql returns setsrid(geom,26915) instead of geom, so postgis returns the values with the appropriate SRID set, irrespective of what the database actually stores.

That will get things working until you load the data with the correct srid.

HTH,

 Brent Wood



--- On Sat, 6/28/08, Matthew Pettis <[EMAIL PROTECTED]> wrote:

From: Matthew Pettis <[EMAIL PROTECTED]>
Subject: [mapserver-users] Basic Projection Help
To: "Mapserver-users" <[email protected]>
Date: Saturday, June 28, 2008, 5:47 PM
Hello,

I'm trying to get a handle on projections and
reprojections.  I have a
dataset in a postgis database table that is in epsg:26915
(it's the state of
MN).  I know this from the metadata provided by the
provider (state of
Minnesota itself).

When I loaded it into postgis, the geometry_columns row for
this
table/column combo set srid=-1.  As I know that this is in
epsg:26915, I
manually changed the geometry_columns row entry to it (see:
===
geometry_columns === section).

Problem is, I get an error of using two different
geometries.  Anybody have
any idea how i set the srid to the correct value of
epsg:26915?  I'd like to
set this correctly so I can reproject it as necessary.  The
map will render
with srid=-1, but then I don't think I can reproject
the image correctly,
right?

below are what I think are the important sections to this
problem.  Thanks
in advance for your help.

Matt

=== url ===
= ===================================================================== http://localhost/cgi-bin/mapserv.exe?map=C:\ms4w\Apache\htdocs\ol \mapreproj.map&mode=map = =====================================================================

=== error message ===
= =====================================================================
msDrawMap(): Image handling error. Failed to draw layer
named 'state'.
msPOSTGISLayerWhichShapes(): Query error. Error executing
POSTGIS SQL
statement (in FETCH ALL): DECLARE mycursor BINARY CURSOR
FOR SELECT
asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text
from
shp_state WHERE the_geom &&
setSRID('BOX3D(141095.125 4809728.25,810342.625
5478975.75)'::BOX3D,
find_srid('','shp_state','the_geom')
) -ERROR:
Operation on two geometries with different SRIDs
= =====================================================================

=== geometry_columns ===
= ===================================================================== oid ;f_table_catalog ;f_table_schema ;f_table_name;f_geometry_column;coor_dimension;srid;type
336791;"''";"public";"shp_state";"the_geom";2;26915;"MULTIPOLYGON"
= =====================================================================

=== mapreproj.map ===
= =====================================================================
MAP

   ################
   # Map attributes
   ################
 IMAGETYPE   PNG
 EXTENT      184056.505 4809728.25 767381.245 5478975.75
 SIZE        600 600
 IMAGECOLOR  255 255 255
 FONTSET
"C:/ms4w/Apache/htdocs/fonts/fonts.list"

   ####################
   # Web settings
   ####################
 WEB
   IMAGEPATH   "C:/ms4w/Apache/htdocs/tmp/"
   IMAGEURL    "/tmp/"
 END

   ####################
   # State
   # Background shows through missing precincts to show
where no votes will
be coming from
   ####################
 LAYER
   NAME              "state"

   CONNECTIONTYPE    postgis
   CONNECTION        "user=postgres dbname=gisvote
password=postgres"
   DATA              "the_geom from shp_state"
   STATUS            default
   TYPE              polygon

   CLASS
     NAME            "state"
     COLOR           200 200 200
   END

 END # Layer state

END
= =====================================================================


--
It is from the wellspring of our despair and the places
that we are broken
that we come to repair the world.
-- Murray
Waas_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users


__________________________________________

   Paul Spencer
   Chief Technology Officer
   DM Solutions Group Inc
   http://www.dmsolutions.ca/

_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to