so, jetzt ist es bunt. Die Erklärung der Farben gibts rechts oben unter “Info”
Banause…ich sollte den wohl mal ausm Layerswitcher nehmem
Maxspeed Map für Mapserver&Postgres Besitzer
…oder ich bastel mir ein Overlay…
wget http://download.geofabrik.de/osm/europe.osm.pbf
osmosis --read-pbf europe.osm.pbf --tf accept-ways maxspeed=* maxspeed:forward=* maxspeed:backward=* --tf reject-relations --used-node --write-xml maxspeed.osm
sudo su postgres
createdb -E utf8 maxspeed
cat /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql | psql -d maxspeed
cat /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql | psql -d maxspeed
osm2pgsql -l -d maxspeed -p osm -s -S /usr/share/osm2pgsql/maxspeed.style -C 11000 maxspeed.osm
/usr/share/osm2pgsql/maxspeed.style ist
# OsmType Tag DataType Flags
way highway text linear
way maxspeed text linear
way maxspeed:forward text linear
way maxspeed:backward text linear
node,way z_order int4 linear # This is calculated during import
way way_area real # This is calculated during import
sudo su postgres
psql -d maxspeed
update osm_line set maxspeed = "maxspeed:forward" where "maxspeed:forward" is not null and maxspeed is null;
update osm_line set maxspeed = "maxspeed:backward" where "maxspeed:backward" is not null and maxspeed is null;
ALTER TABLE osm_line DROP COLUMN "maxspeed:forward";
ALTER TABLE osm_line DROP COLUMN "maxspeed:backward";
grant SELECT on osm_line to "www-data";
create index osm_line_highway_idx on osm_line(highway);
ALTER TABLE osm_line ADD COLUMN "speedclasss"
UPDATE osm_line set speedclass = '1' where to_number(maxspeed,'9999D99')>0 and to_number(maxspeed,'9999D99')<31 and textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')
UPDATE osm_line set speedclass = '2' where to_number(maxspeed,'9999D99')>30 and to_number(maxspeed,'9999D99')<61 and textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')
UPDATE osm_line set speedclass = '3' where to_number(maxspeed,'9999D99')>60 and to_number(maxspeed,'9999D99')<91 and textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')
UPDATE osm_line set speedclass = '4' where to_number(maxspeed,'9999D99')>90 and to_number(maxspeed,'9999D99')<121 and textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')
UPDATE osm_line set speedclass = '5' where (to_number(maxspeed,'9999D99')>120 and textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')) OR NOT textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')
danach legen wir die Rendering Regeln an, am besten da, wo die normale Mapfile ist, also bspw eine Datei maxspeed.map
LAYER
STATUS ON
GROUP "maxspeed"
PROJECTION
"init=epsg:4326"
END
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=maxspeed user=www-data password=www-data port=5432"
PROCESSING "CLOSE_CONNECTION=DEFER"
maxscaledenom 54180
minscaledenom 0
TYPE LINE
NAME "maxspeedclosebunt"
DATA "way from (select way, osm_id ,highway,speedclass from osm_line where (highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','unclassified','residential') and maxspeed is not null) order by z_order) as foo using unique osm_id using srid=4326"
CLASSITEM "speedclass"
CLASS
EXPRESSION "1"
STYLE
WIDTH 3
COLOR 0 255 0
END
END
CLASS
EXPRESSION "2"
STYLE
WIDTH 3
COLOR 255 240 0
END
END
CLASS
EXPRESSION "3"
STYLE
WIDTH 3
COLOR 255 136 0
END
END
CLASS
EXPRESSION "4"
STYLE
WIDTH 3
COLOR 255 0 0
END
END
CLASS
EXPRESSION "5"
STYLE
WIDTH 3
COLOR 0 0 0
END
END
END
LAYER
STATUS ON
GROUP "maxspeed"
PROJECTION
"init=epsg:4326"
END
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=maxspeed user=www-data password=www-data port=5432"
PROCESSING "CLOSE_CONNECTION=DEFER"
maxscaledenom 1743443
minscaledenom 54180
TYPE LINE
NAME "maxspeedfarbunt"
DATA "way from (select way, osm_id ,highway,speedclass from osm_line where (highway in ('motorway','trunk','primary') and maxspeed is not null) order by z_order) as foo using unique osm_id using srid=4326"
CLASSITEM "speedclass"
CLASS
EXPRESSION "1"
STYLE
WIDTH 3
COLOR 0 255 0
END
END
CLASS
EXPRESSION "2"
STYLE
WIDTH 3
COLOR 255 255 0
END
END
CLASS
EXPRESSION "3"
STYLE
WIDTH 3
COLOR 255 136 0
END
END
CLASS
EXPRESSION "4"
STYLE
WIDTH 3
COLOR 255 0 0
END
END
CLASS
EXPRESSION "5"
STYLE
WIDTH 3
COLOR 0 0 0
END
END
END
LAYER
STATUS ON
GROUP "maxspeed"
PROJECTION
"init=epsg:4326"
END
CONNECTIONTYPE postgis
CONNECTION "host=localhost dbname=maxspeed user=www-data password=www-data port=5432"
PROCESSING "CLOSE_CONNECTION=DEFER"
minscaledenom 1743443
maxscaledenom 13867550
TYPE LINE
NAME "maxspeedwmbunt"
DATA "way from (select way, osm_id ,highway,speedclass from osm_line where highway='motorway' and maxspeed is not null order by z_order) as foo using unique osm_id using srid=4326"
CLASSITEM "speedclass"
CLASS
EXPRESSION "1"
STYLE
WIDTH 3
COLOR 0 255 0
END
END
CLASS
EXPRESSION "2"
STYLE
WIDTH 3
COLOR 255 255 0
END
END
CLASS
EXPRESSION "3"
STYLE
WIDTH 3
COLOR 255 136 0
END
END
CLASS
EXPRESSION "4"
STYLE
WIDTH 3
COLOR 255 0 0
END
END
CLASS
EXPRESSION "5"
STYLE
WIDTH 3
COLOR 0 0 0
END
END
END
Sodele, und zuletzt gehen wir in unsere “normale” Mapfile und binden die neue Datei ein. Bei mir sieht das so aus…ganz unten vorm letzten END
INCLUDE ‘/osm/mapserver/maxspeed.map’
Fertig. Jetzt kann man in OL das WMS Layer einbinden. Man kann sowohl die ganze Gruppe (maxspeed hier), also aich die einzelnen Layer einbinden. Bspw so
wms maxspeed = new OpenLayers.Layer.WMS("Maxspeed Layer","http://mein.server.de/wms?", {
layers: 'maxspeed', transparent: true,
projection:new OpenLayers.Projection("EPSG:900913"),
format: 'aggpng24'
},
{isBaseLayer: false}
);
der hat mich eigentlich mehr verwirrt als gestört. was macht dieser komische Punkt da? ist da was besonders? und wenn ja, was?
bis ich geschnallt hatte, dass das der Mittelpunkt (Punkt!) sein soll, hat’s etwas gedauert.
nun denn, Gefahr erkannt, …
Gruss
walter
so, jetzt ist es bunt. Die Erklärung der Farben gibts rechts oben unter “Info”
Super, danke dafür!
Einen Änderungswunsch habe ich aber:
Tempo 120 hat die gleiche Farbe wie Tempo 100, aber ich würde gerne auf der Karte sehen können, ob ich z.B. auf einer Bundesstraße 100 oder 120 km/h fahren darf. Vielleicht magst du den Farbbereich anpassen oder einen weiteren einfügen?
Hallo Thomas,
sieht sehr gut aus! Kannst du none und 130 noch unterscheiden?
so?
0-30 Green
31-50 Yellow
51-100 Orange
101-130 Red
131 and “none” Blue
non-numeric Black
Ich hab auch noch einen Wunsch:
Deine Liste im Bereich 51-100 abgeändert auf 51-80 und 81-100 - hier in A gibt es viele Bundesstraßen auf denen abschnittsweise nur 80 zulässig sind (100=max). (Nur frag mich nicht nach der Farbe - denn dein Schema ist eigentlich schon großartig, bis es wer durcheinander wirbelt - so wie ich…)
Und hier in Hessen gibt es sehr viel 70 … also wäre 51-70 71-100 gut
Oder wie wäre es mit einem kontinuierlichen Farbverlauf in Abhängigkeit der Geschwindigkeit?
Sprich, 80 nicht zusammen mit 100, 100 nicht zusammen mit 120, und 130 nicht zusammen mit none, dann 51-70 und 71-100
Ich fürchte, jeder mag andere Geschwindigkeiten abgegrenzt haben. Mehr als 6 Geschwindigkeitsklassen möchte ich ungern darstellen. Ich habe jetzt schon Probleme, denn jede Farbe sollte halbwegs auf jeder Straße, vom blauen motorway bis gelben tertiary sichtbar sein.
Ich denke mal drüber nach und bin für Vorschläge offen, am besten die gesamten 6 Kategorieren (bzw 5 wenn man non-numeric, ggf zusammen mit none als gesetzt ansieht)
@Thomas… vielleicht wäre es vielleicht gar nicht schlecht, wenn Du die Farben wie bei der ITO Map darstellen würdest.
Keine Ahnung, wie aufwändig das ist:
Wie wäre es mit einer Anzahl Reglern etc. wo man die Grenzen selber festlegen kann. Wenn du ohnehin instant renderst, müsste das doch möglich sein, oder?
Oder man macht zwei Schematas:
Eines für den niedrigen Geschwindigkeitsbereich und eines für den hohen… nur so als Idee…
Dann kann man beide mit weniger Farben plaktiver darstellen und hat aber doch alles erfasst.
Ich möchte der allgemeinen Euphorie hier etwas widersprechen
Ich finde die Karte toll und habe sie am Wochenende auch schon ein bisschen zum mappen genutzt.
Da waren aber alle getaggten Wege noch rot, so dass ich auf Anhieb fehlende Teilstücke identifizieren konnte.
Mit den Farben muss man schon genauer hinschauen, trotz des Bemühens von Thomas, kann ich gelb und orange nur schwer von tertiary und secondary highways unterscheiden.
Mir hat rot gereicht, ich plädiere dafür
Wieso nicht für unterschiedliche Geschwindigkeiten gleich die ITO Map nutzen, ist die so veraltet?
Grüße,
Daniel
Wieso nicht für unterschiedliche Geschwindigkeiten gleich die ITO Map nutzen, ist die so veraltet?
nö, die Daten sind überhaupt nicht alt. Die Daten wird inetwa jede Woche einmal upgedatet.
Die ITO-Map ist einfach nur sehr lahm.
Ich möchte der allgemeinen Euphorie hier etwas widersprechen
Ich finde die Karte toll und habe sie am Wochenende auch schon ein bisschen zum mappen genutzt.
Da waren aber alle getaggten Wege noch rot, so dass ich auf Anhieb fehlende Teilstücke identifizieren konnte.
Mit den Farben muss man schon genauer hinschauen, trotz des Bemühens von Thomas, kann ich gelb und orange nur schwer von tertiary und secondary highways unterscheiden.Mir hat rot gereicht, ich plädiere dafür
Wieso nicht für unterschiedliche Geschwindigkeiten gleich die ITO Map nutzen, ist die so veraltet?
Grüße,
Daniel
versuche mal die Karte und wechsele das Base-Layer zu Mapquest. Die Karte ist dezenter und daher ist das Overlay besser zu erkennen. Es ist aber kein Problem ein “Nur-Rot” Layer einzubauen
http://suncobalt.dyndns.org:82/maxspeedtest.php
sieht sehr gut aus! Kannst du none und 130 noch unterscheiden?
Wo wir gerade beim Wünschen sind, wäre maxspeed=signals gestrichelt dargestellt auch noch schön.
Edbert (EvanE)
versuche mal die Karte und wechsele das Base-Layer zu Mapquest. Die Karte ist dezenter und daher ist das Overlay besser zu erkennen. Es ist aber kein Problem ein “Nur-Rot” Layer einzubauen
http://suncobalt.dyndns.org:82/maxspeedtest.php
Ist schon besser mit dem anderen Base-Layer.
Die Darstellung bringt aber auch Probleme mit sich.
http://suncobalt.dyndns.org:82/maxspeedtest.php?zoom=15&lat=52.37962&lon=9.69836&layers=T0BFT (Mist, der Permalink macht den Layer nicht mit, bitte Mapquest selbst einstellen)
Direkt oberhalb des Mitttelpunktes (wambacher: ) befindet sich eine Lücke in maxspeed, die durch den roten Hintergrund (Mapquest) an dieser Stelle nicht richtig auffällt.
Deshalb: Ein roter Layer extra für mich wäre super
Grüße
Daniel
Deshalb: Ein roter Layer extra für mich wäre super
Schon drin, die Rendering Regeln hatte ich ja noch, die DB ist die gleiche, musste sie nur in OL einbinden. Der Permalink ging nicht, weil ich in dem Moment das “Nur Rot” Layer eingefügt habe