Ich bin für 1. Ist leichter zum Auswerten und wenn die Geschwindigkeit tatsächlich reduziert wird, dann lässt es sich recht leicht filtern: source:maxspee=:urban und maxspeed>40.
PS: Ich bin kein Grüner und würde trotzdem 80 überland bevorzugen, denn auch wenn die Autos deutlich stabiler werden, für 100 frontal sind sie nicht gebaut! (Und 30er-Zone abseits der Landesstraße befürworte ich auch). So und jetzt lyncht mich
# 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
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
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?
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…)
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)
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?
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?