|
||||
[maplab-users] Problem with MapLab and PostGISGino Lucrezi gino-maplab@lucrezi.netMon, 22 Mar 2004 14:23:08 +0100
|
Hi all! I am using the following items: MapLab (2.0.1-release) MapServer version 4.0.1 OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP SUPPORTS=FREETYPE INPUT=TIFF INPUT=EPPL7 INPUT=JPEG INPUT=POSTGIS INPUT=GDAL INPUT=SHAPEFILE PostgreSQL 7.3.2 PostGIS 0.8.1 In PostGIS I created a table called Capoluoghi, which includes (among other fields) one called the_geom. This table contains 4 rows, one for each chief provincial towns in the region of Abruzzo. The data is the same I have in a shapefile, and it is displayed correctly when I use it from the shapefile. When I try to insert that data in a mapfile using MapEdit, however, it fails. It appears that preview.php is producing a Here is the mapfile I produced, following the PostGIS docs: ----------------------8<--cut-here--8<---------------- MAP NAME "Mappa di Prova" EXTENT 2510011 4600000 2350000 4760000 SIZE 550 500 SHAPEPATH "../shape" SYMBOLSET "./etc/symbols.sym" FONTSET "./etc/fonts.txt" IMAGECOLOR 0 0 0 UNITS METERS IMAGETYPE JPEG WEB MINSCALE 2000 MAXSCALE 300000 IMAGEPATH "/var/www/html/tmp/" IMAGEURL "/tmp/" END REFERENCE STATUS ON IMAGE "images/keymap2.png" SIZE 100 92 EXTENT 2350007 4600009 2510011 4740013 COLOR -1 -1 -1 OUTLINECOLOR 255 0 0 END LEGEND KEYSIZE 18 12 LABEL TYPE BITMAP SIZE MEDIUM COLOR 0 0 89 END END SCALEBAR STATUS ON COLOR 255 255 255 OUTLINECOLOR 0 0 0 BACKGROUNDCOLOR 0 0 0 IMAGECOLOR 255 255 255 UNITS KILOMETERS INTERVALS 5 SIZE 150 5 LABEL SIZE SMALL COLOR 0 0 0 END END LAYER NAME "TestPostgis" STATUS OFF DATA "the_geom FROM capoluoghi" TYPE POINT CONNECTIONTYPE POSTGIS CONNECTION "user=postgres dbname=geodb" END LAYER NAME "25000" GROUP "25" STATUS ON DATA "../demo/mappe/359ovest.tif" TYPE RASTER END LAYER NAME "Limiti Provinciali" GROUP "Altro" STATUS ON DATA "./province" TYPE POLYGON TEMPLATE "ttt_query.html" CLASS NAME "province" OUTLINECOLOR 255 0 0 END END END ----------------------8<--cut-here--8<---------------- If I preview it, everything is OK because my PostGis layer is disabled by default. As soon as I enable it I get this error page: ----------------------8<--cut-here--8<---------------- Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named 'TestPostgis'. in /var/www/html/maplab/htdocs/mapedit/preview.php on line 465 Warning: [MapServer Error]: prep_DB(): Error executing POSTGIS DECLARE (the actual query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d()),'NDR'),OID::text from h#Bh#B WHERE && setSRID('BOX3D(2342011 4600000,2518000 4760000)'::BOX3D, find_srid('','h#Bh#B','') )' Postgresql reports the error '' More Help: Error with POSTGIS data variable. You specified '<check your .map file>'. Standard ways of specifiying are : (1) 'geometry_column from geometry_table' (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. For more help, please see http://postgis.refractions.net/documentation.php Mappostgis.c - version of June 12/2003. in /var/www/html/maplab/htdocs/mapedit/preview.php on line 465 Warning: [MapServer Error]: msPOSTGISLayerParseData(): Error parsing POSTGIS data variable. Must contain 'geometry_column from table_name' or 'geom from (subselect) as foo' (couldnt find ' from '). More help: Error with POSTGIS data variable. You specified 'the_geom FROM capoluoghi'. Standard ways of specifiying are : (1) 'geometry_column from geometry_table' (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. For more help, please see http://postgis.refractions.net/documentation.php Mappostgis.c - version of June 12/2003. in /var/www/html/maplab/htdocs/mapedit/preview.php on line 465 ----------------------8<--cut-here--8<---------------- It appears that the PostGIS query is filled with control characters. That's why I think it's a MapLab issue. If I look at the PostGis log, here is what I see. ----------------------8<--cut-here--8<---------------- Mar 22 13:54:35 localhost postgres[9960]: [1] ERROR: parser: parse error at or near "#" at character 104 Mar 22 13:54:35 localhost postgres[9960]: [2-1] LOG: statement: DECLARE mycursor BINARY CURSOR FOR SELECT asbinary(force_collection(force_2d()),'NDR'),OID::text from h#^SBh#^SB^S Mar 22 13:54:35 localhost postgres[9960]: [2-2] WHERE && setSRID('BOX3D(2342011 4600000,2518000 4760000)'::BOX3D, find_srid('','h#^SBh#^SB^S','') ) ----------------------8<--cut-here--8<---------------- Again, lots of control characters. I would also mention that I correctly created an extra index on oid (even though it shouldn't be needed in this instance). The table is working correctly, and SELECT the_geom FROM capoluoghi yelds the desired results. For these reasons, I don't believe I'm doing anything wrong on the mapfile or on PostGis. Since the query contains random (garbage) characters, it isn't the fault of PostgreSQL or PostGIS. So, it either is a problem with my MapLab installation or a bug... Can anyone help me? Gino
This archive was generated by Pipermail. |
MapTools.org -- Hosted by DM Solutions Group |