[Talk-de] AddGeometryColumn() War: Re: Abstände zu POIs visualisieren?
Stefan Schwan
stefan.schwan at googlemail.com
Do Nov 12 18:06:21 UTC 2009
Hallo!
Frederik Ramm schrieb:
> create table postboxareas as select buffer(way, 500) from
> planet_osm_point where amenity='post_box';
>
> Die koennte man jetzt mit einer geeigneten Mapnik-Regel bereits sichtbar
> machen - bei Mapnik hat man ja immer einen "Style" und einen "Layer"
> dazu, das muesste etwa so aussehen:
>
> <Style name="postboxareas">
> <Rule>
> <PolygonSymbolizer>
> <CssParameter name="fill">#ddd</CssParameter>
> </PolygonSymbolizer>
> </Rule>
> </Style>
> ...
> <Layer name="postboxarealayer">
> <StyleName>postboxareas</StyleName>
> <Datasource>
> <hier die ganzen PostGIS-Zugangsparameter, Username, Passwrd usw.>
> <Parameter name="table">postboxareas</Parameter>
> </Datasource>
> </Layer>
Als absoluter Anfänger habe ich das mal ausprobiert: Ich bekomme von
Mapnik so nur eine Fehlermeldung:
UserWarning: PostGIS Driver Error: Geometry column not specified or
found in geometry_columns table: 'postboxareas'. Try setting the
'geometry_field' parameter or adding a proper geometry_columns record
(encountered during parsing of layer 'postboxarealayer')
Ich habe inzwischen herausbekommen, das die Funktion addgeometrycolumn
hier Abhilfe schaffen soll, und die neue Tabelle mit der fehlenden
Spalte ausrüstet und sie der Tabelle geometry_columns einträgt.
Ich habe also versucht, nach
CREATE TABLE postboxareas AS SELECT buffer(way, 500) FROM
planet_osm_point WHERE amenity='post_box';
die Abfrage
SELECT AddGeometryColumn ( 'postboxareas', 'geom', 900913, 'POLYGON', 2 );
auszuführen.
Mapnik reagiert darauf allerdings nur mit:
"bad lexical cast: source type value could not be interpreted as target"
Mein nächster Ansatz war, die Tabelle erstmal leer zu erzeugen, und
AddGeometryColumn darauf anzuwenden, bevor die Daten reinkommen:
CREATE TABLE postboxareas2 (buffer GEOMETRY);
SELECT AddGeometryColumn ( 'postboxareas2', 'geom', 900913, 'POLYGON', 2 );
INSERT INTO postboxareas2 select buffer(way, 500) FROM planet_osm_point
WHERE amenity='post_box';
Ergebnis ist aber erneut:
"bad lexical cast: source type value could not be interpreted as target"
Stimmt da jetzt etwas an meiner osm.xml nicht, oder bin ich das
Ausführen von AddGeometryColumn falsch angegangen?
Wie gehts richtig?
Vielen Dank,
Stefan
Mehr Informationen über die Mailingliste Talk-de