Mel. Great, glad that helped you fix the problem! Thanks for reporting
back, but in the future remember to cc the list.
Cheers,
Dane
--- \o/ ---
Sent from my phone
On Dec 28, 2009, at 11:21 AM, mel yuanhang <[email protected]> wrote:
Thank you very much Dane.
After following your instructions I fixed the problem.
In my case, it might be a QGIS problem. As I imported a shapefile
into PostGIS, because of my typo the PostGIS table has a slightly
different name. Somehow, the name shows in the geometry_columns
table is the same as the old shapefile. Once I applied the
populate_spatial_column to my table, the problem is solved.
Happy new year!
Thanks,
Mel
On Mon, Dec 28, 2009 at 10:38 AM, Dane Springmeyer
<[email protected]> wrote:
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