Re: [Talk-de] Mapnik WMS Server will nicht mit postgis

2008-11-13 Diskussionsfäden Hermann Schwaerzler
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

2008-11-13 Diskussionsfäden Jan-Benedict Glaw
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

2008-11-13 Diskussionsfäden freeworld
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

2008-11-12 Diskussionsfäden OSM-Held Mapper
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

2008-11-12 Diskussionsfäden FreeWorld
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

2008-11-12 Diskussionsfäden Jan-Benedict Glaw
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

2008-11-12 Diskussionsfäden Jan-Benedict Glaw
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