Maxspeed, Fortsetzung

Das würde ich mich nicht trauen. Es existiert bereits, und so rein von der Logik her betrachtet wird es wohl vermehrt kommen.

Hab grad mal die aktuelle germany-Datei durchsucht: es gibt 1358 Relationen mit “type=street”. Meistens wurde nur der Straßenname in die Relationsebene gezogen - aber nicht immer. Es gibt auch Relationen, bei denen auch die anderen Tags auf die Relationsebene gewandert sind. Beispiel:


<relation id="85484" version="6" timestamp="2010-08-08T14:01:16Z" changeset="5433421" uid="7471" user="Irrfahrt">
	<member type="way" ref="6073848" role=""/>
	<member type="way" ref="31515421" role=""/>
	<member type="way" ref="71123029" role=""/>
	<tag k="highway" v="secondary"/>
	<tag k="lanes" v="1"/>
	<tag k="maxspeed" v="50"/>
	<tag k="name" v="Merziger Straße"/>
	<tag k="type" v="street"/>
</relation>

Soweit ich weiß, wird diese Darstellung auch von Mapnik unterstützt.

Diese Relation 85484 trägt keine Information, die nicht schon an den Ways dran wäre. Ich bin für löschen. → done.

Aber nur weil die Tags auch in den ways sind. :wink:

Das wiki sagt es auch anders:
Dort steht:
“Die Angabe kann und soll auch in jenen Fällen erfolgen, in denen das Limit nicht explizit angegeben ist (z.B. durch Schilder), sondern implizit durch allgemeine Verkehrsregeln.”

“Die Angabe kann und soll erfolgen”. Was ist sagt das Wiki etwas anderes?

anders als:

Dann sagt doch mal, wie man innerorts und ausserorts trennen kann.

Ich habe mal eine Sendung gesehen in der ein System besprochen wurde das in Fussgaengerzonen per Videoueberwachung automatisch nach “terroristischem Verhalten” suchen sollte. Als nachgefragt wurde was “terroristisches Verhalten” in einer Fussgaengerzone sei, kam die Antwort, das wenn man schneller oder langsamer als der Durchsnitt laefut sei das schon sehr verdaechtig…

Also anstelle eines Ordnungsgeld bei zu schnell gehen berappen zu muessen, wird man gleich nach Guantanamo geschickt… :wink:

Ich finde das auch sinnvoller, dass man die Eigenschaften, die die Straße an sich hat, in eine Relation packt, die die Straßenabschnitte enthält. Und Eigenschaften, die die Straßenabschnitte haben, kommen an die Ways. Ob das Standard ist oder nicht, weiß ich nicht. Und wenn es das nicht ist, gibt es bestimmt genug Leute, die sagen, dass Relationen zu kompliziert sind…

Zum eigentlichen Thema: Wäre es nicht besser, die Ortseingangsschilder zu taggen? Und zwar so, dass man unterscheiden kann, was “innen” und was “außen” ist. Das hat den Vorteil, dass man gut überprüfen kann, ob irgendwo eine Inkonsistenz ist (wenn ein Ort “ausläuft”). Dann müsste man z.B. in meinem Heimatdorf nur 4 Ortseingangsschilder setzen, anstatt ca. 30 ways zu taggen.

Ortseingangsschilder werden auch getaggt. Aber sie helfen nicht 100%. Es gibt ja Straßen, die innerorts sind, aber ausserhalb eines um alle Ortseingangsschilder gespannten Polygons liegen würden. Andersrum genauso

Ich würde das auch anders definieren. Eine Straße ist im Ort, wenn ich von ihr ausgehend auf anderen Straßen (also nicht auf track oder ähnlichem) zu der “Innenseite” eines Ortsausgangsschildes komme. Wenn ich an der “Außenseite” ankomme, dann ist sie außerorts. Wenn ich eine “Innenseite” und (von einem anderem Schild) die “Außenseite” erreiche, dann sind die Daten inkonsistent.

residential … im Ortsgebiet
unclassified … Freilandstraße

Was ist daran so schwierig?

Es gibt genügend Fälle, wo real keine Ortstafeln stehen, sei es weil darauf vergessen wurde, oder an Tracks und Radwegen. Selbst wenn du in solchen Fällen willkürlich Phantom-Ortstafeln mappst, werden größere Städte immer inkonsistent sein.

Bei einem vergessenen Ortseinganzschild klappt das nicht mehr. Ich würde bei OSM nie davon ausgehen, dass die Daten vollständig sind. Und bei größeren Orten wird das eine ziemlicher Rechenaufwand.

Es gibt sowohl unclassified innerorts als auch residential ausserorts. Unclassified ist im Wiki auch als Straße innerorts erwähnt. Bei residential ausserorts kann man sich vielleicht drüber streiten. Soll aber nicht das Thema sein.

wenn ich jetzt die erlaubten Geschwindigkeiten unterschiedlich darstellen will, kann ich ja die Maxspeeds in Nummern umwandeln und filtern


maxspeedfb=# select highway, maxspeed from osm_line where to_number(maxspeed,'9999D99')>0 and to_number(maxspeed,'9999D99')<30 limit 1;
 highway | maxspeed
---------+----------
 service | 5
(1 Zeile)

Jetzt stehen da aber nicht nur Zahlen drin, sondern auch “none”, “signals” und wer weiß was noch und da bricht mir Postgres ab.


maxspeedfb=# select highway, maxspeed from osm_line where to_number(maxspeed,'9999D99')>0 and to_number(maxspeed,'9999D99')<30 limit 10;
FEHLER:  ungültige Eingabesyntax für Typ numeric: » «

Wie kann ich die Query um sowas erweitern wie " select highway, maxspeed from osm_line where to_number(maxspeed,‘9999D99’)>0 and to_number(maxspeed,‘9999D99’)<30 AND wenn to_number(maxspeed,‘9999D99’) keine Fehler produziert"
?

to_number mag kein ’ ’ oder null.
versuch mal to_number(coalesce(maxspeed,‘0’),‘9999D99’)

gruss
walter

ob 0 als Ersatz für null bei dir sinnvoll ist, musst du checken. ich bin dafür zu faul hungrig.

Danke Walter.


....AND textregexeq(maxspeed,'^[[:digit:]]+(\.[[:digit:]]+)?$')

scheint auch zu gehen, aber Deine Lösung verstehe ich wenigstens :wink:

hier ist jetzt ganz Europa drin
http://suncobalt.dyndns.org:82/maxspeed.php

Wenn ich Zeit finde, mache ich sie auch noch bunt (Geschwindigkeitsabhängig)

Thomas, was ich dich schon immer mal fragen wollte: Welchen Sinn hat egtl. der Punkt in der Bildschirmmitte? Ist mir schon bei anderen Karten von dir aufgefallen.

Schau mal links unten auf der Karte, wo die Position steht…das ist der Punkt dazu.