On 3/18/2011 3:41 PM, Andy Colson wrote:
On 3/18/2011 11:52 AM, Jeff Dege wrote:
I’ve been using MapServer with shapefiles for some time. I’m trying to
convert a site to PostGIS, and I’m having problems.

I’ve successfully installed PostGIS on my Ubunto 10.04 box, and copied a
number of shapefiles into it, using shp2pgsql. I can view the new tables
using qGIS, so I’m sure the data is right.

So now I’ve copies a mapfile that was working against the original
shapefiles, and I’m trying to convert it to use PostGIS. I’m working on
just one layer, and I’m trying to test that layer with shp2img.

I’ve added to the LAYER definition:

LAYER

NAME “countyboundaries”

CONNECTIONTYPE postgis

CONNECTION “host=localhost dbname=test_db user=gis password=xxxxx”

DATA “the_geom from gis_schema.county”

[…]

END

As I said, I know the data is in the database, because I can load it as
a PostGIS layer from qGIS. Column and table names are right, because
when I run “select the_geom from gis_schema.county” in the query tool I
get the data.

But when I run shp2img from the commandline, I get an error:

$ shp2img -m test.map -o test.gif -i GIF -l countyboundaries

msDrawMap(): Image handling error. Failed to draw layer named
‘countyboundaries’.

msPostGISParseData(): Query error. Error parsing PostGIS DATA variable.
Must contain ‘geometry

from table’ or ‘geometry from (subselect) as foo’. County

shp2img is MapServer version 5.6.6, and the output from -v does contain
“INPUT=POSTGIS”.

Any ideas? I’m trying to keep things simple, and it’s frustrating when
simple doesn’t work.

I cant see anything really wrong. I'm doing mostly the same thing.

however:

 > CONNECTION “dbname=test_db user=gis password=xxxxx”

because mapserver and PG run on the same box, I left off the
host=localhost... not sure if its important.

Yes, it might be, it depends on how postgresql is configured. You can test it with:

psql -U gis test_db
vs:
psql -U gis -h localhost test_db

 > DATA "the_geom from gis_schema.county using unique gid using srid=-1"

I also have the unique and srid things, again not sure if there'd be a
difference.

This also might be a problem. In general you should not use srid=-1 in the database of in the mapfile. When you load your data you should specify the correct srid and reference in the mapfile.

in your mapfile add:

MAP
  CONFIG MS_ERRORFILE "stderr"
  DEBUG 10

then run your shp2img again and you might get more debug info. You can also add the DEBUG 10 to you LAYER and I think it will spit out the SQL it is trying to execute so you can try it in psql and maybe get helpful messages there.

-Steve W


And as a last hint, you can try bumping up the debug:

MAP
CONFIG "MS_ERRORFILE" "/tmp/mapserver.log"
...
LAYER
DEBUG 4
...
END

-Andy
_______________________________________________
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

Reply via email to