Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
hallo freeworld wrote: [...] Parameter name=table (select * from planet_osm_roads order by z_order) as roads /Parameter [...] nur ein schuss ins blaue: hast du schon versucht, das in PostGIS als VIEW zu machen (in etwa so: CREATE VIEW v_roads AS SELECT * FROM planet_osm_roads order by z_order;) und diesen view dann als parameter für table zu verwenden (Parameter name=tablev_roads/Parameter)? viele grüße hermann ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
On Thu, 2008-11-13 11:12:13 +0100, freeworld [EMAIL PROTECTED] wrote: Möchte ich jedoch beispielsweise die Straßen aus der Datenbank haben und frage den Layer roads per WMS ab, so bekomme ich wieder ein weißes Bild ohne irgendne Fehlermeldung. In der osm.xml sieht die Stelle so aus: Layer name=roads status=on srs=+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [EMAIL PROTECTED] +no_defs +over !--StyleNameroads-casing/StyleName-- StyleNameroads/StyleName Datasource Parameter name=typepostgis/Parameter Parameter name=hostlocalhost/Parameter Parameter name=userme/Parameter Parameter name=dbnameosm/Parameter Parameter name=table (select * from planet_osm_roads order by z_order) as roads /Parameter Parameter name=estimate_extentfalse/Parameter Parameter name=extent-20037508,-19929239,20037508,19929239/Parameter /Datasource /Layer Hast Du den Apache mal ge-strace-t, um zu gucken, was Mapnik dann so treibt? MfG, JBG -- Jan-Benedict Glaw [EMAIL PROTECTED] +49-172-7608481 Signature of: Gib Dein Bestes. Dann übertriff Dich selbst! the second : signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
Hallo nochmal, Ich bekomms leider nicht hin. Ich habe den letzten diff des Threads hier: http://trac.mapnik.org/ticket/129 und mein osm.xml verwendet, was ich mir zuvor erstellt habe. Der diff ist hier: http://trac.mapnik.org/attachment/ticket/129/wms_theofilu.diff Jedenfalls ist es haargenau das gleiche Spiel. Ich kann zwar jetzt die osm.xml benutzen, aber das prinzipielle Problem besteht weiterhin. Frage ich mit einem WMS-Request den Layer world ab so bekomme ich ne Karte mit den Grenzen angezeigt. Die entsprechende Stelle in der osm.xml sieht so aus: Layer name=world status=on srs=+proj=merc +datum=WGS84 +over StyleNameworld/StyleName Datasource Parameter name=typeshape/Parameter Parameter name=file/home/me/mapnik/world_boundaries/world_bnd_m/Parameter /Datasource /Layer Das klappt vermutlich, weil er die Grenzen aus nem extra Shapefile holt und nicht aus der Datenbank. Möchte ich jedoch beispielsweise die Straßen aus der Datenbank haben und frage den Layer roads per WMS ab, so bekomme ich wieder ein weißes Bild ohne irgendne Fehlermeldung. In der osm.xml sieht die Stelle so aus: Layer name=roads status=on srs=+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [EMAIL PROTECTED] +no_defs +over !--StyleNameroads-casing/StyleName-- StyleNameroads/StyleName Datasource Parameter name=typepostgis/Parameter Parameter name=hostlocalhost/Parameter Parameter name=userme/Parameter Parameter name=dbnameosm/Parameter Parameter name=table (select * from planet_osm_roads order by z_order) as roads /Parameter Parameter name=estimate_extentfalse/Parameter Parameter name=extent-20037508,-19929239,20037508,19929239/Parameter /Datasource /Layer Ich befürchte es liegt an der Projektion. Ich habe die Daten deshalb in 2 verschiedene Datenbanken mit osm2pgsql importiert. Einmal mit -l (also EPSG:4326) und einmal mit -m (also diese komische GoogleProjektion EPSG:900913). Ich hab es mit beiden Projektionen ausprobiert und komme leider immer zu dem selben Ergebnis: ein weißes Bild als Rückgabe. Ich hab natürlich in der osm.xml die Projektion des Layers geändert und mal versucht statt srs=+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [EMAIL PROTECTED] +no_defs +over die Projektion zu verwenden die ich in der Datenbank hab: srs=+proj=longlat +datum=WGS84 +over bringt aber auch nichts. Eigentlich müsste doch der ogcserver also der WMS Server von Mapnik auch umprojezieren können. Aber er kann ja nicht mal die Daten in der Projektion darstellen, wie sie in der Datenbank vorliegen. Seltsam seltsam... Bin wirklich ratlos. Hab auch keine Idee mehr. Vermutlich hab ich einfach noch irgendwo n Einstellungsfehler oder es geht tatsächlich nicht. Grüße ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
[Talk-de] Mapnik WMS Server will nicht mit postgis
Hallo, ich hoffe hier kann mir jemand helfen. Sorry, wenn es die falsche Liste sein sollte! Ich möchte einen WMS Server mit Mapnik aufsetzen. Dabei sollen Daten von einer Postgis Datenbank eingelesen und gerendert werden. Leider klappt das nicht. Wenn ich ein Shapefile als Datenquelle benutze, geht alles wunderbar. Wenn ich jedoch in der map_factory.py die datasource auf Postgis umstelle bekomme ich ein weißes Bild vom WMS Server zurückgeliefert. Der Apache bringt keinerlei Fehlermeldung. Die Verbindung zur Datenbank klappt wunderbar. Unsicherheit besteht meinerseits allerdings in dem Table-Parameter der Zeile: lyr.datasource = PostGIS(host='localhost',user='me',password='',dbname='osm',table='test') in der map_factory.py In meiner Datenbank habe ich eine tabelle angelegt, die testweise nur alle boundarys enthalten soll: create table test as select way from planet_osm_line where boundary='administrative' Irgendwie scheint auch gar nicht abgeprüft zu werden, was da in dem table Parameter drin steht. Da kommt keinerlei Fehlermeldung, wenn ich da irgendnen Quark reinschreibe. Wenn ein anderer Parameter z.B. dbname oder user oder sowas nicht stimmt, kommen entsprechende Fehlermeldungen. Kann mir eine sagen, was genau ich verkehrt mache? Grüße und Danke schonmal. Hier noch was ich bisher gemacht habe: germany.osm.bz2 von der Geofabrik geladen und mit osm2pgsql -l -d osm germany.osm.bz2 in meine Postgis-Datenbank importiert. Nen Apache aufgesetzt und dann den ogcserver ausprobiert (neueste Version aus dem svn) und mich dabei an folgende Tutorials gehalten: http://trac.mapnik.org/browser/trunk/docs/ogcserver/readme.txt http://mapnik-utils.googlecode.com/svn/trunk/tutorials/wms/readme Meine map_factory Klasse in Python sieht momentan so aus: ** from mapnik.ogcserver.WMS import BaseWMSFactory from mapnik import * #Shapefile, Layer, Style, Rule, Color, PolygonSymbolizer, LineSymbolizer SHAPEFILE = '/home/me/mapnik/wms/sample_data/world_borders' PROJ4_STRING = '+init=epsg:4326' class WMSFactory(BaseWMSFactory): def __init__(self): BaseWMSFactory.__init__(self) sty = Style() rl = Rule() rl.symbols.append(PolygonSymbolizer(Color(248,216,136))) rl.symbols.append(LineSymbolizer(Color(0,0,0),1)) sty.rules.append( rl ) self.register_style('s', sty) lyr = Layer('borders',PROJ4_STRING) lyr.title = 'Deutschland' lyr.abstract = 'ger test' lyr.queryable = True lyr.datasource = PostGIS(host='localhost',user='me',password='',dbname='osm',table='test') #lyr.datasource = Shapefile(file=SHAPEFILE) #das Shapefile funktioniert korrekt! self.register_layer(lyr,'s',('s',)) self.finalize() ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
Hallo und danke für deine Antwort! Hilft leider bei meinem Problem noch nicht so richtig weiter glaub ich. In der osm.xml steht ja, so weit ich weiß, nicht drin, wo die Daten herkommen, sondern nur wie sie aussehen sollen. Jan-Benedict Glaw schrieb: Ich hab' das Mapnik'sche WMS-Frontend noch nie genutzt, aber gefühlt ist es falsch, dort eine Tabelle anzugeben. Naja ich bin nach diesen Hinweisen hier gegangen: http://trac.mapnik.org/wiki/PostGIS Unterm Strich würde ich erwarten, daß da sowas wie das osm.xml eingefüttert werden muß, was die ganzen Mal-Anweisungen enthält. Das ist glaub ich ein anderes Thema. Ich hatte gelesen, dass man wohl zuerst ein Mapobjekt mit der osm.xml laden soll, dann alle Eigenschaften in ner Schleife auslesen und der WMS-Factory hinzufügen muss. Hab da aber auch nicht so den Plan. Das wollte ich mir aufheben, wenn das einfach rendern aus der Datenbank überhaupt irgendwie klappt. Dazu gibts ein Ticket: http://trac.mapnik.org/ticket/129 Daraus kannst Du vermutlich den Code klauen--oder eben warten, bis entsprechende Distributions-Pakete verfügbar sind. Muss mal schaun, was ich davon verwenden kann. Ich seh schon, da muss ich noch viel rumprobieren. Aber soweit zur Theorie. Gemacht hab' ich das auch noch nicht. Und ad hoc lassen sich auch keine Anleitungen finden, wie man genau dieses Szenario, live Daten aus einer mit osm2pgsql erzeugten PostGIS-Datenbank mit dem osm.xml zu rendern, aufsetzt. Wenn Du das so zum Laufen bekommst, wär' das sicher mal eine Seite im Wiki wert... Wenn ich das irgendwie hinbekommen sollte, gibts ne Wikiseite - versprochen! Grüße signature.asc Description: OpenPGP digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
On Wed, 2008-11-12 20:58:22 +0100, FreeWorld [EMAIL PROTECTED] wrote: Hallo und danke für deine Antwort! Hilft leider bei meinem Problem noch nicht so richtig weiter glaub ich. In der osm.xml steht ja, so weit ich weiß, nicht drin, wo die Daten herkommen, sondern nur wie sie aussehen sollen. Doch, genau das. In meiner osm.xml z.B. (die entspricht, bis auf Pfade zu Icons, dem, was OSM auch in subversion hat) findet man (nebst vielen weiteren hits): Layer name=water_areas status=on srs=+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m [EMAIL PROTECTED] +no_defs +over StyleNamewater_areas/StyleName Datasource Parameter name=typepostgis/Parameter Parameter name=host/var/run/postgresql/Parameter Parameter name=dbnamegis/Parameter Parameter name=estimate_extentfalse/Parameter Parameter name=table(select * from planet_osm_polygon where waterway IS NOT NULL or landuse='reservoir' or landuse ='water' or natural='lake' or natural='water' or natural='land' order by z_order) as water_areas/Parameter Parameter name=extent-20037508,-19929239,20037508,19929239/Parameter /Datasource /Layer (Das findest Du dann im SVN unter applications/rendering/mapnik/) In der Datei steht also *alles* (bis auf die Rohdaten) drin, was man braucht, um ein Bild zu malen. Jan-Benedict Glaw schrieb: Ich hab' das Mapnik'sche WMS-Frontend noch nie genutzt, aber gefühlt ist es falsch, dort eine Tabelle anzugeben. Naja ich bin nach diesen Hinweisen hier gegangen: http://trac.mapnik.org/wiki/PostGIS Das ist hier IMHO total umständlich dargestellt. Stell' Dir vor, Du würdest Karten so rendern lassen wollen, wie sie auf den tile servern liegen. Dann müßtest Du _alle_ Regeln, die im osm.xml implementiert sind, jeweils über mehrere Zeilen Python-Code neu erzeugen. Unterm Strich würde ich erwarten, daß da sowas wie das osm.xml eingefüttert werden muß, was die ganzen Mal-Anweisungen enthält. Das ist glaub ich ein anderes Thema. Ich hatte gelesen, dass man wohl zuerst ein Mapobjekt mit der osm.xml laden soll, dann alle Eigenschaften in ner Schleife auslesen und der WMS-Factory hinzufügen muss. Gemacht hab' ich das ja auch noch nie, aber so wird es in dem Ticket (inkl. Source zum cut'n'pasten), das ein paar Zeilen weiter unten steht, beschrieben. Hab da aber auch nicht so den Plan. Das wollte ich mir aufheben, wenn das einfach rendern aus der Datenbank überhaupt irgendwie klappt. Ich würds genau andersherum machen. Wozu viel Arbeit in hunderte von Regeln investieren, wenn man mit dem Abmausen von 20 Zeilen aus einem Ticket dasselbe Ergebnis bekommt? Dazu gibts ein Ticket: http://trac.mapnik.org/ticket/129 Daraus kannst Du vermutlich den Code klauen--oder eben warten, bis entsprechende Distributions-Pakete verfügbar sind. Muss mal schaun, was ich davon verwenden kann. Ich seh schon, da muss ich noch viel rumprobieren. Ich denk' eher, daß das Abmausen des 2. Ticket-Eintrages (Hello, I finished the function[...]) schon die Lösung Deines Problemes ist. MfG, JBG -- Jan-Benedict Glaw [EMAIL PROTECTED] +49-172-7608481 Signature of: The course of history shows that as a government grows, liberty the second : decreases. (Thomas Jefferson) signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Mapnik WMS Server will nicht mit postgis
On Wed, 2008-11-12 19:01:42 +0100, OSM-Held Mapper [EMAIL PROTECTED] wrote: lyr.datasource = PostGIS(host='localhost',user='me',password='',dbname='osm',table='test') in der map_factory.py Ich hab' das Mapnik'sche WMS-Frontend noch nie genutzt, aber gefühlt ist es falsch, dort eine Tabelle anzugeben. Unterm Strich würde ich erwarten, daß da sowas wie das osm.xml eingefüttert werden muß, was die ganzen Mal-Anweisungen enthält. Dazu gibts ein Ticket: http://trac.mapnik.org/ticket/129 Daraus kannst Du vermutlich den Code klauen--oder eben warten, bis entsprechende Distributions-Pakete verfügbar sind. Aber soweit zur Theorie. Gemacht hab' ich das auch noch nicht. Und ad hoc lassen sich auch keine Anleitungen finden, wie man genau dieses Szenario, live Daten aus einer mit osm2pgsql erzeugten PostGIS-Datenbank mit dem osm.xml zu rendern, aufsetzt. Wenn Du das so zum Laufen bekommst, wär' das sicher mal eine Seite im Wiki wert... MfG, JBG -- Jan-Benedict Glaw [EMAIL PROTECTED] +49-172-7608481 Signature of: The course of history shows that as a government grows, liberty the second : decreases. (Thomas Jefferson) signature.asc Description: Digital signature ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de