[mapserver-users] Re: Conexion with postgres-postgis
Ben Madin
ben at remoteinformation.com.au
Mon Jan 12 12:53:25 PST 2009
I'm certainly no expert, and I'm guessing it would have helped if you
had included more of your layer definition:
On 13/01/2009, at 1:28 AM, mapserver-users-request at lists.osgeo.org
wrote:
> msDrawMap(): Image handling error. Failed to draw layer named
> 'chile_comuna'. prepare_database(): Query error. Error executing
> POSTGIS DECLARE (the actual query) statement: 'DECLARE mycursor
> BINARY CURSOR FOR
Here's (essentially) the query MapServer asked of PostGIS :
> SELECT
> "NAME
> "::text
> ,asbinary(force_collection(force_2d(the_geom)),'NDR'),gid::text from
> chile_comuna WHERE the_geom && setSRID('BOX3D(-71.2556639435156
> -29.9271886101172,-71.2540857172265 -29.9256103838281)'::BOX3D,
> find_srid('','chile_comuna','the_geom') )'
Here's the problem PostGIS reported with it.
> Postgresql reports the error as 'ERROR: column "NAME" does not exist
> LINE 1: DECLARE mycursor BINARY CURSOR FOR SELECT
> "NAME"::text,asbin... ^ '
It looks to my inexperienced eyes that somewhere in the layer
(classitem?) it includes a reference to a field NAME.
It may be that it needs to be specified in the query. Check the table
you imported into PostgreSQL, ie: (I made this up)
# \d chile_comuna
Column | Type
| Modifiers
---------------------+-------------------------
+---------------------------------------------------------
gid | integer | not null default
nextval('gis_urban_gid_seq'::regclass)
commune_name | character varying(24) |
the_geom | geometry |
> More Help: Error with POSTGIS data variable. You specified 'check
> your .map file'. Standard ways of specifiying are : (1)
> 'geometry_column from geometry_table'
This is what you have used, but it only returns the_geom, you need to
specify the table column AS name
> (2) 'geometry_column from (sub query) as foo using unique column
> name using SRID=srid#' Make sure you put in the 'using unique column
> name' and 'using SRID=#' clauses in.
Try also specifying the name column (assuming it does exist in the
table):
the_geom from (gid, the_geom, commune_name AS name from chile_comuna)
as foo using unique column gid using SRID= 4326;
> For more help, please see http://postgis.refractions.net/documentation/
> Mappostgis.c - version of Jan 23/2004.
>
> I use the command shp2pgsql to pass the information of the shapefile
> to postgres table.
>
> MapFile
> LAYER
> NAME 'chile_comuna'
> TYPE POLYGON
> #DATA 'chile_comuna.shp'
> CONNECTIONTYPE postgis
> CONNECTION "user=postgres password=1234 dbname=geo_referencia
> host=localhost"
> DATA "the_geom from chile_comuna"
> .....
>
> can anyone help me? pleasee...
cheers
Ben
--
Ben Madin
REMOTE INFORMATION
t : +61 8 9192 5455
f : +61 8 9192 5535
m : 0448 887 220
Broome WA 6725
ben at remoteinformation.com.au
Out here, it pays to know...
More information about the MapServer-users
mailing list