Hello Mel,
In general the error you've pasted from the Postgres logs will be
avoided in the upcoming 0.7.0 release. Iv'e recently added to and
updated the postgis plugin with new features and error messages that
should avoid this problem in the future(it is a common one so sorry
you've run into it) it should also make my below explanation uneeded
or at least shorter in the future. What is happening is that the
geometry field for your table is unknown, llikely because the table
lacks a record in the geometry_columns table (but it can also occur
for other reasons).
Also, it appears that those logs do not exactly correspond to the
query that is in the 'table' param in your XML. I notice the
characteristic extra syntax of 'WHERE GeometryType("the_geom") IN ' as
coming from QGIS/Quantumnik. Do you perhaps have more than one
geometry field? You can try specifying geometry_field="the_geom" in
your XML datasource parmeters, but overall I would make sure you have
a proper record in the geometry_columns. PostGIS 1.4 has a nice
function called 'populate_geometry_columns' (or something like that)
which may help. Mapnik0.6.1 needs this metadata, but in mapnik0.7.0 if
you supply the geometry_field and SRID then this
metadata will be optional.
Lastly, it appears that the layer srs parameter is wrong which may
prevent your map from showing any features once you get the query
working.
I would recommend installing nik2img and running it on your XML while
fixing the layer srs to your correct projection for your data and
changing the 'table' parameter to just your table name without a
subselect. If you still get errors in your logs after confirming the
geometry_columns are correct for your table the. Please send the error
again.
Dane
--- \o/ ---
Sent from my phone
On Dec 28, 2009, at 7:33 AM, mel yuanhang <[email protected]> wrote:
> Hi,
> I could not render a PostGIS layer using the following setting on
> WindowsXP,
> -Mapnik 0.6.1
> -PostgreSQL 8.4/PostGIS 1.4
>
> It works fine for shapefiles. But as I connect to a PostGIS Layer, I
> got the following errors in the Postgresql log file,
>
> 2009-12-24 14:05:03 ESTERROR: zero-length delimited identifier at
> or near """" at character 17
> 2009-12-24 14:05:03 ESTSTATEMENT: SELECT AsBinary("",'NDR') AS geom
> from (SELECT * FROM "mains_update_dlz" WHERE GeometryType
> ("the_geom") IN ('LINESTRING','MULTILINESTRING')) as
> "mains_update_dlz" WHERE "" && SetSRID('BOX3D(1835078.82466
> 710209.522025,1842753.74984 713266.403181)'::box3d,0)
>
>
> The XML file is shown below,
>
> <?xml version="1.0" ?><Map bgcolor="rgb(255,255,255)"
> srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">
> <Style name="mains_update_dlz_style">
> <Rule>
> <LineSymbolizer>
> <CssParameter name="stroke">rgb(229,210,191)</
> CssParameter>
> <CssParameter name="stroke-width">0.96</CssParameter>
> <CssParameter name="stroke-linejoin">bevel</
> CssParameter>
> <CssParameter name="stroke-linecap">square</
> CssParameter>
> </LineSymbolizer>
> </Rule>
> </Style>
> <Layer clear_label_cache="0" name="mains_update_dlz"
> srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" status="1">
> <StyleName>mains_update_dlz_style</StyleName>
> <Datasource>
> <Parameter name="dbname">postgis</Parameter>
> <Parameter
> name=
> "extent">1835078.82466,710209.522025,1842753.74984,713266.403181</
> Parameter>
> <Parameter name="host">localhost</Parameter>
> <Parameter name="password">postgres</Parameter>
> <Parameter name="port">5432</Parameter>
> <Parameter name="estimate_extent">false</Parameter>
> <Parameter name="table">(SELECT * FROM mains_update_dlz)
> as mains_update_dlz</Parameter>
> <Parameter name="type">postgis</Parameter>
> <Parameter name="user">postgres</Parameter>
> </Datasource>
> </Layer>
> </Map>
>
>
> Thank you very much,
>
> Mel
>
> _______________________________________________
> Mapnik-users mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/mapnik-users
_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users